Re: Help - trouble using Oracle under Windows

From: Richard Holowczak <holowcza_at_pegasus.rutgers.edu>
Date: 10 Feb 94 04:51:31 GMT
Message-ID: <Feb.9.23.51.31.1994.1920_at_pegasus.rutgers.edu>


ghollid_at_relay.nswc.navy.mil (Glen Holliday) writes:

> We're trying to make Oracle communicate with SPSS under Windows.
>Our ultimate aim is for SPSS to manipulate the info in the Oracle
>db, and we're hoping to package it in a SQL*Menu user front-end.
> There are a number of hints in the docs that say it should be
>straightforward. But we're having big trouble even getting Oracle
>to run standalone under Windows.

    This should be in the FAQ. I've answered this question about 100     times. :)

    Here it goes again:

    Under MS-DOS, Oracle uses its own memory manager called SQLPME to     make use of extended memory. The PME stands for Protected Mode     Executive indicating that it switches you PC's CPU into protected     mode to access extended memory (that is memory above 1 Mb).

    Now then, MS Windows has an entirely different scheme for     accessing extended memory and, you guessed it, SQLPME and     the Windows scheme are totally incompatible.

     But wait!  there is hope.   If you have enough time, patience
     and RAM, it can still be done.  I must warn you, this does
     involve quite a bit of knowlege of Oracle and memory
     management so it's not for the faint at heart.

    The big trick is to run SQLPME first but to limit the amount     of extended memory Oracle chews up. By default SQLPME will try     to grab all extended memory for itself. The trick is to     edit the CONFIG.ORA file and insert the following line:

                DYNAMIC_MEMORY=4000
     
     The 4000 can be varied depending on how much RAM you have
     and how big of an SGA you need.

    What this will do is tell SQLPME to only take up 4 megs of    extended memory for use with Oracle RDBMS and any tools.     

     So, guess what the rest of the memory is for ? Windows!  

     But there's a catch, MS Windows 3.1 can run in one of
     two modes:  Standard and Enhanced.  Enhanced is the
     mode most people run in because you can take advantage of
     virtual memory and run DOS programs in a window. BUT,
     you guessed it again, Windows running in Enhanced mode
     can't access Oracle because of that pestky incompatibility
    with the memory managers.  So you must run Windows in
     Standard mode.  TO do this type:

              WIN /S

    The /S tell windows to start in Standard mode.

    Herin lies your problem. Most likely under Windows

     you had a "swap file" which lets windows swap unused code
     out to disk giving you the illusion of having more memory.
     This goes out the window (sorry! couldn't resist.) This
     means that all of MS-Windows plus all of your program (SPSS)
    has to be able to load into 4 Megs. Not likely.

    Your remedy is to buy more RAM or to scrap this and      follow the advice below.

    For now, assume you get another 4 megs of RAM so you have      8 megs of RAM available for Windows and your program (SPSS).  

    Now you can load all of these up and try to access Oracle.      Under SQL*Net, you would normally indicate the SQL*Net     driver by using the single letter prefix such as:

              T:    for SQL*Net TCP/IP
              X:    for SQL*Net IPX/SPX
 
      For stand alone DOS machines, the SQL*Net "stub" is built in
      and has the letter S:  for single tasking.  Under OS/2 I
      think it is 2:.

      So in order to log into Oracle, you would need the following string:

                SCOTT/TIGER_at_S:

      Where SCOTT is the username, TIGER is the password and S:
      indicates the single tasking SQL*Net stuff running under
      MS-DOS.  As a trial, give the SQL*Plus for Windows a try.
     It does not take that much memory and you can prove this
     method out before investing in more hardware.

      Other hints are to get rid of EMM386.EXE and SMARTDRV.EXE
      if you are using them. SMARTDRV can be used but unless
      you know what you're doing, you can corrupt the database.

      I've successfully run the above on a 486DX/33 with 16 megs
      of RAM and found it barely acceptable.  When going against
      our new Netware Server (running Oracle 7 for Netware) accesses
      are about 4 times faster.

      So, my suggestion is to either get a dedicated server to run
      Oracle or to beef up your system and move over to OS/2.
      In this case, Oracle for OS/2 should give you everything you 
      need and with the SQL*VDM software you can access the
      RDBMS from within a Win-OS/2 session.

       <phew>

      So there you have it.  Any questions, please feel free
      to e-mail me.

Rich Holowczak
Rutgers University
holowcza_at_andromeda.rutgers.edu Received on Thu Feb 10 1994 - 05:51:31 CET

Original text of this message