contact contact

Eloquence B.08.00 Release Notes (B130527)



After the release of Eloquence B.08.00 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 previous B.08.00 patch bundle).

This document extends on the Eloquence B.08.00 release notes and reflects the changes in the Eloquence patch bundle PE80-B130527 relative to the previous Eloquence patch bundle PE80-B100211 and its corresponding PE80-B100211 release notes.


Database server

Critical fixes for corner-case issues in the database server include
  • Under rare conditions, an internal deadlock condition could result in a database server hang while on-line backup mode is active (#4059).
  • A dbpurge operation could cause the database server to abort due to an internal race condition (#3781).
  • In a certain corner case, deleting a record using the Eloquence language could result in a server panic.
  • The database server could abort due to an internal race condition (#3948).
  • Due to a race condition, a database status -700:-3 could be returned when a connection is established.
  • On Linux, the dbctl killthread command could have no effect.
  • Under rare conditions, the database server could abort due to a segment violation if multiple dbctl list or HTTP session status invocations were issued at the same time (#4062, #4063, #4065).
  • Under rare conditions, the HTTP thread could terminate unexpectedly on a failed network call (#4094).
  • In a rare case, data corruption could occur when on-line backup mode was stopped (#4108).
  • A transaction journal corruption could occur if the database server was stopped or aborted while in on-line backup mode after using the dblogreset or dbrecover utility (#4126).
  • The eloqdb startup behavior was modified to prevent that a transaction journal corruption remains undetected.

User visible changes to the database server include
  • Modified database server startup behavior in case a transaction journal corruption is detected:

    If the database server aborts unexpectedly due to a power failure or an operating system problem and the SyncMode configuration has been deactivated, it might happen in rare cases that the transaction journal is damaged so that on startup the database server cannot perform its usual transaction recovery.

    In such a case, the database server now aborts immediately with a message like below, preventing the problem to remain unnoticed:

     WARNING: Unable to perform volume recovery due to inconsistencies.
     Please restore the data volume files from a backup, then use
     dbrecover to apply the forward-log. If this is not possible, use
     dblogreset to manually perform a volume recovery, then check the
     data volume with dbfsck.

  • The HTTP status was enhanced to display additional information on the installed license in the config web page.

  • The server was enhanced to implicitly grant a DBA user administrative capabilities on a database. Previous versions by default granted administrative capabilities only to the account that was used to create the database.

    As a consequence, the following behavior is changed: Any user with DBA privileges may

    • purge or erase any database
    • dbstore or dbrestore any database
    • perform a dbdumpcat on any database
    • change the database structure
    • change the database access rights

    Please note that some of these functions are only available with an updated dbutil version.

    With previous server versions only the user that created a database (or was granted administrative capabilities subsequently) was able to perform these tasks. Other users, even with DBA privileges would fail.

  • The DBUPDATE mode 2 on a master set was changed to return status 43:0 instead of -804:0 when a duplicate key item value is specified.

Database Utilities

Database utility changes include


  • Fixed a problem with the NOT MATCHING clause in a MULTIFIND command. Due to a bug the NOT negation had no effect unless it was the first condition in an expression (#3993).

     >MU orders.order-date=0621 &
     >>AND order-details.shipment-date NOT MATCHING "0628"

  • Fixed a problem with the NOT MATCHING syntax parsing in a MULTIFIND command. Due to a bug the NOT MATCHING must be specified as the last condition or a syntax error is reported (#3993).

    For example:

     >MU order-details.shipment-date NOT MATCHING "0628" &
     >>AND orders.order-date=0621
    However, the following worked:
     >MU order-details.shipment-date MATCHING "0628" &
     >>AND orders.order-date=0621


  • A problem was fixed where in a rare corner case it could happen that forward-log actions were not processed because a session sign-off record was encountered too early (#4088).

    Under rare conditions a session sign-off record might be written while there are still transactions pending for the associated session.

    The fwaudit utility was modified to correctly handle this case.

Eloquence Language

Changes to the Eloquence programming language utilities include


  • Ordering FORM fields was limited to a maximum field length of 80. This limitation was removed.

dlgsrv32 (Windows)

  • Enhanced the DLG protocol input/output character conversion to support the Euro currency symbol.


  • Fixed a race condition obtaining a unique taskid. If multiple eloqcore processes are started simultaneously, eloqcore could fail with a message as below.
     Taskid already in use
     eloqcore: Unable to setup daemon session

Java Dialog System

Enhancements to the Eloquence JDLG include
  • 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.

Linux IA-64 Note

On Linux IA-64 the following additional manual procedure is required
  • to update the IA32 eqdb client library:
     mv /opt/eloquence/8.0/lib/libeqdb.so.ia32 \

  • to update the IA32 image3k library:
     mv /opt/eloquence/8.0/lib/libimage3k.so.ia32 \

  • to update the IA32 fwutil library:
     mv /opt/eloquence/8.0/lib/libfwutil.so.ia32 \

  Privacy | Webmaster | Terms of use | Impressum Revision:  2013-05-27  
  Copyright © 2013 Marxmeier Software AG