═══ 1. Introduction ═══ IBM OS/2 Extended Services Database Manager ServicePak WR06035 IBM PTF WR06035 This ServicePak applies to: IBM OS/2 Extended Services Version 1.0 - Database Services It is recommended to Have appropriate Bootable Standalone Service Diskettes available. ═══ 1.1. Affected SYSLEVEL Files ═══ SYSLEVEL.SQL IBM Extended Services Database Services with Server SYSLEVEL.SQC IBM Extended Services Database Services without Server SYSLEVEL.QRW IBM Extended Services Database Services Query Manager SYSLEVEL.WDC IBM Extended Services Database Services Windows Database Client SYSLEVEL.DBA IBM Extended Services Database Services Database Tools SYSLEVEL.PDR IBM Extended Services Database Services DOS Database Client ═══ 1.2. Trademarks ═══ The following are trademarks of IBM Corporation: o IBM o OS/2 o Operating System/2 o Presentation Manager ═══ 2. Installation ═══ Installing the ServicePak is essentially a three phase process: Phase 1 - Quiesce the Target System Render the system serviceable by insuring that there will be no Locked Files during the install phase. Phase 2 - Install the ServicePak Select one of the following methods to replace system files with those provided on this ServicePak: Service.exe: A Presentation Manager Installation Aid that checks for Locked Files and allows user selectivity. FService.exe: A standalone tool that can be run from a minimal (eg. diskette based) OS/2 system. Redirected (CID) Install: A technique that allows distribution of service across a Local Area Network. Phase 3 - Return the Serviced System to Normal Operation Perform a normal system boot. ═══ 2.1. Installation using SERVICE.EXE ═══ This method will apply fixes to selected subsystems, partitions, and directories. SERVICE.EXE will check for Locked Files before continuing with the application of service. If SERVICE.EXE cannot proceed, it will present the following options: "Retry", "Reboot", or "Cancel". 1. Boot the system from fixed-disk. 2. Insert ServicePak diskette #1 into the A: drive. 3. Establish A: as the Current Directory. 4. From an OS/2 session, type A:SERVICE and press Enter. 5. Make selections from the panel. If the Locked Files panel appears, choose from the options below. Retry - Quiesce the subsystem being serviced and retry the application of service. a) Move to another OS/2 window (OS/2 command prompt). b) Stop Database Manager. c) Return to the Service window and Choose "Retry". Reboot - A response file containing the current selections will be written to the boot drive's root directory. FSERVICE.EXE can then be employed, after reboot, to complete the service process. a) Choose "Reboot". b) Perform the system Shutdown procedure. c) Boot from the Bootable Standalone Service Diskettes. d) Establish A:\ as the Current Directory. e) Replace the Boot Diskette with ServicePak diskette #1. f) At the A: prompt type FSERVICE and press Enter. g) At the panel titled "Updating Default Directories" press Enter (Option 1). h) Follow the prompts provided by the Installation Aid. Cancel - Abort the service process without updating any files. a) This safely terminates the service procedure. b) Skip the next (Reboot) step. 6. Reboot the system normally. ═══ 2.2. Installation using FSERVICE.EXE ═══ This method applies fixes using a response file. The default response file will apply fixes to a default set of partitions and directories. The defaults established by product development are generally dependent on the SYSLEVEL.xxx file where each product has a unique "xxx". This is the simplest and safest method to install ServicePaks to systems that do not have multiple versions of the product being serviced. It does require booting from diskette to insure that there are no Locked Files during the install phase. 1. Boot from the Bootable Standalone Service Diskettes 2. Establish A: as the Current Directory. 3. Replace the Boot Diskette with ServicePak diskette #1. 4. At the A: prompt type "FSERVICE" and press Enter. 5. At the panel titled "Updating Default Directories" press Enter (Option 1) 6. Follow the prompts provided by the Installation Aid. 7. Reboot the system normally. ═══ 2.3. Redirected Installation (CID) Method ═══ This method is useful for those who are using the CID (Configuration, Installation, and Distribution) Services as provided by IBM NTS/2. Installation using SERVICE.EXE or Installation using FSERVICE.EXE are recommended for Servers exploiting the 386 HPFS advanced functions: Fault Tolerance and/or access Control Lists. While setting up a CID server is beyond the scope of this document, a sample CID Utility REXX Command file (CID_6035.CMD) is included that may prove useful in setting up a CID server for this ServicePak. The sample CID_6035.CMD assumes the following: o CID_6035.CMD resides in the ..\CLIENT subdirectory. o The ServicePak files are placed on the code server using "XCOPY A:\*.* /S" (or equivalent) at 'x:\csd\cid_6035' where 'x:' is the drive seen by the client. o The following directory structure contains the ServicePak contents. csd\cid_6035\ * Root directory of ServicePak csd\cid_6035\FIX * No files csd\cid_6035\FIX\SQL * Database Manager with Server fixes csd\cid_6035\FIX\SQC * Database Manager without Server fixes csd\cid_6035\FIX\QRW * Query Manager fixes csd\cid_6035\FIX\WDC * Windows Database Client fixes csd\cid_6035\FIX\DBA * Database Tools fixes csd\cid_6035\FIX\PDR * DOS Database Client fixes o A log directory exists at 'x:\log\csd\cid_6035' for the log files. ═══ 2.4. Bootable Standalone Service Diskettes ═══ Sometimes it becomes necessary to boot from diskette in order to perform certain operations on fixed-disk, like installing this ServicePak or running CHKDSK /f. Hint:It may be useful to copy CHKDSK.COM, EDLIN.COM, and other small utilities to your Standalone Service Diskette (SA#2), (This is providing you have sufficient space available). All necessary files must be contained on diskette. Files from the fixed-disk should not be referenced in A:\CONFIG.SYS or A:\STARTUP.CMD. Otherwise Locked Files can still exist on the fixed-disk. Should the need arise to boot from diskette for any reason, you may: o Use the Install diskette from OS/2 1.3. Escape to A: o Use the Install diskette and Diskette #1 of OS/2 2.x. Escape to A: o Create custom Bootable Standalone Service Diskettes from your licensed materials. The makeup of these is dependent on the system to be serviced. Select the instructions for: Extended Services 1.0 on OS/2 1.3. Extended Services 1.0 on OS/2 2.x with IBM LAN Server Entry. Extended Services 1.0 with IBM LAN Server Advanced. CAUTION: LAN Servers that utilize Advanced features like Access Control Lists or Fault Tolerance, must use custom Bootable Standalone Service Diskettes. Regular HPFS boot diskettes, such as the OS/2 Installation diskettes, CAN NOT mirror changes to Fault Tolerance partitions or access files/directories which are controlled by access control profiles. ═══ 2.4.1. Making OS/2 1.3 Bootable Diskettes. ═══ 1. Make a copy of the OS/2 1.3 Installation Diskette. Call it SA#1. 2. Modify CONFIG.SYS on SA#1 as follows: buffers=50 memman=noswap protshell=a:\cmd.exe protectonly=yes libpath=a:\; ifs=hpfs.ifs /c:64 set path=a:\; set dpath=a:\; ═══ 2.4.2. Making OS/2 2.x Bootable Diskettes ═══ 1. Make a copy of the OS/2 2.x Installation Diskette & Diskette #1. Call them SA#1 and SA#2 respectively. 2. Delete SYSINST2.EXE from Diskette SA#2. 3. Delete BUNDLE from Diskette SA#2 (this will be on OS/2 2.1 only) 4. Modify CONFIG.SYS on SA#2 as follows: buffers=50 memman=noswap protshell=a:\cmd.exe protectonly=yes libpath=a:\; ifs=hpfs.ifs /c:64 set path=a:\; set dpath=a:\; 5. Copy UHPFS.DLL from OS/2 Diskette #2 or C:\OS2\DLL to SA#2. ═══ 2.4.3. Making Advanced Server Bootable Diskettes ═══ MAKEDISK is an Advanced Server utility designed to make the necessary Bootable Standalone Service Diskettes used in periodic maintenance of 386 HPFS systems. 1. Make a copy of the OS/2 2.x Installation Diskette & Diskette #1. Call them SA#1 and SA#2 respectively. 2. Delete SYSINST2.EXE from Diskette SA#2. 3. Delete BUNDLE from Diskette SA#2 (this will be on OS/2 2.1 only) 4. From an OS/2 prompt run MAKEDISK. Note: Syntax is MAKEDISK /BOOTDRIVE:d where d is the drive on which OS/2 2.x is installed. 5. Insert Diskette SA#2 into a diskette drive when prompted. Note: For additional Information see the Network Administrators Reference: Creating a 386 HPFS Boot Diskette, or LAN Server Utilities. 6. If using Fault Tolerance, add the Fault Tolerance files to the Bootable Diskette. 7. Verify that the 386 HPFS Bootable Standalone Service Diskette works properly. o Shutdown the system. o Insert the Bootable Standalone Service Diskette into the A: drive. o Reboot the system (Ctrl+Alt+Del, or other method). o Determine if Local Security is working. o Determine if Fault Tolerance is working. ═══ 2.4.4. Adding Fault Tolerance to 386 HPFS Standalone Boot Diskette ═══ 386 HPFS Standalone Boot diskettes require additional customizing in order to properly update files on partitions which are mirrored. The following steps may have to be done for each LAN Server with Fault Tolerance since the configuration information transferred in step 3 can be unique for each such system. 1. Copy the following four Fault Tolerance files from the first diskette of the ServicePak to your Bootable Standalone Service Diskette. 1) DISKFT.SYS 2) FTD.MSG 3) FTATTRIB.EXE 4) FTCOPY.CMD 2. Add the following line to the CONFIG.SYS on the Bootable Standalone Service Diskette SA#2. DEVICE=DISKFT.SYS 3. At an OS/2 command prompt, make the current drive A:, and have the 386 HPFS Bootable Standalone Service Diskette in drive A. Type "FTCOPY" to copy the customized Fault Tolerance configuration information to the 386 HPFS Bootable Standalone Service Diskette. Warning: Test your 386 HPFS Bootable Standalone Service Diskette before you make any alterations to your system. This Diskette is the Master Key should your system ever fail to boot from its hard drive. ═══ Locked Files ═══ Sometimes it is essential that programs own (become the master of) system resources such as Memory Blocks, Communication Ports, and Files. When a program stakes claim to a file, that file is said to be Locked; no other program is allowed to alter (replace or write to) it until the owning program explicitly removes the lock. .DLL Files can become Locked by residing in a directory that is included in the LIBPATH string of CONFIG.SYS. For example, NETAPI.DLL can be locked when \MUGLIB\DLL exists in the LIBPATH of CONFIG.SYS. ═══ Getting the A: Prompt from OS/2 1.3 Install Diskettes ═══ To obtain the familiar A: prompt when using the OS/2 1.3 Product installation diskettes as Bootable Standalone Service Diskettes: o Boot the system with Install Diskette in drive A. o At the IBM Logo Screen - Press Esc to Exit The A: prompt should appear. OS/2 Programs, including FSERVICE.EXE, can be run from here. ═══ Getting the A: Prompt from OS/2 2.x Install Diskettes ═══ To obtain the familiar A: prompt when using the OS/2 2.x Product installation diskettes as Bootable Standalone Service Diskettes: o Boot the system with Install Diskette in drive A. o At the IBM Logo Screen - Insert Diskette #1, press Enter o At the Welcome Screen - Press Esc to Exit The A: prompt should appear. OS/2 Programs, including FSERVICE.EXE, can be run from here. ═══ Creating a 386 HPFS Boot Diskette ═══ Refer to the appropriate Appendix in: Operating System/2 Local Area Network Server Network Administrator Reference Volume1: Planning and Installation ═══ LAN Server Utilities ═══ Refer to Appendix C, Miscellaneous Utilities MAKEDISK in: Operating System/2 Local Area Network Server Network Administrator Reference Volume3: Network Administrator Tasks Version 2.0 and Version 3.0 ═══ 3. What's Changed ═══ The following list includes fixes (APARS) and changes for Extended Services 1.0 Database Manager component. Including Database Manager, Query Manager, PC DOS Requester, and Database Administration Tools fixes. ═══ 3.1. Extended Services 1.0 Database Manager ═══ This section contains the APARS fixed for the Database Manager component of Extended Services 1.0 Database Manager in WR06035 ServicePak. ═══ 3.1.1. APAR Descriptions ═══ SQL30020N - 1245 for large data if SQLVAR is 84 or greater (APAR JR05176) SQL30020N (reason code 1245) was incorrectly returned when the value of SQLVAR exceeded 83. Trap D during Precompilation (APAR JR05250) This APAR fixes a trap D which happened infrequently during precompilation of an SQC file. REXX update iterations, Out of Resource (930) Error (APAR JR05538) The memory management scheme for the REXX SQL interface has been changed. Previously, the REXX SQL interface did not free up blocks of memory after each call to either the SQLEXEC or SQLAR interfaces. This caused out of memory errors when using the REXX SQL interface to create large tables. Locking Error in Index Manager causes deadlock (APAR JR05634) Frequent deadlocks occurred in updates to rows using index scan. SYTOS USEREXIT example holding too many logs (APAR JR05734) The Sytos userexit sample file (SQLUEXIT.EX1) was holding more log files than specified by the LOGS_TO_HOLD parameter. Database application process cannot exit (APAR JR05740) An application which calls the import (SQLUIMP) or export (SQLUEXP) APIs would occasionally be unable to exit. The exit routine for import/export has been modified to prevent this. Error when creating a view with long definition (APAR JR05783) This APAR fixes an error (SQLCODE = -803) which occurred when creating a view whose statement text exceeded 3900 characters. DosFindFirst in SQLOGDIR (APAR JR05793) On a START USING DATABASE, when searching for \SQL0000x\SQLOGDIR, the API erroneously assumed the database directory did not exist if the archive bit of the attribute byte for the directory was set. SYS3175 when SELECT against date column that is primary key (APAR JR05853) A system error occurred when a DATE/TIME column was involved in a SELECT that used an index where the query predicate was BETWEEN. Internally, start and stop values are used when searching an index to process a BETWEEN predicate. Once the start value is found, rows are retrieved until the stop value is encountered. The fix to the problem was to handle DATE/TIME columns in the start/stop processing similarly to the way numeric data types are currently handled. Binder fails to free the application's heap (APAR JR05883) This APAR prevents the binder from running out of heap space when a REXX application tries to bind a large number of bind files. 1042 on recovery. (APAR JR05951) In the scenario - Drop index, Drop Table, Commit, Crash - recovery failed to redo the drop index and drop table since the drops were committed and the index and table were gone before the system crashed. The code has been changed to handle a redo on a non-existent object. Page Logical Sequence Number Updates (APAR JR05955) In certain crash/recovery situations, it was possible that a page of data could be lost. The problem has been corrected by ensuring that the page Logical Sequence Number is correctly updated. STARTDBM returns SQL1042 with MicroSoft LAN Manager installed (APAR JR05970) STARTDBM used to return SQL1042 if the LAN product used was the MicroSoft LAN manager. STARTDBM now works correctly with the MicroSoft LAN Manager. Multiple requester 'Start Using' Time Out with SQL1093N (APAR JR05986) If multiple processes performed a START USING DATABASE to the same database concurrently, some of the processes would periodically receive SQL1093N (User not logged on). This was caused by processes timing out while waiting to access UPM to logon to the Database server. The Database Manager logon requests are now serialized through UPM at the client node. Hyphen considered invalid in a REXX character string (APAR JR06007) Hyphens were not allowed in comments by the REXX SQL interface. The REXX SQL grammar has been changed to allow this. Static SQL statements with INTERSECT and EXCEPT (APAR JR06011) Statements involving INTERSECT and EXCEPT sometimes caused a trap if executed multiple times. The problem has been corrected. Index Manager Trap D during a restart of a database (APAR JR06128) This APAR fixes a redo node split error that caused either a trap D during a restart or an infinite loop after a restart. Easel Application Fails with SQL0804N (APAR JR06156) An incorrect check of the SQLDA during a stored procedure call was being made. The output SQLDA data buffer did not get initialized if data was not returned by the stored procedure call. However, a check was still being made to validate the length of the returned data. The check is now bypassed if no data is returned. Performance degradation of export command from EE1.3 to ES1.0 (APAR JR06193) The import/export utilities ran significantly slower in ES1.0 than in EE1.3. This performance problem is now fixed. SQLPREP putting * in column 6 instead of column 7 in Cobol (APAR JR06209) In Cobol, a continued line of an EXEC SQL statement with a sequence number would be written to the output file with the comment marker to the left of column 7. The column marker is now placed in column 7. SQLQMF generates syntactically wrong delimited file from DB2 (APAR JR06217) SQLQMF in DB2/MVS generates characters in an exported file that were not recognizable by Database Manager during import. The problem has now been fixed. SQLSTATE.H is missing in Extended Services (APAR JR06222) SQLSTATE.H is now available to customers. Network Manager Messages (APAR JR06258) This APAR fixes a problem wherein garbage data was being added to the end of network manager messages. Index Corruption (APAR JR06268) It was possible that an index with many duplicate keys could become corrupted, possibly missing keys and providing incorrect results. This problem has been corrected. Use pending delete flag for node deletion (APAR JR06294) Pending delete flags are now set for normal page deletion when caused by a page becoming empty. Binding on AS/400 (APAR JR06390) If a bind file was bound to the AS/400 and the GRANT option was specified, an error code of -113 would be returned if the package name was less than 8 characters in length. Package names of less than eight characters are now permitted. SQLCA gets posted to wrong stack in memory (APAR JR06410) A semaphore was being released too early. In some unusual circumstances with a multiple-thread process using imbedded SQL, a trap could occur. This situation has been corrected. DBCS Binding (APAR JR06412) If an Extended Services 1.0 client was binding a bind file to a DBCS version DB2/MVS server, an sqlcode of -104 was incorrectly returned when the GRANT (/G) option was specified. GET DATABASE STATUS ON... (APAR JR06421) Performing a DBM GET DATABASE STATUS ON SAMPLE gave the status on all databases instead of returning an error message. In addition, using DBM GET DATABASE STATUS ON gave an error code of SQL7008N. Both commands have been changed to give the more appropriate error message DBM1006E. Using "Change Qualifier Lists" On a NetBIOS client (APAR JR06424) Before this fix, if the "svrioblk" database manager configuration parameter at the server workstation was greater than the "rqrioblk" parameter at the requesting workstation, then a receive error could result. This would occur when the size of the actual data block being sent to the requesting workstation was greater than the size specified by the "rqrioblk" of the requesting workstation. The situation is now handled without producing an error. This fix should be applied to both client and server workstations. Client Blocking Error (APAR JR06425) This fix eliminates an SQL0303 error when a client accessed a server with blocking. SYS3175 When Dividing by Zero (APAR JR06470) When a divide by zero occurred in a query, a trap and SYS3175 error message would result. This has been changed to return the correct error message of QRW0277N. Integer Multiplication Error (APAR JR06472) This fix solves a problem with integer multiplication in which a rounding error is introduced for some large results. For example, 25*671089 previously returned 16777224 (it should have been 16777225). Delimited Identifiers (APARs JR06324, JR06484) These APARs allow users to include spaces and other special delimiting characters within character fields in their databases. In addition, they allow the use of column and table names with spaces, while still performing reorg, runstats, and order by correctly. Math Error (APAR JR06490) This fix corrects an optimization error which resulted in incorrect results for some math operations on large decimal values. The problem was only encountered using division, but it is possible it would have affected other operations. Incorrect Parsing for Host Variables (APAR JR06553) Host variables in SQL statements are prefixed by the ":" character. The Database Manager must parse SQL statements to substitute values for any host variables that may be contained in the statement. It is valid for a ":"to appear in a string literal with an SQL statement. However, Database Manager did not previously parse host variables correctly under this scenario. Open Cursor (APAR JR06596) Before the application of this APAR, trying to open a cursor which had already been opened incorrectly resulted in a -502 error. SQLLOO Trap (APAR JR06658) Fixes a trap in SQLLOO when RECEIVE ALLOCATE fails. Secondary Log Files (APAR JR06660) Occasional traps resulted from allocation of secondary log files. Zero Length Long Fields (APAR JR06661) This fix changes how zero length long fields are handled. The long field manager used to allocate a minimum size long field segment for 0 length long fields. No I/O was done on behalf of the application which called long field manager when long field columns were 0 length. However, table reorgs bypassed the normal long field read routine and read a zero length long field. This led to an SQLCODE 902, rc=25 if the long field offset of the zero length long field pointed past the end of the long field file. This fix checks the long field length while reading a long field file and avoids doing an I/O for 0 length long fields. The only change in the long field engine behaviour is that no space is wasted for zero length long fields. Records with Unreleased locks (APAR JR06666) This APAR dealt with unreleased locks on records when using cursors declared WITH HOLD FOR UPDATE. If an application did not explicitly CLOSE the cursor, then locks would remain on the data records even after the application had finished. This problem has been fixed. Dropping Index (APAR JR06713) Dropping an index required an access to the .DAT file to get some index file information. This fix allows the user to drop the index (via DROP TABLE) if the .DAT file has been corrupted or does not exist. Logon with Empty Userid Incorrectly Accepted (APAR JR06727) If a user was logged on to the server locally, another user logging on from a remote client who provided an 'empty' userid (by simply hitting on the UPM logon panel) would be allowed access to the server. This remote user would also inherit all of the privileges of the user logged on locally at the server. Any user logging on from a remote client who provides an 'empty' userid is now prompted to log on again. Log Full (APAR JR06732) This fix solves a potential log full situation when there are many updates to a small span of data in a large buffer pool. Import with Long Table Names (APAR JR06754) This fix corrects an internal error in the REXX SQL parser. The user will no longer experience an error condition when they use Database Manager to IMPORT with the INSERT_UPDATE clause with a table name that is longer than 8 characters. MAXLOCKS Default Value (APAR JR06773) This fix corrects a problem where MAXLOCKS may be automatically changed if MAXAPPLS is lowered. This happened because configuration services enforced a minimum for MAXLOCKS (MAXLOCKS >= MAXAPPLS/100). The minimum is now only enforced when changing maxlocks, which was the original intent. Corrupt Long Field Data (APAR JR06826) This fix ensures that long field data included in records being sorted will not be corrupted or altered. Running in a LAN security shell (APAR JR06867) Previously, when running Extended Services 1.0 Database Manager in a LAN security shell, the processes started by Database Manager would take their authorizations from the shell rather than the parent process. As a result, the processes would not have privileged status and would soon fail. This has been changed so that the processes now inherit the authorization of their parents. This, however, creates a potential security risk. If a remote user calls the SQLEPROC, any dynamic link library files (.DLL) specified in the server library path will be granted privileged authorization. These files can then execute any operations allowed with a privileged status. Hence, caution should be used in choosing the dynamic link library files in the libpath. Belgian Sort Sequence (APAR JR06889) This APAR replaces an incorrect sort sequence for Belgium (country code 32) on codepage 850. Since this sort sequence is stored within the database, there should be no change for existing databases, but new databases with country code 32 and code page 850 will pick up the new collating sequence. Belgian customers who wish to use the new sort sequence should: 1. Export the database to a file 2. Drop the database 3. Install this service pak 4. Create the database 5. Import from the file 6. Generate the indices. SQLEPROC Returns SQL1113N When Server Procedure Executes Remotely (APAR JR06908) A remote database application interface server procedure was returning SQL1113N (data type in output SQLDA changed) even though the server procedure did not change the SQLTYPE or SQLLEN of any SQLVAR in the output SQLDA. When making a database application remote interface call, the user must allocate the output SQLDA for the maximum number of SQLVARs that may be used. The maximum number of SQLVARs allocated must be set in the SQLN field of the SQLDA. The user must also specify, in the SQLD field of the SQLDA, the actual number of SQLVARs that will be used and their expected data types (SQLTYPE field). When the database application remote interface server procedure returns its results to the Database Manager, the Database Manager checks to ensure that each SQLVAR received has the expected SQLTYPE (data type) field. This check was being incorrectly done for all of the SQLVARs that were allocated (the value of SQLN) instead of for the SQLVARs that were actually used (the value of SQLD). Message Tokens Missing From SQLCODES -1113, -1114, -1115 (APAR JR06918) Message tokens are now being properly supplied for SQLCODES -1113, -1114, and -1115. Previously, the tokens were missing from these messages. Trap on OS/2 Extended Edition 1.3 Clients (APAR JR06927) When there was an SQLLOO configuration error, an agent on the server could not allocate a connection. This fix prevents the agent from trapping when there is an allocation failure and only affects the server side. Guest ID support not allowed (APAR JR06975) The LAN server product supports guest accounts. This means that a user can log on to the server without having the USERID explicitly defined in UPM. The user is given the same access as the guest userid. DB2/2 however, does not support guest accounts. If a workstation is configured as both a DB2/2 server and a LAN server, guest accounts will not be supported by the DB2/2. If the user attempts to log on to Extended Services 1.0 Database Manager DB2/2 using the guest account, a message will be displayed indicating that the logon failed. The user will be prompted again for another USERID and password. If the user is already logged on (to the LAN) as the guest USERID, the user will be prompted to logon using another USERID. Incorrect results on Query with Joins (APAR JR06984) Incorrect results were returned for a query that performed a join on two correlated references, where the views were based on queries that contained subqueries with correlated reference Math Error III (APAR JR07003) This fix solves a problem with numeric addition in which a rounding error was introduced for some results. NetBIOS Trap (APAR JR07023) The reported problem was a trap after issuing STOPDBM when the total NetBIOS sessions allocated to Database Manager, for an adaptor, was equal to one (1). There are two different situations that can lead to "the number of NetBIOS sessions allocated to DBM = 1". 1. The NetBIOS sub-system does not have enough sessions remaining in its pool of resources to satisfy the request that Database Manager makes at STARTDBM time. If there is only one session remaining in the NetBIOS pool, the session would be allocated to Database Manager, regardless of the number of sessions that Database Manager had requested, and STARTDBM will be successful. 2. The environment variable "sqlnetb" is set to 1 for one of the active adaptors. DISTINCT, ORDER_BY, GROUP_BY Traps (APAR JRO7052) Traps occurred in queries with ORDER_BY, GROUP_BY or DISTINCT clauses, when there was one or more primary keys on one of the joining columns. The trap has been eliminated. Referential Integrity Trap (APAR JR07076) This fix corrects a problem related to the referential integrity checking during insertion with a SELECT clause. If the primary and foreign keys were DATE/TIME types, and the data being inserted into the foreign key was a character string, the character data was not converted to the DATE/TIME type before the referential integrity constraint was checked. This could result in a trap or incorrect results. Backwards Table scan (APAR JR07102) During a backwards table scan, it was possible that an incorrect number of rows would be returned when there were gaps (deletions) among the slots of the table. The problem has been corrected. Decimal Multiplication (APAR JR07175) This fix corrects a problem with decimal multiplication. When one of the operands was of precision 30 or 31, an SQL code -802 was returned even though the operation was valid. CTRL-C from clients (APAR JR07188) This fix allows interrupt requests that were properly sent from the clients to be interpreted correctly at the server. The result is that the Ctrl-C key acts in the same way on a remote database as it does for a local database: The SQL query that is in process is terminated, the transaction is rolled back, and control returned to the client. Deadlock During Undo (APAR JR07286) A deadlock was encountered after deleting the last key on the last index page during an undo. This could happen anytime a ROLLBACK occurred. This has been fixed. MAXLOCKS + MAXAPPLS (APAR JR07310) If MAXAPPLS was set to greater than 100, then MAXLOCKS was always set to one. This has been changed so that the user can alter the maxlocks value. However, in order to avoid excessive numbers of deadlocks, as MAXAPPLs is increased, MAXLOCKS should be decreased. The recommended setting is maxlocks = 100/(maxappls + 1). ═══ 3.1.2. Additional Information ═══ Running in a LAN security shell (APAR JR06867) Previously, when running Extended Services 1.0 Database Manager in a LAN security shell, the processes started by Database Manager would take their authorizations from the shell rather than the parent process. As a result, the processes would not have privileged status and would soon fail. This has been changed so that the processes now inherit the authorization of their parents. This, however, creates a potential security risk. If a remote user calls the SQLEPROC, any dynamic link library files (.DLL) specified in the server library path will be granted privileged authorization. These files can then execute any operations allowed with a privileged status. Hence, caution should be used in choosing the dynamic link library files in the libpath. REXX SQL Interface You will no longer get an error message when you use hyphens in comments. Restoring Databases The TO drive and FROM drive for a RESTORE are checked to ensure that they are not the same. If they are the same, then the RESTORE will fail cleanly. If the 'TO' drive is not specified, then the drive where Database Manager resides is chosen for a RESTORE to a non-existent database. SQLQMF (SQLQMFDB in DBCS version) Customers using SQLQMF without having Communications Manager can still use SQLQMF by modifying the SQLQMF EXEC to pass a code page instead of an SSID to SQLUHCOP. SQLUEXIT.EX4 The prologue in SQLUEXIT.EX4 now explains how to modify the DEL command in the BACKUP section to work under OS/2 SE 1.3x. Two lines of modified code have been imbedded and commented out. DBM REORGCHK The table name can now be mixed case characters when using the DBM REORGCHK command. In the previous version, only an all upper case table name was acceptable. Index Manager Index manager now prevents space handling problems in an index file. Any existing errors will not be corrected without deleting and recreating the index file. ═══ 3.2. Query Manager ═══ This section contains the APARS fixed for the Query Manager component of Extended Services 1.0 Database Manager in WR06035 ServicePak. ═══ 3.2.1. APAR Descriptions ═══ QRW0541 (3012) is received when exiting a panel (APAR JR05684) If a "No data met the search condition" message was received during the execution of a panel, a user clicked on OK, and exited the panel, then the error QRW0541 was returned. Panel completed successfully; an error message should not have been displayed. Garbage on screen when REXX 'TRACE ?R' used with DSQCIX (APAR JR05786) REXX calls to Query Manager where 'Trace ?R' is used before the call would cause garbage to be scrolled on the screen when Query Manager returned. Authorizations on Swiss system list problem (JR05828) On certain language versions of Query Manager (eg. Swiss) the Authorizations dialog will treat groupids as userids. &SUMn problem in final text portion of Query Manager if n > 9 (APAR JR05847) When using special variables like &SUMn in the 'final text' portion of a form in Query Manager the value of 'n', which represents the column number, was restricted to 1-9. If n > 9 was used, Query Manager treated the special variable as a user-defined variable. QRW0541C received when accessing Query Manager from command line (APAR JR05984) An invalid error would occur when Query Manager was started from the command line. Also, no reason code was returned with the message. Garbage added when running a menu a second time (APAR JR05994) When running a menu and redisplaying a variable previously entered, garbage was added to the end of the data. This only occurred if the length of the data entered was a multiple of 4. SYS3175 when running query (update) from menu (APAR JR06052) Running a query from a menu resulted in a SYS3175 message and a protection violation. The query will now run correctly. SYS3175 during table REORG and Query Manager is minimized (APAR JR06054) An error (SYS3175) would occur if Query Manager was minimized and restored while a remote table was undergoing a reorg. Invalid Characters in DEL option. (APAR JR06166) If a new profile is selected from the Query Manager main menu, and invalid characters were entered in the import/export options for DEL, the profile would saved. When an import/export operation was later attempted, an SQL3017N error (invalid delimiter) is returned. An error message will now be returned when the invalid characters are entered. Bad NVMT errors generated while exiting from Query Manager panels (APAR JR06225) Query Manager was producing corrupted alerts that could be seen with Netview 2.2. Query Manager total request wraps to negative after 32767 (APAR JR06226) When using "Show User's Details" under the "Show Operational Status" option, if a user had made more than 32767 requests the number of requests displayed was negative. Panel Operations and 8515 Monitors (APAR JR06270) This fix corrects a problem which causes Query Manager to terminate unexpectedly when performing panel operations with an 8515 monitor. Under OS/2 2.0, there is still a formatting problem with repeated rows on the 8515 monitor. The formatting problem, as well as the unexpected Query Manager termination, can be solved by installing OS/2 Corrective Service Pak 6055. Truncated Footing Text (APAR JR06333) Previously, when BREAKnX was specified for all columns, the break footing text was truncated on the report. This has been corrected so that the break footing text is only truncated if there is final summary data in the break footing text line. Otherwise, the text will be formatted within the entire width of the report. Negative Zeros (-0) (APAR JR06371) In Extended Services 1.0, it is possible to get a result of -0 when subtracting two decimal columns with the same value. This fix corrects the problem and is applicable whether the database was migrated from OS/2 Extended Edition 1.3 or created under Extended Services 1.0. Heading Text (APAR JR06383) If a report page was broken horizontally because of width, the heading text would only print on the first page. CTRL-F10 (APAR JR06394) The CTRL-F10 keystroke from SPECIFY MENU ACTIONS was not functioning. Final Text Truncation (APAR JR06442) In a report with final summary columns specified in the form definition, any final text would be truncated to the width of the first summary column. Formatting Reports - Unexpected termination (APAR JR06671) This fix corrects a problem which caused Query Manager to terminate when formatting a report. The problem appeared when a report form contained CT or CW edit codes and there was a NULL code point in one of the character columns. Unexpected Query Manager Termination (APAR JR06684) Query Manager has been corrected to prevent termination in situations where no items in a list box are selected and the cursor has been scrolled off the screen. Large Data Saves (APAR JR06688) Query Manager has been changed to display an error message when it runs out of disk space on its 'working' drive while doing a 'save data' operation. The data produced by the Query is no longer available following this condition. The user should free additional space on the drive where Query Manager is located and then rerun the query. Trap D in Panel Printing (APAR JR06689) A trap D occurred when printing a panel layout in which MAX and MIN lines are set equal for even printed output. Dutch Translation Error (APAR JR06851) In the Dutch language version, default and ascending indexes were shown as 'Dalend', which is Dutch for descending. This has been corrected. Exceptions when using Callable Interface (APAR JR06882) This fix corrects a problem where Query Manager incorrectly releases storage in a process where the callable interface is being used from a REXX procedure. One symptom of the problem is an addressing exception in some non-Query Manager piece of code running in the same process. Maximum Length of Report Text (APAR JR06913) This fix corrects a problem where the maximum length of report text was reduced by one character for each variable inserted in the text. The condition is fixed in all of the report text fields (Page heading text, break heading text, etc.). Index Display of Column Names (APAR JR06969) This fix corrects the problem where a column name is truncated to 15-1/2 characters when using the 'Show Index' function. TAB/Arrow Keys in Procedures (APAR JR06986) TAB and arrow keys now work as intended in message boxes created by the SAY command. ═══ 3.2.2. Additional Information ═══ Panel Instances and Adding Subrows. When an 'add' mode panel instance defined as one-to-one or many-to-one has a value for only the connecting column in the subrow, Query Manager will attempt to add the subrow anyway. This processing is consistent with the basic concept behind having the panel relationship defined as one-one or one-many. Previously, the subrow would not have been added to the database. Netview Alerts and Query Manager All Query Manager Alerts for Netview have been disabled. System Administrators who use Netview to monitor problems will no longer receive Alerts from Query Manager. The DBM alerts are still available. Query Manager HELP environment variable Previously, Query Manager did not adhere to the convention of using the HELP environment variable to locate help files. This has been changed so that the help files can be moved to a directory other than the one they were installed in. ═══ 3.3. PC DOS Requestor ═══ This section contains the APARS fixed for the PC DOS Requester component of Extended Services 1.0 Database Manager included in WR06035 ServicePak. ═══ 3.3.1. APAR Descriptions ═══ Error Code (SQL1028N) omitted from ES1.0 documentation (APAR JR05647) The SQL1028N error code and message will be added to the ES 1.00 online documentation. SQLWARN0 (APAR JR05949) The SQLWARN0 indicator is now set as documented when accessing Database Manager from a remote application. CTRL-C/BREAK From DOS Clients (APAR JR06042) This fix enables a DOS client to correctly execute CTRL-C or CTRL-Break key sequences to terminate applications on a server. Invalid compiler options used (APAR JR06112) Modules of the PCDRDLL.DLL were built with incorrect compiler options. ═══ 3.3.2. Additional Information ═══ PCDR Bind Files Rebind the applications that use the following bind files: SQLUPEXP.BND, SQLUPGSI.BND, SQLUPICI.BND, SQLUPICT.BND, SQLUPIWI.BND, SQLUPMPM.BND, and SQLUPXPM.BND. ═══ 3.4. Database Administration Tools ═══ Belgian and Swiss Multilistboxes and Directory Sorting (APAR JR05977) This APAR fixes two problems in the Belgian and Swiss Versions. 1. Each of the DBA tools hung when a multilistbox had one or more entries to be displayed. 2. The directory entries were not sorted correctly. NewLogPath on a: Drive. (APAR JR06158) When using the configuration tool, if you set the newlogpath parameter in change database to a: without having a disk in the drive, the system hung. This has been changed to display an error message. ═══ ═══ The item in the title line is a trademark of IBM Corporation