A.06.31 Release Notes
Eloquence A.06.31 supports enhanced dialog functionality.
The changes are fully backwards compatible, overcome previous
limitations and add forward compatibility to the next
Eloquence A.07.00 major release.
Contents of this document:
The syntax to specify a dialog driver has been enhanced to support
additional options. This specification applies when a dialog driver
(also referred to as dialog server) is specified using the
DLG SET ".driver",... statement or the -dlg command line
option with the eloq or eloqcore programs.
The new specification
- is fully backward compatible
- allows usage of multiple instances of the RUNSRV progrm on a single
system (e.g. with the Citrix Metaframe or MS Terminal Server products)
- and adds a new connect option which is compatible with
the next Eloquence A.07.00 major release and allows usage of
A.07.00 components (jdlg, webdlg) with A.06.31.
With previous Eloquence versions, the driver was specified with
an '@' character and the host name.
The new syntax is:
[protocol]host[:service]
Where
-
protocol is an optional specification of the
connection protocol to be used.
-
host is the host name or IP address of the system
the driver is running on
-
service is the name of a service (as defined in the
services file) or a port number which is used to contact the
driver.
For example:
runsrv://dhcp10
@dhcp10:runsrv
dhcp10:1234
dhcp10
Protocol
-
The protocol "runsrv://" or a leading '@' character specifies the
usage of the runsrv protocol. The RUNSRV program on the remote
system is contacted to establish the driver connection.
-
The protocol "dlg://" specifies the usage of the new connection
protocol. This protocol is not compatible with dlgsrv (Windows
GUI driver).
-
If no protocol is specified this is equivalent to
specifying "dlg://".
Service
-
With the runsrv protocol this is the port number to contact the
RUNSRV program on the remote system.
-
With the new dlg protocol this is the port number which is configured
for the driver on the remote system.
-
If no service or port number is specified, the defaults (which can be
specified in the eloq.ini configuration file) are used.
Unless specified in the eloq.ini configuration file the following
defaults are used:
- For the runsrv protocol the default port is specified by the runsrv
service (as defined in the services file).
- For the new dlg protocol the default port is 8011.
The eloq.ini configuration file format (on the system running eloqcore)
has changed. The previous eloq.ini file should be replaced after installing
the A.06.31 update with the new template file included with A.06.31
when the functionality is intended to be used.
Platform
|
Template file
|
HP-UX |
/opt/eloquence6/newconfig/config/eloq.ini |
Linux |
/opt/eloquence6/newconfig/config/eloq.ini |
Windows |
\Program Files\Hewlett-Packard\Eloquence\etc\eloq.ini.sam |
Please note: This is a different eloq.ini file than the one used
by the 16-bit Windows dialog driver and applies only to systems
running the Eloquence language. Any client systems running a
dialog server are not affected by this change.
The eloq.ini file format
The eloq.ini file contains several sections each containing a group
of related configuration items. The sections and configuration items
have the following format:
[Section]
Item=Value
Section is the name of a section. The enclosing brackets ([ ]) are
required and the must start at the 1st column.
Item=Value defines a value of a configuration item. Item is
the name of a configuration item. It consists of any sequence of
characters (case insensitive) and digits followed by a equal sign (=).
Depending on item type, the value may either be an integer or a string
(optionally enclosed in double quotes).
Comment lines must start with a semicolon (;) or a hash character(#)
in the first column.
Section [runsrv]
The Section [runsrv] specifies the defaults used with
the runsrv connection protocol.
The following configuration items are supported:
Service
|
The default service name or port number to be used with
the runsrv dlg protocol. If no value is defined the port
associated with the service runsrv is used.
|
Section [eloqdlg]
The Section [eloqdlg] specifies the defaults used with
the new dlg connection protocol.
The following configuration items are supported:
Service
|
The default service name or port number to be used with
the new dlg protocol. If no value is defined the port 8011
is used.
|
Mapping driver specifications
Other sections in the eloq.ini file can be used to map a driver
specification to a different value.
When a driver is specified (e.g. in the DLG SET ".driver",...
statement) the argument is looked up in the eloq.ini configuration
file after any protocol specification has been removed.
If a section has been found it is used to replace the original
argument.
The following configuration items are supported:
dlg
|
When contacting a DLG driver this is used as a replacement
for the specified driver. The value can specify a different
protocol.
|
runsrv
|
When using runsrv to execute a remote operation or to contact
a dlg driver the runsrv variable can be used to specify a
different host (and port number) which should be used instead
of the passed value.
|
For example:
[runsrv]
Service = runsrv
[eloqdlg]
Service = 8011
[mike]
dlg = dlg://lxmike
[chris]
dlg = runsrv://wserv:8765
runsrv = wserv:8765
This example eloq.ini file specifies to use a port number for the
runsrv protocol which is associated with the service runsrv (as defined
in the services file). For the new dlg protocol the port 8011 should
be used by default.
When a driver argument "mike" is specified (e.g. "@mike", "dlg://mike"
or "runsrv://mike") the value "dlg://lxmike" is used instead.
When a driver argument "chris" is specified it gets replaced
by "runsrv://wserv:8765".
When the runsrv is contacted from either the command line (using
the runclnt tool) or the RunSrv.DLL and a remote name "chris" is
passed, the value "wserv:8765" is used instead.
Running multiple runsrv instances on a single system
This is required if the Citrix Metaframe or the Windows Terminal
Server product is used. Each user needs to start the RUNSRV(32).exe
program with a different port number (probably during autostart).
Then a driver name containing the host name and the user name
is passed and translated by using the mapping defined in eloq.ini.
Suppose the user "chris" has a RUNSRV(32).exe using port 8765 when
working on system wserv, then the following mapping section should
be added in the eloq.ini file:
[wserv_chris]
dlg = runsrv://wserv:8765
runsrv = wserv:8765
The A.06.31 EloqStart utility has the ability to pass this information
automatically to eloquence without requiring to configure each user
individually.
The -dlg command line option has been added to eloq and eloqcore.
It has a similar effect than the DLG SET ".driver",... statement
and connects to the specified driver.
There are a few minor differences:
-
If a -dlg command line option is present all DLG SET ".driver" are ignored
-
DLG STOP disconnects the DLG server and tries to reconnect.
This does fail for webdlg and DLG STOP returns an error.
The program should terminate then.
The support for the ASYNC protocol option has been improved. The ASYNC
protocol option can be used to improve the performance of remote dialog
operations.
The ASYNC protocol option is enabled or disabled by using the
DLG SET ".async",Enable statement (a nonzero value enables
the ASYNC operations, a zero value disables ASYNC operation).
The following changes have been included with A.06.31:
-
A status failure when the protocol is in ASYNC mode is no longer
returned to the application. The first status code is saved
and can be retrieved from the application.
This allows more controlled behaviour when a status code is
returned by the driver. Previous Eloquence versions triggered
a runtime error on an arbitrary DLG statement which was currently
executed when the driver status was received.
-
The last ASYNC status code can be retrieved with the
DLG GET ".async_status",Result statement. This also
clears the saved status code. Only the first ASYNC status code
is remembered.
The last ASYNC status code is implicitely cleared when the ASYNC
mode is enabled ( DLG SET ".async",1) to avoid returning
stale results.
The interpretation of dialog resource files has been enhanced
to support setting attributes of child objects. This is used
if a dialog object is created from a template (model) which
has child objects.
Previous Eloquence versions returned an syntax error.
For instance:
GroupBox Template {
StaticText St {
.text = "Template";
}
...
}
Model.Template X {
.St.text = "Clone"
-
A DLG GET with a string result variable is always considered valid.
An integer result is converted to a string and assigned to the
result variable.
Previous Eloquence versions returned an empty string if a
string variable was used with an integer result.
-
The DLG GET ".driver_type",V$ statement can be used to retrieve
the driver type (as returned by the driver).
An empty string is returned if the driver does not support identification.
The driver identification is obtained by asking the driver for
the value of its "System.Driver" attribute and saving the response
value. This is equivalent to a DLG GET "System.Driver",V$
statement.
However since the result is saved it does not result in a client/server
transaction if this information is used frequently by the
application to provide different behaviour depending on the driver type.
The following values are planned or currently returned by the
various driver implementations:
(empty) - The driver does not support this feature
JDLG - The Java(tm) dialog server
IDM - dlgsrv (Dialog Manager based driver)
DLG - Text based (builtin) dialog
WEB - Webdlg
Currently only the A.07.00 JDLG driver supports this feature.
-
Usually, ASYNC status codes are discarded silently.
A DLG SET ".debug",V statement causes all ASYNC status
status messages indicating a failure to be output to stderr.
Otherwise ASYNC status messages are only output if informational
messages for the GUI are enabled (-dG1).
-
The new Log identifier 'G' can be used to request GUI related debug
information.
|