.
contact contact

Eloquence B.07.10 Release Notes (B070730)

 
.
 

Overview

After the release of Eloquence B.07.10 a number of bug fixes and enhancements were released as patches, providing improved functionality, performance and reliability.

The user visible changes implemented through these patches (along with critical bug fixes) are covered in this document (relative to the original B.07.10 release).

This document extends on the Eloquence B.07.10 release notes and reflects the changes in the Eloquence patch bundle PE71-B070730.


Contents


database server

Functional enhancements

  • A compatibility issue with the Linux glibc2.4 (and newer) was corrected. The Linux glibc 2.4 library introduced a (deliberate) incompatibility that was causing the eloqdb6 server process to crash.

  • The server was enhanced to support additional options for logging server or individual session performance information.

    The server also supports additional dbctl commands to allow dynamically changing the logging of performance information.

    For more information, please refer to the Database server statistics documentation.

  • The message indicating a previous unclean shutdown was recovered is now written to the server log (at all log levels).


Performance enhancements

  • The lock scheduler was revised to enhance scalability and performance with a large number of competing locks.

  • The server process was enhanced to use a more efficient format to record index and meta data changes. This enhancement may result in a substantial reduction in disk space for the forward-log files when index entries are changed frequently.

  • The internal locking strategy was revised to allow for additional concurrency. This specifically improves performance in cases of a cache miss in the database server cache.

  • Improve bimport performance on master sets and additional indexes. The bimport performance for master sets is often dominated by creating the associated index. This may also apply to detail sets when an additional index is used. The eloqdb6 server was changed to bypass the index transaction logic during bimport to improve database load time.


Security enhancements

  • Forward-log files are now created with restrictive file permissions. Only the user account configured to run the database server may access these files.

  • The dbctl logfile command no longer accepts existing files.

  • If the server process is started from the root user, ownership of a log file created during the server startup is changed to the user that is configured to run the database.


Critical bug fixes

  • Aborting on-line backup mode recovery could result in data corruption.

    The server process (or the dblogreset utility) performs a recovery from on-line backup on startup if the server was previously shut down while in on-line backup. This recovery transfers any changes temporarily stored in the log volume(s) during the on-line backup mode to the data volume(s). Depending on the amount of data that was saved in the log volume(s) and disk performance this could take some time.

    If this recovery was interrupted (or aborted for some reason) in some cases this recovery could not be re-run afterwards because the generation count of the data volume would differ from the log volume(s) generation count.

    In this case the data volume could be corrupted as the changes were only partially transferred.


dblogreset utility

  • Aborting on-line backup mode recovery could result in data corruption.

    The server process (or the dblogreset utility) performs a recovery from on-line backup on startup if the server was previously shut down while in on-line backup. This recovery transfers any changes temporarily stored in the log volume(s) during the on-line backup mode to the data volume(s). Depending on the amount of data that was saved in the log volume(s) and disk performance this could take some time.

    If this recovery was interrupted (or aborted for some reason) in some cases this recovery could not be re-run afterwards because the generation count of the data volume would differ from the log volume(s) generation count.

    In this case the data volume could be corrupted as the changes were only partially transferred.


dbrecover utility

  • The dbrecover utility was enhanced to support incremental recovery. The dbrecover utility may be restarted and should be able to continue from the previous point. The original dbrecover utility requires starting from the previous backup.

    Please note: When using incremental recovery the server process MUST NOT be started between dbrecover runs when configured in a MASTER or STANDALONE role (default). The server may be started when configured to function in a SLAVE role as this will not change the data volumes.

  • The dbrecover utility was enhanced to support recovery up to a specified point in time without previously switching the forward-log file.

    The new -T option may be used to specify a point-in-time up to which dbrecover applies changes. Once this point is passed, dbrecover will exit. Incomplete transactions are not applied.

    The following syntax is supported to specify a timestamp:

      YYYY-MM-DD [HH:MM:SS]
      MM/DD/YYYY [HH:MM:SS]
      DD.MM.YYYY [HH:MM:SS]
    
    Any character may be used to separate date and time. Specifying the time is optional (defaults to 00:00:00).

    For example:

      dbrecover -T "2007-02-22 16:53" ...
    
    This specifies to apply transactions committed up to Feb 22, 2007, 16:53:00.

fwaudit utility

  • If the same item name is used with different types in different databases, fwaudit could fail with an error message indicating a wrong syntax was used.
      item requires a string filter argument
    
    This could happen when a numeric item value is used in a filter expression. If an item with the same name exists in another database that has a non-numeric item type (X, U or B), fwaudit aborted on any record referring to that item.
      item requires a numeric filter argument
    
    This could happen if a string item value is used in a filter expression and fwaudit encountered an item with the same name that has a numeric item type.

    As a solution, fwaudit now accepts both string and numeric values on all item types. For numeric item types, if a string can be converted to a numeric value, it will be used, otherwise the value does not match and fwaudit continues. For string item types, a numeric value will be used literally for an alphanumeric comparison.

  • The "id" session item was added to allow to filter by a specific session identifier.

    The syntax is:

      id relational-op {integral-value}
      id BETWEEN {integral-value} AND {integral-value}
    
      relational-op:
        <   <=   =   <>   >=   > 
    
      integral-value:
        session identifier to compare with
    
    If using BETWEEN, the AND keyword may be omitted.

    For example:

      id = {42}
      ID BETWEEN {108} AND {110}
    

  • The "conntime" session item was added to allow to filter by the session connection timestamp.

    The syntax is:

      conntime relational-op {date-time-value}
      conntime BETWEEN {date-time-value} AND {date-time-value}
    
      relational-op:
        <   <=   =   <>   >=   > 
    
      date-time-value:
        YYYY-MM-DD [HH:MM:SS]
        MM/DD/YYYY [HH:MM:SS]
        DD.MM.YYYY [HH:MM:SS]
    
    In date-time-value, the time part is optional (defaults to 00:00:00). If using BETWEEN, the AND keyword may be omitted.

    For example:

      conntime >= {2005-07-26}
      conntime between {07/26/2005 10:00} and {07/26/2005 12:00}
      CONNTIME BETWEEN {26.07.2005 15:31:40} {26.07.2005 15:31:50}
    

database client library

  • A few issues and side effects related to client side caching were fixed.

  • The client library was modified to solve a compatibility issue with TurboIMAGE applications.

    TurboIMAGE documents that a DBFIND resets the current record number for a data set. The Eloquence DBFIND call previously did not affect the current record number.

  • The client library was enhanced to make use of an HP-UX option to obtain up to 500 characters from the command line for audit use. Previously, on HP-UX only up to 64 characters of the command line were available.

  • On HP-UX the process command line might not be available in some cases. The client library collects process information and uploads this to the server process for monitoring and audit purposes. The call to obtain the process command line could fail in some cases on HP-UX 64 bit systems, depending on the address range used.

image3k library

  • The username and password argument supported by the DBLOGON call was extended to 255 characters

eloqcore

  • A SORTORDER configuration option was added to eloq.config and the user/group specific configuration files.

    SORTORDER may be used to specify the sort order that is used for string comparisons performed by the SORT BY statement and the LEX function.

    If SORTORDER is not defined, an OS specific collating sequence is used as defined by the LANG, LC_COLLATE or ELOQLANG environment variables. This is backwards compatible to previous eloqcore versions.

    If SORTORDER is present it specifies an Eloquence specific collating sequence.

    Syntax:

      SORTORDER specifier
    
    The collating sequence is defined as a language specifier and either a "fold" or "nofold" modifier separated by a @ character, such as "french@nofold".

    A "fold" sort order interleaves upper- and lowercase characters, such as AaBbCc...Zz, where a "nofold" sort order separates upper- and lowercase characters, such as "ABC...Z abc...z".

    On HP-UX and Linux the available collating sequences are installed in the /opt/eloquence6/lib/nls/collate directory. On Windows they are installed in the lib/nls/collate subdirectory below the Eloquence installation directory.

  • Eloqcore incorporates the database client library B.07.10.09. This database client library version fixes some problems related to database caching. This library also changes the DBFIND behavior to reset the current record number.

  • Handle segment total overflow more gracefully. A program that exceeds the limit of the backwards compatible program format may fail to load. This change attempts to work around the problem. For new programs it is recommended to use the newer program file format introduced with A.06.00.

Platforms: HP-UX

  • If using a HP terminal type on HP-UX, the IDLOK terminal option is disabled to workaround a problem in the HP-UX xcurses library.

    The EQ_USE_IDLOK environment variable may be used to specify the use of the idlok terminal option. A zero value disables use, a non-zero value enables this option.

Platforms: HP-UX and Linux

  • The EQ_SHELL environment variable may be used to specify the shell that is used by the non-interactive COMMAND "!..." statement to process system commands. By default the /bin/sh shell is used.
Platforms: Windows
  • The keyboard mapping was incomplete. The following keys and key combinations are now correctly handled:
    Alt+Lmove to end of display
    Alt+Shalt / single step (also Shift+F1)
    Alt+Gadvanced step (also Shift+F2)
    PAUSEequivalent to Alt+S (halt / single step) also in combination with Shift and/or Alt
    Ctrl+PAUSEequivalent to Ctrl+Y (suspend program execution)

dbutil utility

  • The DELETE PATH syntax was simplified and no longer requires specification of a master set. The new syntax is as below:
      DELETE PATH item-name;
    
    The previous syntax is still accepted but the set name is not verified.
      DELETE PATH item-name(set-name);
    
    Deleting a path from a set does not require specifying a master set as this information is available from the database schema.

  • dbutil enforced a minimum record size (media size) of 4 bytes. This limitation could affect compatibility of stand-alone manual master and detail sets. An error message like below was output by dbutil:
      SET-NAME: Data set below min. entry length (4)
    
    The minimum record size limitation was removed from Eloquence B.07.10 (and recent B.07.00 patch levels) but was still enforced by dbutil.

schema utility

  • The schema processor enforced a minimum record size (media size) of 4 bytes. This limitation could affect compatibility of stand-alone manual master and detail sets. An error message like below was output by the schema processor:
      *** (ERROR) Record size below minimum
    
    The minimum record size limitation was removed from Eloquence B.07.10 (and recent B.07.00 patch levels) but was still enforced by the schema processor.

query3k utility

  • The FORM SETS command was changed to suppress outputting the MAXIMUM CAPACITY if the output would be the Eloquence default. As all Eloquence data sets are considered to have a dynamic "capacity" this would otherwise clutter the output without providing any additional information.

  • QUERY3K was enhanced to improve support of the Eloquence database limits that exceed the previous TurboIMAGE limits.

    This release should now support

    • a record size of up to 5120 bytes
    • 2048 items per database
    • 500 data sets
    • 1024 items per set
    • The item type 'B' (binary) is now mapped to 'X'.

    String items with more than 255 bytes per subitem are not yet fully supported and might result in undefined behavior. No such cases are currently known.

  • Printing string items with a size beyond 255 characters are currently not considered printable and will result in a message like below:
      ILLEGAL ITEM LENGTH X500, ITEM ID-DATA-500-1 IGNORED
    
    This is a workaround for a previous buffer overflow problem.

WebDLG

  • The new mod_eloq22 WEBDLG module adds support for Apache 2.2. The module interface of Apache 2.2 (libapr 1.x) is incompatible with previous Apache 2.x versions, therefore the original mod_eloq2 WEBDLG module cannot be used with Apache 2.2.

  • The mod_eloq2 and mod_eloq22 WEBDLG modules for Apache 2.x are now compatible with the threaded Apache 2.x multi-processing model (Apache 2.x MPM worker). Previous versions of the mod_eloq2 module could only be used with the non-threaded Apache 2.x multi-processing model (Apache 2.x MPM prefork).

  • The Apache 2.x WEBDLG modules and the eloqwebd executable are available for the Windows platform.

    The mod_eloq2.so (for Apache 2.0) and mod_eloq22.so (for Apache 2.2) files are installed in the Eloquence lib installation subdirectory (for example C:\Programs\Eloquence\lib).

    To install the WEBDLG module in Apache for Windows, please use a LoadModule line as shown below:

      LoadModule eloq_module "C:/Programs/Eloquence/lib/mod_eloq22.so"
    
    Please note that Apache recommends to use forward slashes instead of backslashes in Windows file paths, as shown in the example above. Also, the path should be quoted in case it contains space characters.

    For the eloqwebd, the eloqwebd.cfg.sam template configuration file is installed in the Eloquence etc installation subdirectory (for example C:\Programs\Eloquence\etc). Please create an initial copy of this file within the etc directory to the "eloqwebd.cfg" file name to install the eloqwebd configuration file.

  • The Apache 2.x WEBDLG modules are available for the 64 bit Linux x86_64 platform. To use these modules, please install the PE71-0707060-linux-glibc2.3-x86_64.tar.gz patch archive which contains both the 32 bit and 64 bit WEBDLG modules.

    The 32 bit modules are installed in /opt/eloquence6/lib as usual, while the 64 bit modules are installed in /opt/eloquence6/lib64.


Odbc.DLL

  • A compatibility problem of the Eloquence Odbc.DLL and the FreeTDS ODBC driver was resolved.

    The FreeTDS ODBC does not support the SQLDescribeParam() ODBC function. In this case the data type of an SQL query parameter is unknown. The Odbc.DLL now handles this by binding the parameter at a later stage when the application defines the data type.

    As a consequence, the application should take care to provide an appropriate parameter data type if the FreeTDS ODBC driver is used, otherwise a data type mismatch error may result.

 
 
.
 
 
  Privacy | Webmaster | Terms of use | Impressum Revision:  2007-08-10  
  Copyright © 2007 Marxmeier Software AG