  
---------------------------------------------------------------------------
 
Revised: April 7, 1994
 
PEEKNMP.EXE  patch file to fix  winos2 named pipe problems with 
              Microsoft products
PEEKNMP.TXT  text file that describes PEEKNMP.EXE
NWSQL.TXT    this file
 
Key Words: Named Pipes; WinOS2; MS-Access; ODBC; MS-SQL; Q+E PEEKNMP
 
The following procedures were developed for use with OS/2 2.1, Netware 
Requester 2.01 for OS/2 (with R201FX.EXE - a self-extracting file of 
patches) and MS-Access 1.1. As this is being written at the beginning 
of April 1994, all of these versions are being updated:
 
 a) OS/2 2.1 has been recently updated with the Service Pak (XR6200).
 b) Netware Requester 2.10 for OS/2 (NWR 2.10) is in beta test.
 c) MS-Access 2.0 is in beta test.
 
The following information has been published about various OS/2 
versions and the Netware Requester for OS/2.
 
When all pieces are available, it has been reported that IBM and Novell
will support the following combinations of operating systems and 
Netware Requesters for OS/2:

 1. OS/2 2.1 + XR6200 + NWR 2.10.

 2. DOS/Windows + OS/2 for Windows +XR6300 + NWR 2.10.

XR6200 is the official designation for the Service Pak for OS/2.  
It became available at the beginning of March. XR6300 is apparently 
the official designation for the Service Pak for OS/2 for Windows.  
It has not been announced yet.
 
The following information is specific to the software versions noted 
above.  The cookbook has been written to include information that 
should be helpful to users even though they are using one or more later
versions of the software packages .
 
Introduction:
 
Several users reported that they were unable to make Microsoft Access
talk via ODBC over named pipes to MS-SQL Server over a Novell Netware
network.  The following procedures fixed the problem.  Some of the
procedures below are specific to MS-ACCESS ODBC and some are required
for any named pipes interface from WinOS2 to MS SQL-Server for OS/2.
 
-----------------------------------------------------------------------
 
         How to make MS-Access talk via ODBC over a Named Pipe
                          in a WinOS2 session
 
-----------------------------------------------------------------------
 
1. Make sure you are using the latest version of the Novell Netware
   Requester for os2 with the latest patches.
        -- The requester is available via anonymous ftp at
           HOBBES.NMSU.EDU (128.123.35.151) in the
           /pub/os2/2_x/network directory.  The files are called
           WSOS2_1, WSOS2_2, and WSDRV_1.
 
        -- download the R201FX.EXE fix from the NOVLIB or NOVFILES 
           forum on CompuServe.  This is a self-extracting compressed
           file that supplies a number of updated drivers for Netware.
           Copy the files to directories according to instructions
           included in the zip package.  (R201FX.EXE may also be
           available at HOBBES.NMSU.EDU).
 
2. Modify the OS2VER file which is in the root directory of your OS2 boot
   drive.
        -- OS2VER is a hidden, read-only, system file so before you can
           edit it, change these attributes by typing
               ATTRIB -H -S -R OS2VER
 
           Use any text editor to add the following lines to this file:
               20=NMPIPE.SYS              (note no spaces around = sign)
               20=NPSERVER.SYS
               20=NPDAEMON.EXE
 
           Reset the attributes on this file by typing
               ATTRIB +H +S +R OS2VER
 
        -- The above changes are described in the README file which OS2
           creates on the boot drive at install time (look in the root or
           \os2\book directories).
 
3. Make sure that you've enabled Named Pipes support when the Novell
   Netware requester was installed.
 
        -- When you install the requester, if you don't indicate that you
           want named pipes support, all files are copied anyway but the
           named-pipe-related statements are REMarked out in your
           CONFIG.SYS file.  Remove the REM from the beginning of these
           statements.
 
        -- Make sure you have the appropriate named-pipe statements in your
           NET.CFG file.  (The following are default values; the values you
           need to use may be different.  Use your Netware INSTALL program
           for descriptions & explanations of what these statements do.)
 
                NAMED PIPES
                  CLIENT SESSIONS   16
                  SERVER SESSIONS   32
                  SERVICE THREADS    3
 
        -- Make sure that you have appropriate versions of the NETAPI.DLL
           file in the correct places.  That means that the NETAPI.DLL file
           from the \requestr directory on your Novell diskettes should be
           in the \netware directory on your hard drive.  Also, the
           NETAPI.DLL file from the \windows directory of your Novell
           diskettes should be in the \os2\mdos\winos2\system directory
           on your hard drive.
 
           (NOTE: In the documentation for MS-SQL Server, it recommends
           that you put the NETAPI.DLL file from the \SQL directory of your
           Novell diskettes in the \netware directory on your hard drive.
           I don't recommend this, because this NETAPI.DLL causes problems
           in other applications, such as Lotus Notes for OS2.  The
           NETAPI.DLL from the \requestr directory has worked well for me
           and keeps all the other apps on my machine happy.)
 
           (NOTE: In the documentation for Workstation for OS/2 that
           comes with NWR 2.01, chapter 9 - Setting Up Named Pipes and
           NetBIOS Protocols - includes a section titled 'Special
           Instructions for SQL [sic] Client Workstations.'  This 
           section recommends replacing the OS/2 NETAPI.DLL file from
           the \requestr directory with the OS/2 NETAPI.DLL and
           NETOEM.DLL files from the \SQL directory on the WSOS2_1
           diskette.  As noted above, this recommendation seems to 
           cause problems with Lotus Notes for OS/2.
 
4. Set up a separate Winos2 program object on your os2 machine that 
   includes custom settings under the Win-OS2 Settings options.  It
   uses a separate AUTOEXEC.BAT file. (I call mine AUTOSQL.BAT) for
   the DOS_AUTOEXEC setting.  This custom AUTOEXEC.BAT file needs to
   loadTBMI2.COM.  It includes PEEKNMP.EXE for the DOS_DEVICE setting 
   (PEEKNMP.EXE is specific to Microsoft products, see note below).
 
        -- If you have not already done so, install TBMI2.COM from
            the Netware Requester 2.01.  Note the drive:\path.
 
        -- If you have not already done so, copy PEEKNMP.EXE from
            this package to the drive:\os2\mdos directory.  'Drive' is
            the drive on which OS/2 is installed.
 
        -- Set up AUTOSQL.BAT so that it loads the following program
           when it runs, e.g.

               C:\os2\mdos\winos2\TBMI2.COM
 
        -- Open the settings notebook for the WinOS2 program object,
           select the 'Session' page, double click on the
           'Win-OS2 Settings' bar.

        -- Select the DOS_AUTOEXEC setting and enter the
           drive:\path\filename for the AUTOEXEC file for this
           program object, e.g. C:\AUTOSQL.BAT
 
        -- Select the DOS_DEVICE setting and enter the
           drive:\path\filename for the PEEKNMP.EXE driver, e.g.,
 
              C:\os2\mdos\PEEKNMP.EXE

        -- Double click on the program object icon in the upper left
           corner of the settings notebook to close the notebook and
           update the settings.
 
           (NOTE: SQL Server includes two different interfaces for
           Windows clients that connect to named pipes.  The interface
           used by Microsoft requires PEEKNMP.EXE for Win-OS/2
           sessions.  If you are using Windows client software from
           vendors other than Microsoft that requires Windows named
           pipes, it probably uses a different interface.  PEEKNMP.EXE
           should not be necessary and probably should not be used.
           For example, Windows software from Q+E Software, such as
           their SQL Server driver that uses named pipes, does not
           require the use of PEEKNMP.EXE)
 
 
**********Steps 5, 6 and 7 are specific to MS-ACCESS and ODBC**********
 
 
5. Install MS-Access from this WinOS2 session.  This requires patching the
   STFSETUP.INF program on the MS-Access Setup diskette.
 
        -- The Install program for MS-Access has a bug in it that causes
           the install to fail under certain conditions on a regular
           DOS/Windows 3.1 machine, as well as in a Winos2 session.  These
           problems are documented and can be downloaded from the Mcrosoft
           KnowledgeBase forum on CompuServe (report number Q102230).
 
        -- I will explain briefly what you need to do here:
             a) make a backup diskette of your MS-Access Setup Diskette 1.
             b) On the backup disk, use an editor to modify the
                STFSETUP.IN_ file.
 
             Change the System Paths| section from
 
             System Paths|
             SYSTEMPATH = "" ? DETCMD.DLL GetWindowsSysDir
             WINDOWSPATH = "" ? DETCMD.DLL GetWindowsDir
             HARDDRIVELIST  = "" ? DETCMD.DLL GetAllValidLocalHardDrives
             NETDRIVELIST = "" ? DETCMD.DLL GetAllValidNetworkDrives
 
               to
 
             System Paths|
             SYSTEMPATH = "" ? DETCMD.DLL GetWindowsSysDir
             WINDOWSPATH = "" ? DETCMD.DLL GetWindowsDir
             HARDDRIVELIST = "" ? DETCMD.DLL GetAllValidLocalHardDrives
             NETDRIVELIST = "" ? DETCMD.DLL GetAllValidNetworkDrives
             WINDOWSMODE = "" ? DETCMD.DLL GetWindowsMode
 
              Then change the following
 
             DoShareStuff = +
               set CurrentDialog = DoShareStuff
               set MAKEBAK = "NO"
               ui start VSHARERunning
             ifstr $(ANSWER) == "NO"
 
                    to
 
             DoShareStuff = +
               set CurrentDialog = DoShareStuff
               set MAKEBAK = "NO"
             ifstr $(WINDOWSMODE) != "ENHANCED"
               set ANSWER = "NO"
             else
               ui start VSHARERunning
             endif
                ifstr $(ANSWER) == "NO"
 
6. After you have successfully loaded MS-Access, install the ODBC software.
   This install should proceed with no problems.
 
        -- Install the ODBC Administrator program (ODBCADM.EXE) so that you
           can set up ODBC database sources.
 
7. Finished !  You should be up and running at this point.  When you start
   the ODBC Adminstrator, you should be able to click on the Servers
   listbox and see the names of your Named Pipe servers out on the network.
   You should also be able to start MS-Access and attach a database table
   from the SQL Server to a local Access database.
 
8. If you have problems, check that the following files are in the correct
   directories
        -- See number 3 above to make sure you have the right NETAPI.DLLs
           in the right places.
 
        -- the files DBNMP3.DLL, SQLSERVR.DLL, and W3DBLIB.DLL should be
           in your \os2\mdos\winos2\system directory.
 

