---------------------------------------------------------------------- ELOQUENCE B.08.10 - patch PE81-1404141 ---------------------------------------------------------------------- This patch adds enhancements or fixes defects of the eloqcore program as released with Eloquence B.08.10. This patch will be integrated in the Eloquence B.08.10 release. Eloquence B.08.10 must be installed before applying this patch. Severity: PE81-1404141: BUG FIX Superseded patches: PE81-1302180: BUG FIX PE81-1301231: BUG FIX PE81-1211201: BUG FIX PE81-1106210: ENHANCEMENT PE81-1104280: BUG FIX, ENHANCEMENT PE81-1102220: BUG FIX PE81-1102070: BUG FIX Patch PE81-1404141 ------------------ Platforms: Linux, Windows * Updates the database client library to B.08.10.07. This fixes a potential problem with the database client side cache expiration. Patch PE81-1302180 ------------------ Platforms: All * Fixed a problem when assigning COM variables that could result in an internal failure with a message as below. Assertion failed: (((sym) & 0x8000)) file prerun.c, line 1847 in function link_com Patch PE81-1301231 ------------------ Platforms: Windows * Fixed a problem where printing could fail on Windows 8 and Windows Server 2012 (#4120). Patch PE81-1211201 ------------------ Platforms: HP-UX, Linux * Fixed a race condition obtaining a unique taskid. If multiple eloqcore processes are started simultanously eloqcore could fail with a message as below. Taskid already in use eloqcore: Unable to setup daemon session Patch PE81-1106210 ------------------ Platforms: All * The DEFSTRSZ and AUTOSTRSZ configuration options were added to eloq.config and the user/group specific configuration files. They may be used to configure the default dimension of string variables. AUTOSTRSZ specifies the dimension of string variables that are implicitly allocated upon use (auto variables). For example, A$="TEST" or A$(1)="HELLO". DEFSTRSZ specifies the dimension of string variables that were declared without specifying the dimension. For example, DIM A$(1:10) or COM A$. DEFSTRSZ defaults to a 18 characters. AUTOSTRSZ defaults to the DEFSTRSZ value. For example, the configuration below specifies that undeclared string variables are allocated with a size of 100 characters: option AUTOSTRSZ 100 Consequently, the following statement works without causing a string overflow error: A$=RPT$("X",100) PLEASE NOTE: - Changing the default string variable dimension may have an impact on existing applications. More memory is used for string variables. Also, the application may fail if it relies on the default string variable dimension. Specifically, variables used in a PACK USING statement will change the layout of the resulting packed buffer. It is strongly recommended to explicitly declare all variables used in a PACK USING statement. - It is recommended to not specify the DEFSTRSZ option. This will limit any potential impact to auto variables which are expected to be less critical. It recommended to only change AUTOSTRSZ after careful consideration. Patch PE81-1104280 ------------------ Platforms: All Bug fixes: * Fixed a bug when passing a structure by value to a function or subroutine. This could result in an eloqcore crash or abort. * Fixed a problem with 64 bit builds when passing structures in the common block. * Fixed a problem in detecting a user defined type was referenced in a type definition. This would result in a failed consistency test. * Fixed a problem when interactively assigning a structure (#1136, #3850). This resulted in a failed consistency test. * Fixed a problem when accessing member variables after the program was stopped. In this case the type definitions were Discarded though the program variables were still accessible. this resulted in a failed consistency test. Enhancements: * Add support for DBINFO mode 114. * Add keepalive support for JDLG connections. This requires JDLG version 1.5.7-110429-1914 or newer. DLG SET ".keepalive",Seconds If Seconds is nonzero, JDLG sends keepalive messages in the specified interval during a DLG DO or POPUP BOX instruction. This allows eloqcore to detect whether a JDLG connection is still active. The latter case is assumed if eloqcore does not receive any message from JDLG for five times the specified interval during a DLG DO or POPUP BOX instruction. If an interrupted JDLG connection is detected, the connection is closed and ERROR 684 is returned to the program. This function may also be useful to solve idle timeout problems caused by network router/firewall configuration. A network router might be configured to close a connection if it has been inactive for some time. To prevent this from affecting JDLG connections, a JDLG keepalive interval could be set. For example, assumed the router idle timeout is 30 minutes, DLG SET ".keepalive",900 would cause JDLG to send a keepalive message every 15 minutes so that the router idle timeout would not expire. Instead of using DLG SET ".keepalive", the keepalive interval may be configured using the JDLG eloquence.config.keepalive property, for example: eloquence.config.keepalive=900 * Add idle timeout support for DLG network connections. This may be used with JDLG or Windows DLG (DLGSRV32). DLG SET ".timeout",Seconds If Seconds is nonzero and the specified timeout has expired during a DLG DO or POPUP BOX instruction, the DLG connection is terminated and ERROR 684 is returned to the program. This may be used to automatically terminate DLG sessions that have been idle for a long time. For example, a DLG SET ".timeout",28800 would terminate any DLG session that has been idle for more than 8 hours. Patch PE81-1102220 ------------------ Platforms: All * Fixed a wrong consistency check in the LEN function that caused an internal failure with strings longer than 32767 characters. An error message as below was output: Assertion failed: res->v.s.len >= 0 && res->v.s.len < 32768 file string.c, line 94 Patch PE81-1102070 ------------------ Platforms: All * Fixed an internal buffer overflow in the MD5$ function which could cause the eloqcore program to abort unexpectedly (#3885). Installation: ------------- Please download the patch archive that corresponds with the installed release. The patch files follow the conventions below: PE81-1404141-hpux-ia64.tar.gz ^ ^ ^ | | Architecture / OS specific build | Operating system Patch ID HP-UX: In order to install this patch, you need to unpack it with gzip and tar. Gzip is included with HP-UX. Installation requires root privileges. cd /opt/eloquence/8.1 gzip -dc /path/to/PE81-1404141-hpux.tar.gz | tar xf - Files: bin/eloqcore share/doc/PE81-1404141-README Linux: In order to install this patch, you need to unpack it with tar. Installation requires root privileges. cd /opt/eloquence/8.1 tar xzf /path/to/PE81-1404141-linux.tar.gz Files: bin/eloqcore share/doc/PE81-1404141-README Windows: Two options are available for patch installation. The patch is available as self extracting archive for automatic installation and as a zip archive for manual installation. Both patches are equivalent. Installation requires administrative capabilities. For automatic installation of this patch, please download the patch file PE81-1404141-win32.exe. Installation does not require a reboot unless the patched files were active. For a manual installation of the patch, please download the patch file PE81-1404141-win32.zip and unpack its contents. Then perform the following steps: * Please copy the eloqcore.exe file into the Eloquence bin directory. (Default location: C:\Program Files\Eloquence\8.1\bin) * Please copy the PE81-1404141-README.txt file into the Eloquence share\doc directory. (Default location: C:\Program Files\Eloquence\8.1\share\doc) Files: eloqcore.exe PE81-1404141-README.txt