DEFINE_ANY_SERVER and translation tables

Date:22 June, 2007
Product/Release:Visual LANSA V11.3
Abstract:Using the DEFINE_ANY_SERVER BIF for SuperServer RDMLX connections and specifying translation tables
Submitted By:LANSA Technical Support

Description:

The DEFINE_ANY_SERVER BIF is used when connecting to an RDMLX partition on the iSeries server. From the LANSA Online documentation:

iSeries Server:
This Built-In Function must be used for I/O commands to RDMLX files or to call an RDMLX function on the server. It may also be used instead of DEFINE_OS_400_SERVER to access non-RDMLX objects, if they have been recompiled since enabling the partition for RDMLX.

If the partition has not been enabled for RDMLX or the non-RDMLX objects have not been recompiled, DEFINE_OS_400_SERVER must be used to access non-RDMLX objects.

When using this BIF, you can specify as arguments the Client to Server and Server to Client translation tables to be used. However, in V11.3, even if you explicitly specify the translation tables to be used, the default still gets used. This is scheduled to be corrected in the next EPC for LANSA.

Note: This situation affects all SuperServer applications, including Visual LANSA Framework SuperServer applications.

Solution:

This problem can be worked around as follows.

  1. Either do not specify the Client to Server and Server to Client translation tables arguments (in which case, they will default to *Job/*JOB) or explicitly specify *JOB/*JOB.
     
  2. *JOB is described as meaning the translation table will be generated based on the client code page and the iSeries server job's CCSID
     
  3. Ensure that the iSeries CCSID is the appropriate one for the correct translation of all the characters required in the application.
     
  4. Or alternatively, set the CCSID on the job that submits the listener. For example:
    SBMJOB CMD(DCXPGMLIB/LANSA REQUEST(STRLISTEN)) JOB(LISTEN) JOBQ(LISTEN) JOBD(LISTEN)QCCSID(1140)