30/07/96 DB2/2 v1.0 FixPaks APAR Information (list and descriptions) =========================================================== APAR List and Descriptions for FixPak 7090 ========================================== APAR# Description ------- ------------------------------------------------------ IX53858 35177 Importing DEL file creates HEX 81 bytes in Ja_JP locale. Previously, when fetching a mixture of LONG VARGRAPHIC and LONG VARCHA data, if the LONG VARCHAR data contained an odd number of bytes, the last byte was replaced by the first byte of a DBCS blank. The problem has now been fixed. IX54235 36193 bind with grant does not commit. IX54726 37614 Memory corruption in application crashed db in sqlrapfn JR08570 31780 UPM Call returns 20 bytes when 8 are expected JR08572 32541 Application Heap storage is exhausted Previously, memory management for sections in application heap allowed for the possibility of the package cache being exhausted,resulting in an sqlcode -954 (insufficient applheap). An enhancement to application heap storage management has been made to remove this possibility. JR08595 33341 SQL0984C on importing with REPLACE_CREATE option JR08595 33885 SQL0984C on importing with REPLACE_CREATE option Previously, a ROLLBACK would occasionally fail due to memory pages being represented incorrectly internally. This has now been fixed. JR08724 37789 Poor error msg when trying to connect to db & NET.ACC problem. JR08752 38681 Memory overwrite executing sqlestrd_api. JR08780 38973 In v1 the drop view SQL does not delete the view from SYSVIEWS JR08778 39172 SQLDBS from a REXX app returns SQL2010 during backup JR08828 40322 SQL0984 during batch binds. JR08829 40410 SQL1042 AT RESTART TIME BECAUSE OF MISSING SECONDARY LOG FILES. JR08834 40519 SQL0902C rc121 returned when inserting a row into a table. JR08873 41100 Retrofit 6423 to db2/2 1.2 JR08937 42549 Symbols parsed as part of host var name on client. APAR List and Descriptions for FixPak 7042 ========================================== JR08210 SQLEPROC returns SQL0962C when DARI DLL is 16 bit Previously, a client application (SQLEPROC) consistently or intermittently received the following error when the server DARI (Database Application Remote Interface) was a 16-bit DLL: SQL0962C: Not enough storage is available in the remote services heap of the server to process the statement. This occurred as a result of DB2/2 not handling the allocation of SQLDA properly. The error was likely to occur if the data contained large variables. The error was usually returned from the second or the third call to the DARI DLL. This problem has been fixed. JR08241 SQLUEXIT=4 twice in a row causes 100% CPU loop While archiving or retrieving a log file, a return code (rc) of 4 or 8 from SQLUEXIT (user exit program) should cause a retry in five minutes. However, prior to fixing this problem, if SQLUEXIT had rc = 4 (or 8) twice in a row, the system CPU usage could rise to 100% until SQLUEXIT rc=0 or STOPDBM was performed. A fix has been implemented to properly handle SQLUEXIT return codes 4 and 8. JR08296 Numeric APPN LU names rejected Numeric LU names were previously rejected while issuing 'Catalog APPN Node' from the OS/2 command line. Both, CM/2 (Communications Manager/2), and DB2/2's database directory tool (DIRECT) accept numeric LU names. A fix has been implemented to allow cataloging of APPN nodes using numeric Local/Partner LU names from the OS/2 command line. JR08316 Allow connects to multiple instances on DB2/6000 In the past, DB2/2 clients could only connect to one instance of DB2/6000 running with SNA/6000 Server. This functional enhancement allows DB2/2 clients to connect to multiple DB2/6000 instances on the same box. To take advantage of the new feature, different remote TP names (transaction program names) must be specified for each instance: Normally, a DB2/2 client uses the remote service TP name x'07'6DB for database connections, and the remote service TP name x'07'6SN for interrupts. The environment variable DB2PARTNERLULIST can be used to customize the remote TP names that the DB2/2 client uses. To define the DB2PARTNERLULIST variable, add the following statement in the CONFIG.SYS: SET DB2PARTNERLULIST=[plu,dbtp,intrtp] where each partner lu list triplet consists of: plu is the partner lu alias specified in the APPC node directory entry, or the fully qualified partner lu name specified in the APPN node directory entry. A partner lu alias can be mixed case. A fully qualified partner lu name must be all upper case. dbtp is the remote TP name to be used for database connections. This cannot be a service TP. intrtp is the remote TP name to be used for interrupts. This cannot be a service TP. Basically, when the partner lu specified by a DBPARTNERLULIST triplet matches the corresponding partner lu specified in the APPC/APPN node directory entry, the customized TP names specified by DB2PARTNERLULIST are used, instead of the default service TP names x'06'6DB and x'07'6SN. For example, SET DB2PARTNERLULIST=[lu1,TEST,TESTINT][CAIBMOML.LU2,DBTP,INTTP][.LU3,tp3,it The first partner lu list triplet is used for an APPC node directory entry where the partner lu alias is lu1. The second partner lu list triplet is used for an APPN node directory entry where the remote network id is CAIBMOML and the partner lu name is LU2. The third partner lu list triplet is used for an APPN node directory entry where the remote network id is not specified, and the partner lu name is LU3. JR08338 Backup can hang when drive not ready In OS/2, while performing a backup of a database to a diskette, if the drive is not ready, a pop-up window is displayed with choices to either return the error code to the program, end the program or retry. In the past, if in a multi-threaded application the BACKUP was invoked from any thread other than thread 1, and the user chose to end the program in the pop-up window, the application could hang. This problem has been fixed. JR08351 Stack overflow error for APPC (F015 from CM/2 or SYS3175) Previously, applications accessing a database via APPC could receive stack overflow errors. Errors could be in the form of F015 in Communication Manager/2 (CM/2) or system trap SYS3175. This has been fixed. JR08363 RI cascade does not work properly This APAR applies to tables that had one or more self-referencing ON DELETE CASCADE referential integrity (RI) constraints. If a delete was executed against such a table and multiple rows qualified initially (that is before any cascade deletes were considered - for example delete from t1 where i1 = 1 or i1 = 2), then it was possible that not all of the corresponding child rows would be deleted. This meant that the table may have been left in an inconsistent state with respect to the RI constraint and could contain orphan child rows. To correct the database package for an application that performs such multiple row deletes, you must rebind the application once you have applied this fix. The rebind can be done in the Command Line Processor (CLP) with the SQLBIND command if a bind file is available. (for example sqlbind appl.bnd your_dbname). In addition, you should check the data in tables with self-referencing ON DELETE CASCADE RI constraints for consistency. You can check each constraint by executing a SELECT statement to identify orphan child rows. You can copy the primary keys of any orphan rows to another table with an INSERT statement and then remove them with a DELETE statement. Given table t1 defined below, here are SQL statements you can use to identify and remove orphan rows. Note that the SELECT statement shown here will identify orphans rows but not the descendants of these orphans. However, the DELETE statement will remove the orphans and all of their descendants (once you have applied this APAR) because the constraint will cause it to cascade. create table t1(i1 int not null, i2 int not null, i3 int, i4 int, primary key(i1, i2), foreign key fk1(i3, i4) references t1 on delete cascade) select * from t1 a where i3 is not null and i4 is not null and not exists(select * from t1 where i1 = a.i3 and i2 = a.i4) create table orphans(i1 int not null, i2 int not null) insert into orphans select i1, i2 from t1 a where i3 is not null and i4 is not null and not exists(select * from t1 where i1 = a.i3 and i2 = a.i4) delete from t1 a where exists(select * from orphans where i1 = a.i1 and i2 = a.i2) JR08430 SQLBIND returns LF-CR instead of CR-LF when piped to file Previously, when output of the SQLUBIND utility was piped to a file, the first two characters generated in the file were () instead of the expected . This fix corrects the problem. JR08441 Failed connect exclusive leaves memory pointers Prior to this fix, a failed connect exclusive left memory pointers which did not allow the database's memory to be freed when all connects were reset. The problem has been solved by this fix. JR08449 Semaphore not being cleared, resulting in hang During the cleanup routines for various database utilities (for example backup, restore, rollforward, ...), DB2/2 sometimes did not clear its semaphores resulting in symptoms such as backup hangs. The fix for this APAR addresses these termination problems. JR08476 Rounding errors for numerical data returned from DB2/MVS This fix corrects rounding errors when S/370 single precision floating point numbers are converted to IEEE double precision floating point numbers in a DRDA environment. For example, a FLOAT(4) column on a DB2 for MVS database contains a value of 75500000. Prior to this fix, an application selecting this value via DDCS/2 or DDCS/6000 may have received 7.549999E+7. Other Database Engine Fixes --------------------------- Lock escalation problem This fix corrects a problem that occurred under specific circumstances during lock escalation. Previously, it was possible for other agents to access uncommitted data from a table. This fix solves the problem. Problems with row size > 4001 Previously, working with rows greater than 4001 bytes in length may have caused segmentation violations or resulted in corrupt data or corrupt data lengths. This fix solves the problem. APAR Descriptions for FixPak 7030 ================================= Service Pak 7030 contains fixes that have gone into the product DB2/2 v1.0 since its General Availability (March, 1993). Descriptions in this section of the document are for fixes made to the product since the shipping of Select Paks 7025, 7023, and 7022 (May, 1994). JR00056: Incorrect Connection Information When a DB2/2 user connnected to DB2/6000 or other DB2 workstation platforms, the connection information returned was incorrect. This is a further fix to the same problem corrected in Select Pak 7025. JR07732: Hang on CONNECT This fix prevents a database client from hanging at a database 'CONNECT' request to a remote database. JR07740: SELECT - ORDER BY fails with SQL0902 A SELECT with ORDER BY clause against a view, if the order by element was a constant, returned SQL0902. For example, previously it was not possible to perform the following query on a view V1 created with column X as a constant: SELECT * FROM V1 ORDER BY X This problem has been fixed and the error SQL0902 is no longer returned under such circumstances. JR07869: "STATUS" no longer a reserved word in REXX The error SQL0104 resulted in REXX applications, if the keyword "STATUS" was used as an indentifier. "STATUS" is no longer a reserved word in REXX applications and can be used as a host variable name. JR07918: SQLCIAA trapped when Netbios session broken Previosly a broken netbios connection between a DB2/2 server and a client caused the SQLCIAA agent at the server for that netbios session to trap. This problem has been fixed and the netbios session no longer traps at the server if the netbios connection to a client is severed. JR07919: DBM GET SYSTEM STATUS failed DBM GET SYSTEM STATUS did not work properly in a remote program load environment. SQLCODE 0004 was returned rather than displaying the status. This fix has corrected the problem. JR07970: SYS3175 with many NETBIOS clients A SYS3175 or SYS3171 trap error was encountered in SQLC.DLL on systems utilizing multiple LAN adapters for DB2 when there were many NETBIOS clients. The DB2/2 NetBIOS protocol design has been modified to prevent the trapping situation from occuring. JR07973: UPDATE returned invalid ROW COUNT Previosly an UPDATE instruction like UPDATE SET COL1 = 'aaa' where col2 = bbb sometimes generated an invalid row count in SQLCA.SQLERRD(3) if an index existed on the same columns as in the UPDATE statement. This was caused due to the fact that after a row was updated, it was relocated in the index file, making it susceptible to be updated again with the same information, producing an invalid row count. This defect has been fixed to ensure that the row count in SQLERRD2 will be incremented correctly while updating a row in an indexed table/view. JR08020: SQLSTATE set to blanks after FETCH Previously, an application precompiled with /L=0 (default option) caused the SQLSTATE to be set as blanks (i.e. SQLSTATE=' ') after a FETCH instruction, causing NULL truncation. This problem has been rectified. JR08022, JR08150: Memory leak in SQLEFREE API Repeated calls to SQLEFREE API could have resulted in the following error: SQL1022: There is not enough memory available to process this command. A fix has been implemented to prevent this memory leak. JR08057: Log full errors Previously customers performing an IMPORT REPLACE on 3 tables consequtively, each while the target table already existed, encountered problems. During the first IMPORT, 1 log full was encountered, however the importing completed successfully. The second IMPORT encountered many log full scenarios, while allowing the IMPORT to continue each time. The third IMPORT failed when attempting to truncate the target database. These problems have been fixed. JR08061: SYS3171 if network id for APPN workstation set to null In the past if a user cataloged an APPN workstation and specified NULL for the Network ID, a trap message similar to the following one was received when the user tried to connect: SYS3171 in ACSSVC.DLL 0005:13fe4148 This has been fixed to enable the user to connect successfully from an APPN workstation without encountering a system trap. JR08111: DB22KILL failed When invoked, DB22KILL did not always disconnect all APPC client connections to the DB2/2 server. This fix corrects the problem. JR08153: Inexact Floating Point Exception If in a 16-bit COBOL application the FLOATING POINT INEXACT BIT was not masked, the application intermittently saw Inexact Floating Point exception when it issued CONNECT TO a database. To function properly, DB2/2 requires the INEXACT BIT to be masked. DB2/2 now detects the INEXACT EXCEPTION and masks the INEXACT BIT explicitly to prevent the application from seeing the trap. JR08155: Truncated value of NP,FP in DBM REORGCHK When a DBM REORGCHK was performed, the NP and FP values were truncated if the number of pages in SYSIBM.SYTABLES exceeded 99999. NP and FP can be up to 6 digits long and this fix ensures their values are not truncated. However, this fix may cause DBM REORGCHK output to misalign and/or exceed 80 characters in width when NP and FP are large. JR08157: APPC error F015-00000000 Previously database applications connecting/disconnecting from a database accessed via APPC sometimes received the APPC error sense code: F015-00000000 Insufficient stack size This problem has been resolved. JR08180: RUNSTATS returned incorrect results Prior to the implementation of this fix, running statistics (RUNSTATS) returned incorrect AVECOLLEN (average column length) under certain circumstances. This fix corrects the problem. JR08211: PCDR clients intermittently lost connection When PC DOS Requester (PCDR) clients were connected to a DB2/2 server, the server could get into a state where it would lock out further PCDR clients from establishing a connection. However, the server continued to function properly for the clients still connected to it. This problem has been fixed to prevent new PCDR clients from being locked out by the server. JR08218: SQL1042 when doing ROLLFORWARD AND STOP If the use of a database was abnormally terminated, e.g. due to a power failure, the subsequent recovery of the database, using the command ROLLFORWARD AND STOP, generated the following error message: SQL1042 An unexpected system error occured. This message could also be produced after the STOP button was pressed in the recovery tool, if the backup of the abnormally terminated database was restored using rollforward from the recovery tool . The error only occured if the database was configured with USEREXIT=ON and LOGPRIMARY=63. This has been fixed and the SQL1042 is no longer returned under such circumstances. JR08257: Floating point exception errors This fix adds floating point exception protection to handle floating point underflow/overflow errors. Floating point exceptions have the potential to trap the operating system. This fix sets the estimate number of records involved in a query to default to a system minimum/maximum when a floating point exception is encountered, thereby preventing a system trap. JR08263: Fix for DB2/2 running on WARP Previosly DB2/2 DLLs were not being unloaded appropriately from the memory in OS/2 WARP 3.0. Prior to this fix, NetViewDM/2 encountered problems while running concurrently with DB2/2 on WARP. This fix is necessary for Net View DM/2 users requiring support for DB2/2 in the WARP release of OS/2. IX45867: Fortran precompiler problem The Fortran precompiler did not have a provision for identifiers that began with keywords (e.g. end, program, function, subroutine, etc.). If a Fortran source file with embedded SQL statements had variables such as endFlag and programName, the Fortran compiler produced a redeclaration error for the generated Fortran source. This fix corrects the problem and allows identifiers to begin with keywords. Other Database Engine Fixes --------------------------- Unable to STARTDBM with IPX IPX users receievd the error SQL1066N upon issuing STARTDBM under the following conditions: 1) The database(DB) server's Netware connection table had more than one entry; 2) The connection to the Netware file server that the DB server searched for was not in the LAST entry of the table; and 3) A bindery object with the same name that the DB server was using already existed. The error message SQL1066N is no longer recieved under the above mentioned conditions. Importing from CD-ROM failed with SQL3025N Previously, an error occurred when trying to import data from a CD-ROM drive. The following error code was returned: SQL3025N: The datafile parameter is not valid. This fix has corrected the problem. UPM node logon While connecting to a DB2/MVS database via DDCS/2 or to a remote DB2/2 database from a DCF client or a DB2/2 client the user is prompted for a UPM node logon for starting the first session. Sessions started subsequently from the client to the same node do not prompt for a UPM logon. Previously however, several minutes after two or more sessions were successfully started from the client to connect to the same node, a UPM logon panel popped up on the client machine, even though there was no attempt made on the client machine to open another session. This logon panel contained corrupted node information and hung up the existing sessions on the client. This problem has been fixed and the erroneous logon panel is no longer displayed. DOS/Windows Requester APAR Descriptions --------------------------------------- JR07968: SQL30080 when trying to use alternate adapter Previously, a DB2/2 DOS Client received SQL30080 RC=15 while attempting to use an alternate adapter if the workstation was configured for both primary and alternate adapters. This fix correct the problem. Query Manager (QM) APAR Descriptions ------------------------------------ JR07346: Incorrect data in header text Incorrect data was displayed in the header text of a Query Manager report using a form. This error occured if a variable column (eg. &N) was referenced in the header text of the report and the report exceeded 1 page per break (breaks are used to group the report output by unique column values). This problem has been fixed. JR07467: Problem with BREAKS in QM forms In a Query Manager form, if there were only a few lines on a page before a BREAK, then a new page would not be started after the break. This problem has been fixed. JR07475: Could not use 3 or 9 as mnemonic keys When creating a Query Manager Menu, users can specify a mnemonic for each menu action. This allows them to press just the mnemonic key to execute the menu action when the menu is being run. The problem was that a mnemonic of 3 or 9 did not work if 3 or 9 was pressed on the number pad. Instead, page up and page down were performed. All other numbers on the keypad worked fine as mnemonics. This fix allows 3 and 9 to be used as mnemonic keys on the number pad. JR07904: Invisible text while changing row conditions After creating a prompted query, if you try to change the row conditions, you get a window titled "Change Left-Side of row condition". Prior to this fix, the text in this window was partly invisible (blanked out). This fix allows the text to be viewed in its entirety. JR07797: Extra headers for updated records Previously, forms produced to display QM output had more than one header in the output. Extra headers were generated before the entries for updated records. This fix ensures no additional headers are received in in the QM output forms. JR08152: Shift-F9 did not bring up Command line window In Query Manager (QM), once in the "main selection" for a database, the Commands pulldown menu indicates that Shift-F9 can be used to bring up the command line pop-up window. Shift-F9 did not bring up the QM Command line pop-up window. This fix corrects the problem. JR08198: QRW0541 with TRACE ON On a DBCS system (JAPAN), Query Manager (QM) returned QRW0541 RC= 11008 when trying to initialize. This occured if OS/2 System trace was on. This fix corrects the problem and allows QM to initialize with TRACE ON. Database Administration Tools (DBAT) Changes -------------------------------------------- Minor copyright changes have been made to Database Administration Tools. APAR descriptions for FixPaks 7025,7023 and 7022 ================================================ The fixes contained in the Select Paks 7025, 7023, 7022 are fixes that have gone into the product since Service Pak 7015 was shipped. FixPak 7025 - Database Engine and Database Administration Tools (DBAT) --------------------------------------------------------------------- IPX/SPX Support --------------- This FixPak includes code changes to enable the DB2 CAE/DOS v1.2 or DB2 CAE/2 v1.2 products to access the DB2/2 Server using the IPX/SPX protocol. You must install both the DB2/2 engine and Database Administration Tools fixes from this FixPak in order to install all required changes for this IPX/SPX Support. For more information on the IPX/SPX Support please refer to the DB2IPX.INF file installed by the FixPak on the \SQLLIB\BOOK dir: view DB2IPX.INF This FixPak migrates your existing database manager configuration file. Existing parameters in this file remain the same but two new ones will be added. You must set these parameters before using IPX/SPX Support. Please refer to the above DB2IPX.INF file for details. There are some NEW and CHANGED messages related to this new IPX/SPX Support. For more information on these please refer to the above file for details. The following message identifiers are affected: - SQL1066N - SQL1067N - SQL1073N - SQL1340N - SQL1341N - SQL1342N - SQL1343N - SQL1392N - SQL1393N - SQL5014N - SQL5019N - SQL30081N Database Engine and DBAT APAR Descriptions ------------------------------------------ JR00056 - Incorrect connection information Previously, when users connected to DB2/6000 or DB2/MVS from a DB/2 client, the connection information was not correct. The problem was caused by the old DBM.CMD (REXX) client code not knowing the DB2/6000 and DB2/MVS product signatures. A fix has been implemented to correct this problem. JR07267 - Restrictions on Cobol Host Variables Previously, a sign was not allowed in the VALUE clause of a PIC statement in the DECLARE section of COBOL programs with imbedded SQL. An optional sign is now allowed on numeric declarations of host variables. Existing programs will continue to precompile as before. For example the following is now possible: EXEC SQL BEGIN DECLARE SECTION END-EXEC. 01 MY-VAR PIC S9(4) COMP-5 VALUE IS +5. EXEC SQL END DECLARE SECTION END-EXEC. JR07352 - Addition subtraction of decimal numbers This fix solves a problem with decimal addition and subtraction where negative zero (instead of positive zero) results are generated. JR07464 - SQL0553 while importing While importing a table which had a primary key (and an index auto created), SQL0553 was returned because of an attempt to create an index with 'sysibm' as qualifier. When a table was exported in IXF format, index information was stored in the IXF file unless the qualifier of the index was SYSIBM. This comparison of the qualifier of the index was not being executed properly so this information was stored in the IXF file. When those files were imported again, an error occurred when import tried to create an index with a SYSIBM qualifier. This fix will export so that no index information will be stored in the IXF file for indexes with the SYSIBM qualifier. To implement the fix: rebind sqlueiwi.bnd to the database and re-export the table. (No more import error messages will result from the failure of the creation of an index with a SYSIBM qualifier). JR07486 - Unnecessary Empty Pages Previously, applications generated unnecessary empty pages which affected performance. Data pages were considered full once there was no more free space for new records OR the maximum number of records per page had been reached. Deleting records allowed DB2/2 to reuse the space of the deleted record for future inserts. However, once a data page contained the maximum number of records, the free space resulting could not be reused for future updates. This caused the data file to grow larger which was necessary to accommodate the new data being appended to the file. As a result, a REORG operation was the only way to reclaim this unusable free space on 'full' data pages. This fix has remedied the problem in that DB2/2 will reclaim and reuse any available free space for record inserts, even when there has been deleted records on previously full pages (maximum number of records per page). JR07504 - USEREXIT Archive OS/2 Window totally blacked-out, inaccessible Invoking the LOG USER EXIT for ARCHIVING caused the OS/2 Archive Window to be brought up as expected but totally black. After installing the first Select Pak for DB2/2, user exits would have no stdin/stdout/stderr. Any type of I/O performed by the user exit would result in an error as the file handles were inadvertently closed in the parent process and inherited by the user exit. The same symptoms would occur if the user was doing a RETRIEVE of a log file as well. This problem may or may not have been noticeable. If the user exit did not perform I/O, the problem would not occur. However, during normal executio when the user exit is invoked and I/O is required, the problem would occur. This fix has corrected the problem in that inherited standard I/O file handles are now kept open. JR07508 - Start/Stop using database causes swapper file to grow When performing START USING - STOP USING multiple times in several processes running concurrently to the same database, the SWAPPER file kept on growing due to the same database shared memory not being disconnected properly. A fix has been implemented which now enables the database shared memory to be freed up properly for concurrently running processes. JR07513 - View based on column functions with distinct has bad result This problem was associated with queries based on views that contained column functions with DISTINCT applied to the argument. This was caused by an oversight in the SQL compiler in which it did not recognize the need for a SORT prior to the DISTINCT processing. A fix has been implemented to make the SQL compiler recognize that a SORT is required and generate a plan that ensures the records are sorted prior to the DISTINCT processing. JR07515 - Lots of almost empty leaf pages Adding lots of duplicate values to an index in a certain order could sometimes lead to many almost empty leaf pages which caused the index file to grow extremely large and consume alot of disk space. The problem was caused by a defect in the split logic for a single record node in index manager. A fix has been implemented and the logic for splitting single record pages has been changed to handle this situation properly. JR07516 - Trap in COBLIB.DLL when doing a CTL-BREAK while in MFCOBOL Animator When running inside a COBOL runtime function, Micro Focus switched to a "static COBOL stack of size approximately 8 KB". Once a signal was generated, the DB2/2 signal handler trapped the signal and the default signal handler was invoked. The available stack was only 4K, which is too small for DB2/2 signal handler to operate. A fix has been implemented to correct the problem. JR07542 - SQL0104 when doing SQLBIND with grant option When the SQLBIND command with the GRANT option (/G) was issued against a host database like the AS/400, the error SQL01042N was returned. In this case, the SQL0104N error indicated that "GRANT BIND, EXECUTE ON PROGRAM..." was not supported on the AS/400. A fix has been implemented in DB2/2, so that the GRANT statement supported by the hosts ("GRANT EXECUTE ON PROGRAM...") will be issued when the GRANT option is specified. JR07577 - SQLNETB in CONFIG.SYS is set to 32 instead of 64 SQLNETB is a DB2/2 environment variable. It is provided to allow the user to specify the number of NetBIOS sessions that he/she would like DB2/2 to reserve for itself from the NetBIOS pool of resources. If the SQLNETB environment variable does not exist, at "STARTDBM" time, then a default setting will be assumed by DB2/2. This fix changes the actual SQLNETB default from 64 to 32 for server configurations. JR07646 - Customer gets 3189 message too big for message buffer A non-standard message was printed in the import/export message file in the event that the combined length of the tokens for the message was greater than 70 bytes. The tokens will now be truncated with this fix. Note: After installing this fix, no other actions are required before running the scenario. The message for SQL3189 will appear as documented in the Messages and Problem Determination Guide. A column list is provided as the second token for message SQL3189, this list may not be complete if the list is too long to fit in the 70 byte limit of the sqlca.sqlerrmc. JR07663 - Incorrect SQL1042 Error Code When an attempt was made to set the maximum file handles to a value smaller than what was already opened by the operating system, an incorrect SQL1042 error code was returned. This has been fixed, and the SQL1042 error is no longer returned. JR07670 - DB2/2 logs unnecessary to FFST/2 When a Presentation Manager application executes REXX SQL APIs, DB2/2 logs an unacceptable number of FFST/2 log entries. The performance of the application was affected due to heavy disk I/O. To handle this problem, DB2/2 now checks if the application is a Presentation Manager application and does not log unnecessary FFST/2 log entries. JR07688 - Check Pointer Failed SQL0822 When an application was running SQL in a thread other than thread 1, the application could potentially see error SQL0822 (bad SQLDA pointers), or trap in SQLAK32.DLL for 16-bit applications. A fix has been implemented to correct this problem. JR07710 - Swith to turn off NetBIOS subsystem Prior to this fix, there was no means, provided by DB2/2, to disable the NetBIOS protocol initialization reserves NetBIOS sub-systems resources (sessions names and ncbs). Some users would prefer to disable the NetBIOS protocol initialization, for DB2/2, to conserve these resources. Disabling the DB2 NetBIOS initialization would only be desirable for those not using the NetBIOS protocol for DB2/2 client/server applications. This fix provides support for a new SQLNADPT environment variable value which would allow the user to specify "NONE". ie. SET SQLNADPT=NONE NOTE: If "SQLNADPT=NONE" is set before issuing "STARTDBM" then the NetBIOS protocol will NOT be initialized for that workstation. After this fix, a NetBIOS client attempting to connect to the "NetBIOS disabled" server will receive a SQLCODE "30080 '14'" (which means that the server is not ready). "NetBIOS disabled" clients attempting to reach a server via NetBIOS will receive a SQLCODE "30080 'FFFF'" (which means that your local DB2/2 NetBIOS protocol has not been initialized properly). JR07757 - Table expected in WSF format has garbled column headings The labels that are column headings did not have the preceding single quote (') as required when exporting a WSF format file. This fix has remedied the situation. JR07758 - Thunking error in successive DARI/SQLOCALL calls When multiple 16-bit stored procedures were called in nested levels (i.e. a 16-bit stored procedure issues another 16-bit stored procedure from within itself) resulted in DB2/2 mishandling the input and output SQLDA pointers. This caused the application to receive a SQL0822 error. A fix has been implemented to correct this problem. JR07770 - Negative zero not equal to zero (-0 <> 0) This fix corrects a problem with the equals (=) and the not equals (<>) predicates when both operands are zero valued decimals of identical precision and scale, or zero valued double-precision floats. NOTE: To implement this fix, rebind any applications with static SQL. JR07819 - Pool of memory release problem When an application used DARI, the user received an error SQL0083C (out of memory) if the server application returned SQLZ_DISCONNECT_PROC return value and was called many times. This occurred because the pool of memory allocated by Run-Time Services for the server application was not released. A fix has been implemented to correct the problem. JR07868 - Complex queries with GROUP BY clauses In some cases, complex queries with GROUP BY clauses caused failure or returned incorrect results. After applying this fix, rebinding will correct applications that were affected by this defect. Other Database Engine and DBAT fixes ------------------------------------ Migration of Database Manager Configuration file ------------------------------------------------ This is done automatically by the Service/FixPak install program. No changes will be made to the existing parameters but two new ones will be added. These can be left empty unless you want to use the IPX/SPX Support. Please refer to the DB2IPX.ING file mentioned in the previous section for additional information. Translation of a QMF file ------------------------- A problem existed in attempting to download a QMF file and import it in a DBCS environment. The fix solves this problem and translates the QMF file as intended. DB2/2 Base Address Changes -------------------------- The DLL base address for DB2/2 has been modified in order to get around an OS/2 APAR PJ11671. No functionality changes were made as part of this APAR. 1042/Trap on Recovery --------------------- A potential recovery problem related to an index file size that could cause a trap or 1042 during recovery has been fixed. Autocommit ---------- When DBMCOMMIT was not set or set to YES, operations performed through DBM -C UPDATE or DBM -C DROP on the database could not be rolled back. Now, operations done with DBM -C can always be rolled back regardless of what DBMCOMMIT is set to. FixPak 7023 - DOS/Windows Client APAR Descriptions -------------------------------------------------- JR07462 - Display thread on DB2/MVS The DOS requester was not sending the correct thread ID and server name to DB2/MVS when connecting through DDCS. With this fix, the DOS requester will always send out a thread ID of 0 and the correct server name. JR07728 - Application Abends Previously, when running an SQL application using host variables on a machine with less than 265K available DOS memory, the application could abend with an SQLCODE of 4911N. This problem will no longer occur. FixPak 7022 - Query Manager APAR Descriptions --------------------------------------------- JR07499 - Directory Naming Query Manager has been changed to allow a single period in directory names in places where OS/2 file names can be specified (e.g. TEMP.DIR). JR07742 - Searching tables with Long Varchar In some cases, when a PERFORM SEARCH was executed from Query Manager on tables with columns of type long varchar, a SYS3175 error was returned. The search will now execute correctly. Defects fixed for Service Pak 7015 ---------------------------------- The fixes contained in the Service Pak 7015 are fixes that have gone into the product DB2/2 v1.0 since its General Availability, including fixes in FixPaks 7010 and 7012. The descriptions in this section are for changes made since the shipping of FixPaks 7010 and 7012. Database Engine APAR Descriptions --------------------------------- JR06426 - Referential Integrity Check Error Before this fix, it was possible for a user creating a foreign key from one table to another to encounter an error (SQLCODE -632, rc 2) even though the definition of the referential integrity constraint was valid. The verification process for checking for referential integrity cycles has been fixed to properly identify only those referential integrity constraints that form a delete connected cycle. JR06964 - BETWEEN Predicates with Character Host Variables Previously, if character host variables were used as limit values for BETWEEN predicates, incorrect results (wrong number of rows) could be returned when an index ORing plan was selected. Such queries will now return correct results. JR06984 - Incorrect results on Query with Joins Incorrect results were returned for a query that performed a join on two views, where the views were based on queries that contain subqueries with correlated references. The problem has been corrected. JR07076 - Referential Integrity Trap This fix corrects a problem related to the referential integrity checking during insertion using 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. JR07282 - MicroFocus Cobol Applications If an application was compiled using 16-bit MicroFocus Cobol, it could experience a floating point inexact exception during the connection to a database. This exception will no longer occur. JR07368 - Remote Client Hang If a server had either * one physical LAN adapter installed and logically assigned as adapter 1; or * two physical adapters installed with only adapter 1 specified for use by DB2/2 (i.e. SQLNADPT=1), remote clients would hang when trying to connect to the database. Now, any combination of valid logical and/or physical adapters and SQLNADPT values will allow successful remote database connection and communication. JR07373 - BACKUP/RESTORE From a Privileged Window If a LAN administrator had started a privileged window and a "normal" user attempted to backup or restore a database in that window, the backup/restore would fail. These operations will now succeed in this situation. JR07387 - Trap E It was possible to get a trap E when using DB2/2 on a machine which was close to the end of its memory. This trap will no longer occur. JR07388 - Vendor Application State Previously, if a vendor application was being used with DB2/2, it was left to the application to keep track of it's state. However, as many of the applications did not do this, DB2/2 has been modified to check the state of the application when the SQLDCSR API is called. JR07408 - SQLVAR verification When a literal string was passed as data to the input SQLDA, the input SQLDA's SQLVARs were being verified for READ/WRITE access when they should only have been verified for READ access. This also occurred for an input "C Null-terminated string". In these cases, the SQLVARs will now only be verified for READ access. JR07418 - Memory Failure This fix corrects a potential memory failure when a REORG is performed on a table with small physical files. JR07430 - OS/2 2.1 - START USING DATABASE Returns -1042 When using OS/2 2.1, if a START USING DATABASE was called from within a DLL initialization routine, the operating system would return a new return code that DB2/2 did not anticipate. As a result, the START USING DATABASE would return with an SQLCODE of -1042. DB2/2 will now recognize the new return code. JR07438 - GET DATABASE STATUS REXX SQL returned a value of 65535 into a REXX stem variable XXX.1 when a GET DATABASE STATUS USING :XXX command was passed to the external function SQLDBS. This has been corrected to return a value of -1 when no database status is returned. JR07439 - Applications with no SQL Statements In DB2/2, when a bind file containing no SQL statements was bound to the database, a package was not created. A fix has been implemented so that a package will be created. JR07453 - SQLCODE -902 from SQLRASSM An incorrect SQLCODE -902 was returned from the function SQLRASSM when executing a large SQL statement. This has been corrected. JR07659 - Trap in UPDATE.SQB Previously, if the UPDATE.SQB file (included in samples.zip) was compiled with Microfocus Cobol v 3.1, the UPDATE.EXE program would trap. The BLDCOB.CMD file has been altered so that this will no longer occur. Database Administration Tools APAR Descriptions ------------------------------------------------ JR07468 - Recover Database with REPLACE EXISTING Option Previously, when a user tried to recover a database from a backup using the REPLACE EXISTING option, the drive D was not listed in the drop down combination box for the source drive. This has been altered so that the drive letter of the selected database will not be shown in the source drive drop down combination box. DOS/Windows Requester APAR Descriptions --------------------------------------- JR05949 - SQLWARN0 The SQLWARN0 indicator is now set as documented when accessing DB2/2 from a remote application. Query Manager APAR Descriptions ------------------------------- JR06499 - Numeric Global Variables A Query Manager GLOBAL variable was not displayed in the PROMPT field of a VARIABLE name associated with a MENU ACTION ITEM if the GLOBAL variable was set to a numeric value. These variables will now be correctly displayed. JR07253 - Accessing Views from a Remote Client If Query Manager was used to access a database on a server, a user that had implicit access to a view but no access to the underlying base tables would not have the view presented to them in the tables and views panel. The user will now be able to see the view. This fix requires that a database or system administrator use Query Manager to open existing databases so that they can be rebound. Once rebound, Query Manager will work correctly for other users. JR07278 - Large Numbers of Query Manager Variables This fix corrects problems which are caused when a large number of Query Manager variables have been set. The problems could materialize in different ways, but a memory addressing trap was the most likely result. JR07400 - Query Manager Icon Titles Query Manager has been updated so that when the Icon title has been customized by the user, the customized title will appear on the title line and under the minimized icon if there is adequate space available. Other Changes ------------- Database Engine --------------- Explain Support for Numeric Scalars The Explain tool now supports numeric scalars. DOS\Windows Requester --------------------- DOS\Windows applications using Japanese Code pages It is now possible to have DOS and DOS Windows client applications running on Japanese code page 932 connect to DB2/2 server databases created with the Japanese code page 942. Query Manager ------------- Large Output Queries 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 some additional space on the working drive and run the query again. Defects fixed for FixPak 7010 ============================= The APAR descriptions contained in this section are for fixes that have gone into the product since the General Availabilty of DB2/2 v1.0. Database Engine APAR Descriptions --------------------------------- JR06827 - Blocking Selects This fixes a problem that occurs when you initiate a blocking select against an SQL/DS database using the command line processor, and then interrupt the select and issue a second query. The second query would then return rows continuing from where the first query ended, rather than starting at the top of the table. JR06867 - Running in a LAN security shell Previously, when running DB2/2 in a LAN security shell, the processes started by DB2/2 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, you must be cautious in choosing the dynamic link library files in your libpath. JR06918 - Message Tokens Message tokens are now being properly supplied for sqlcodes -1113, -1114, and -1115. Previously the tokens were missing from these messages. JR06975 - Guest ID support not allowed 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 then 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 and a LAN server, guest accounts will not be supported by the DB2/2. If the user attempts to log on to 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. JR07102 - Backwards Table scan 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. JR07196 - Communication Performance Client/Server communications performance via NetBIOS is slower when receiving data on clients or servers. To improve the performance, the receive processing has been redesigned on both the client and the server. JR07196 - Thread Termination When using NetBIOS, the DB2/2 cleanup thread can terminate prematurely. All client/server operations continue to operate normally, however, and users will not notice any symptoms. The situation has been changed so that the thread will no longer terminate. JR07196/JR07197 - NetBIOS Communication Error When connecting to a DB2/2 server, if the first data block arrives at a NetBIOS client before the session is fully established, the client will receive a 30080 000a message, and the attempt to connect to the server fails. The connection and first receive are now sequenced to ensure that the agent cannot proceed with the first receive until the connection has been completely established. JR07198 - Stopdbm Hang STOP USING DATABASE followed by STOPDBM causes a session hang when using the Application Program Interface. The code has been fixed to ensure that the processes involved in the STOP USING DATABASE and the STOPDBM will not compete for the same resources to cause the deadlock. JR07300 - FFST/2 Trap When DB2/2 encounters an error, it calls FFST/2 to log the error. FFST/2 requires a lot of stack which in turn traps the application. To fix this problem, DB2/2 now provides a larger stack for the application to use while inside the engine. JR07310 - MAXLOCKS If MAXAPPLS is set to greater than 100, then MAXLOCKS is 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 you increase MAXAPPLS, you should decrease MAXLOCKS. JR07324 - Invalid Records Formerly, when a record was fetched that was not a user type, it was assumed to be a control record. Now, the record type is checked to ensure it is valid. If it is not, a -902 "25" error message will be returned. Query Manager APAR Descriptions ------------------------------- JR06270 - Premature Termination when using Panels This fixes a problem that causes Query Manager to terminate unexpectedly. The problem occurs when you change the size of a repeated rows field in a panel where the field has a one to many relationship (only on 8515 monitors). Under OS/2 2.0 there is a formatting problem with repeated rows on the 8515 monitor. This problem, as well as the unexpected Query Manager termination can be corrected by installing OS/2 corrective Service Pak 6055. JR06371 - Negative Zeros (-0) 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. JR06684 - Premature termination using list boxes 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. JR06851 - Dutch Translation Error In the Dutch language version, default and ascending indexes were shown as 'Dalend', which is Dutch for descending. This has been corrected. JR06882 - Exceptions when using Callable Interface 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. JR06913 - Report Text Length 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.) JR06969 - Index Display of Column Names This fix corrects the problem where a column name is truncated to 15-1/2 when using the 'Show Index' function. JR06986 - TAB/Arrow Keys in Procedures TAB and arrow keys now work as intended in message boxes created by the SAY command. JR07179 - Package Name For Query Manager in DB2/2 Formerly, all levels and versions of Query Manager used the same package name when binding to a database. However, because of the different dates on the bind files for Extended Services 1.0 and DB2/2, a rebind was required each time a client of one type accessed a database following a client of the other type. Consequently, unless the user(s) had database administrator authority, they were not allowed to perform the rebind. Thus, in an environment with a mix of Extended Services 1.0 and DB2/2 clients, users could be denied access to Query Manager. This problem is fixed by using different package names for different versions of Query Manager. The files: * qrwn.dll * qrw3*.bnd (8 files) should be applied to every DB2/2 client and server on the system. Omitting even one client will cause the problem to reoccur if that client is allowed to connect to the database. NOTE: Each of the .bnd files will need to be rebound. *********************************************************************** ** ** ** (c) COPYRIGHT INTERNATIONAL BUSINESS MACHINES CORPORATION 1994. ** ** ALL RIGHTS RESERVED. ** ** ** ***********************************************************************