Date: 03-11-2016 Subject: RELEASE 9.8A DATA Manager Files These release notes pertain to the following programs or files: SUNDM.EXE 9.8A 11 Mar 2016 9,8,1,500 SUNDM64.EXE 9.8A 11 Mar 2016 9,8,1,500 SUNWSRV.DLL 9.8A 11 Mar 2016 9,8,1,500 *============================================================================== Notes for WARNINGS: - All SunDM Data Manager versions have a 16-bit limit on individual DIM variables in a READ or WRITE variable list. If individual DIM variables in a READ\WRITE have a size larger than 65535 bytes, it is possible that unexpected\indeterminate results for these instructions CAN occur. All PLB programs should avoid using individual DIM variables in READ\WRITE instructions that are larger than 65535 bytes. Note: To avoid this DIM size issue accessing files on a Data Manager, a PLB READ or WRITE can use multiple DIM variables whose size DOES NOT exceed 65535. - Based on the 16-bit limits for the Data Manager READ\WRITE operations, the 9.8A or newer PLB runtimes and Data Managers have been modified to generate appropriate I82 errors. These I82 error are generated if unexpected\indeterminate interface data is detected\encountered when DIM variables with a size larger than 65535 are being used. See the PL/B Runtime Reference manual for new I82 error description details. Note: To avoid this DIM size issue accessing files on a Data Manager, a PLB READ or WRITE can use multiple DIM variables whose size DOES NOT exceed 65535. *============================================================================== The following files have been changed as noted: ------------------------------------------------------------------------------- SUNDM - All additions and corrections applied to the 9.8A PLBWIN runtime for PL/B IO have been applied to the Data Manager. See the release notes for PL/B for details. - Modified\cleaned up the command options '-f', '-r', '-s', and '-t' to pause after displaying messages so the end-user can read the message details. Also, the '-wn' command option can be used to specify a user defined pause. - Added support for a keyword named 'PLB_CDFDELMDEFAULT={delmchr}' which can be used to set a Data Manager user defined delimiter character as the default for *CDFON operations. This keyword setting is ONLY used by the Data Manager child process if the client runtime DOES NOT use any of the following to control the *CDFON delimiter: 'PLB_CDFDELMDEFAULT' keyword in PLBWIN INI. This keyword in the PLBWIN INI file overrides the Data Manager default keyword setting. 'SETMODE *CDFDELMDEFAULT' instruction. If the PLB runtime executes the 'SETMODE *CDFDELMDEFAULT', the program setting overrides the Data Manager default keyword setting. 'SETMODE *CDFDELMUSELOCALE=1' instruction. If the PLB runtime executes the 'SETMODE *CDFDELMUSELOCALE=1' instruction, the Data Manager overrides the Data Manager default keyword setting when using a Windows OS Data Manager. This DOES NOT apply to Linux or Unix Data Managers. - Added support for a new keyword named 'DM_COPYFILE_CHILDRECOVERY={on|off} which can be used to enable\disable child recovery for COPYFILE operations. This keyword is implemented to provide a work around to a problem where a COPYFILE could hang in an endless loop where a runtime client to Data Manager tries to recover a socket connection used in a bad communications environment. If this keyword is set to 'off', the COPYFILE operation at the Data Manager DOES NOT attempt to recover a socket connection when a socket error occurs. - The Data Manager socket message recovery has been modified to limit the amount of elapsed time before giving an application error when attempting to recover the SAME socket message over and over. This change is implemented to prevent an endless hanging scenario trying to recover the same socket message. In addition, the Data Manager has been modified to support a new keyword named 'DM_RECOVERYTIMELIMIT={min}'. This keyword allows a user to specify how long the Data Manager will try to recover one message for multiple recovery attempts. The {min} assigned value MUST be specified in minutes and the minimum value allowed is 1 minute. If this keyword is NOT used, the default value is 30 minutes. - Modified the Data Manager to generate an I82 subcode 36 error when an unexpected variable identifier is detected in the WRITE data stream received being processed by the Data Manager. This error can only occur when a runtime client with a version of 9.8 or earlier is accessing a 9.8A SunDM Data Manager and the size of a single variable in the WRITE variable list is larger than 64KB. Prior to the implementation of this I82 subcode 36 error, the Data Manager could process and scan random buffer data that could cause indeterminate results including a GPF. - Modified the Data Manager READ operations to generate an I82 subcode 38 error when a single DIM variable in the READ variable list is larger than 65535 bytes and the amount of data to be returned to the PLB runtime is larger than 65535 bytes. All individual DIM variables being used for a READ from the Data Manager must have a size less than 65536 bytes. Otherwise, the read results would be indeterminate without this error. Please note, a READ operation to a Data 9.8A or new Data Manager can execute without this I82 error ONLY if the data size to be returned is less than 65535 bytes for an individual DIM. - Modified the Data Manager ISI header cache to minimize the possibility of causing a buffer overflow. - Corrected a problem where a GPF Data Manager error could occur if a READ operation is executed and large DIM variable(s) are being used. In this scenario, the GPF MAY occur because of a buffer overflow problem. Whether this GPF error occurs or not depends on the accumulated size of multiple variables in the READ variable list and how the OS buffer allocations are laid out in memory for the Data Manager. Whether this GPF errors occurs or not is purely random\indeterminate. - All runtime\sundm versions prior to the 9.8A version can cause data record corruption when using a FILTER expression for an IFILE if a repeating sequence of READKS and UPDATE instructions is executed. This same problem can occur when using a READKP (with a filter) and UPDATE sequence that is repeated. - Corrected a HTTP error 17 (receive timeout) that might occur when using SSL operations. - Corrected an MAILSEND Mxx error with a subcode 81 (receive timeout) that might occur when using SSL operations. - Corrected COUNTKEYS problem where the SQLIO operation did not give expected results when the IFILE key was composed of multiple SQL numeric columns. - Corrected a memory leak where a SQLIIO close operation was not cleaning all allocated buffers. This problem could allow a FILTER to take affect on a file variable that was OPENed without using a VIEW when an I85 subcode 123 should have been generated. -------------------------------------------------------------------------------