30/07/96 DB2/2 v1.2 FixPaks APAR information (list and descriptions) =========================================================== APAR List and Descriptions for FixPak 7092 ------------------------------------------ IX53858 35177 Importing DEL file creates extra HEX 81 bytes in Ja_JPlocale 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 JR08481 26889 column length greater than 67 gives SQL1022 Previously, if a client was trying access a table with more than 67 columns from CAE/DOS v1.2 with Service Pak 20252, which in turn was using named pipes to access a Standalone DB2/2 v1.2 with Service Pak 7035, an Out of Memory error (SQL1022) would occur. This has now been fixed. JR08570 31780 UPM Call returns 20 bytes when 8 are expected Previously, when an application issued a CONNECT statement, the application may have trapped on the first SQL statement due to UPM returning 20 bytes of information instead of 8 bytes. This has now been corrected. 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,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. JR08598 33572 CAE/DOS APP using NAMEPIPE hangs after Thinkpad suspends. Previously, the following configuration would cause DB2/2 v1.2 to hang: 1) a CAE/DOS application was using namepipes to connect to an OS/2 Client /w Local Databases, 2) The CAE/DOS application was running on a Thinkpad 700 or 750 series machine, 3) The Thinkpad was placed into energy-saving suspend mode, and then restored. The CAE/DOS application would hang when the ThinkPad was restored and a table was selected. This has now been fixed. JR08691 36597 SQLPGITH gets 'invalid semaphore' error when coming down 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. JR08829 40410 SQL1042 AT RESTART TIME BECAUSE OF MISSING SECONDARY LOG FILES. JR08834 40519 SQL0902C rc121 returned when inserting a row into a table. JR08842 40587 larg import on client returns SQL03337 even though sucessful. JR08873 41100 Retrofit 6423 to db2/2 1.2 JR08887 41419 SQL3025N IMPORT a file frome NFS mounted drive into a remonte JR08937 42549 Symbols parsed as part of host var name on client. JR09191 47223 DB crash after import release caused -902 reason code 9 APAR Descriptions for FixPak 7047 --------------------------------- 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,i 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 examlpe 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 7035 ---------------------------------- This section describes changes that have been made to the product as a result of direct customer feedback. The descriptions contained in this section are for the fixes that have gone into the product since DB2/2 v1.2.0 GOLD (WR07000) shipped. 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 fix corrects the problem. 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. JR08083: SMP enhancements This new feature provides DB2/2 v1.2 the ability to scale with increased number of processors in a symmetric multi-processor (SMP) environment. This enhances the product's performance when used with OS/2 SMP operating system. DB2/2 performance in uniprocessor environments is also improved as a result of this fix. JR08111: DB22KILL failed When invoked, DB22KILL did not always disconnect all APPC client connections to the DB2/2 server. This problem has been fixed. 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: F015-00000000 disconnecting from database accessed via APPC 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: DOS clients intermittently lost connection to DB2/2 server 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 --------------------------- STARTDBM failed Previously, STARTDBM use to fail if db2npipe was set to an invalid name. This fix allows Database Manager to start successfully even if db2npipe is set incorrectly. 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. Default pipe name Previously, DB2/2 was incorrectly looking at the environment variable DB2NPIPE for the pipe name. The fix will make it look at DB2PIPENAME instead. DB2PIPENAME is used for overriding the default pipe name. 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. First Failure Support Technology (FFST) CSD 485 The FFST/2 CSD 485 is shipped with this Service Pak. The descriptions of FFST changes since CSD 460 (shipped with DB2/2 v1.2 WR07000) are described in this section. CM alerts not being received at host When using the alert generating program to route Communications Manager (CM) alerts through CM gate-way to Netview host it was found that alerts were not being received at the host. This fix corrects the problem. NO INHERIT bit was not set Pipe handles did not have the NO INHERIT bit set. This fix sets the NO INHERIT bit. Trap in EPWCUA.DLL when using software installer to INSTALL When installing a product that uses IBM Software Installer Version 1.1 for OS/2 a trap occured in EPWCUA.DLL. The trap occurred a number of seconds after the installation had indicated that it was complete and 'hung' the OS/2 prompt from which "a:install" was typed. This fix corrects the problem. Starting EPW.EXE caused a ghost window in minimized window viewer Executing EPW.EXE from anything other than CONFIG.SYS caused a ghost window to appear in the Minimized Window Viewer. For example, if EPW.EXE was not running, executing EPW.EXE from the command line would produce the ghost window. Also, If EPW was running, executing EPW OFF, then EPW ON produced the ghost window as well. Another time this problem occured was when FFST/2 was stopped and started via Dos calls (DosExecPgm) from code. This fix corrects the problem. Multiple Message Log Formatters Displayed The problem occured when 1 copy of the message log formatter was open and another was inadvertantly started. The user receives a pop-up asking if they would like to open another message log formatter. The reply is either OK or CANCEL. If CANCEL was chosen and a second copy was started anyway. This fix corrects the problem. Trap D in DOSCALL1:DOSSEMSET as called by EPWSVC16 When starting the message log formatter a trap occured when running the following scenario: Four 3270 sessions were running over a Token-Ring network with an ehllapi application running in a loop that searches continuously for a particular string to appear in a session. After a long period (ie. 24 hours) and the log formatter is started a trap D sometimes occurs in DAOCALL1:DOSSEMSET. This fix corrects the problem. Verify Hang/CMSTOP ABNORMAL did not work on CM 1.11 The problem occured when an X.25/ISDN configuration running on Communications Manager (CM) 1.11 was stopped abnormally through SSM and then CMSETUP.EXE was started. When exiting out of CMSETUP, verification of the configuration never ended (was hung) and CM would not stop. This fix corrects the problem. Make EPWINST use WPS icons on OS/2 2.0 and above This fix installs the FFST OS/2 2.0 icons for OS/2 versions 2.0 or greater. For OS/2 versions before 2.0, FFST OS/2 1.3 icons are installed. FFST/2 Message Log Formatter caused SYS3175 on OS/2 WARP After running the Message Log formatter from FFST/2 a SYS3175 error was encounterd. The problem occured on OS/2 WARP while running FFST/2 concurrently with CM/2 1.11. This fix corrects the problem. *********************************************************************** ** ** ** (c) COPYRIGHT INTERNATIONAL BUSINESS MACHINES CORPORATION 1996. ** ** ALL RIGHTS RESERVED. ** ** ** ***********************************************************************