BEA eLink for Mainframe SNA 3.1   Information Center     

        HOME   |   SEARCH   |   CONTACT   |   PDF FILES |   WHAT'S NEW 
 
        TABLE OF CONTENTS   |   PREVIOUS TOPIC   |   NEXT TOPIC  

Administering the Application Domain

The topics in this section cover activities an administrator performs to maintain BEA eLink for Mainframe SNA applications. More details about these activities can be found in BEA TUXEDO documentation. Before attempting the activities, it is essential that you become familiar with BEA TUXEDO configuration procedures.

This section covers the following administration topics:

Administration Facilities

The administrative interface for eLink SNA software has two components:

This subsection covers the following topics:

The dmadmin Command Interpreter

The dmadmin interactive command interpreter is used for the administration of domain gateway groups defined for a BEA TUXEDO System/T application. It can operate in two modes, administration mode and configuration mode. Configuration mode allows you to change a configuration while the application is running. The dmadmin description in Appendix A, "Reference Pages," of this guide has been edited to include material and new subcommands that apply specifically to the eLink SNA gateway.

Note: The following four dmadmin commands are not applicable to eLink SNA because transactions, in the BEA TUXEDO System sense, are not supported:

New subcommands have been added to dmadmin to support the entry of userids and passwords in the domain security table. These new commands can be entered only as subcommands of dmadmin:

The reference pages for these subcommands and other /Domain commands have been modified for the eLink SNA product. Use Appendix A, "Reference Pages," in preference to similar pages in the BEA TUXEDO Reference Manual.

The SNACRM and PU 2.1 Servers

The SNA Communications Resource Manager (SNACRM) is a server that communicates directly with the PU 2.1 server to provide SNA connectivity. These servers can be started manually or via the DMINIT server. In either case, the PU 2.1 server must always be started before the SNACRM. Both servers must be started before starting the associated SNA Domain gateway.

Starting the PU2.1 Server

Please refer to SNACRM in Appendix A, "Reference Pages," of this guide for information about starting the PU2.1 server.

Starting the SNACRM

You can manually start the SNACRM from the command line or during tmboot with the DMINIT server. Before starting the SNACRM, you should specify it as a BEA TUXEDO server (refer to "Specifying the SNACRM as a BEA TUXEDO Server"). You can either start all SNACRM processes with a single DMINIT process or individually start each one with a DMINIT server that is defined to each gateway server group.

When you start SNACRM from the UNIX command line, the SNACRM Command Line Console puts its prompt in this window, and if exited, shuts down all of the active links. When started from DMINIT, the console is redirected to the null device. In this case, you can use the xsnacrm command to monitor the console and enable/disable tracing of SNACRM and the SNA stack.

Please refer to SNACRM in Appendix A, "Reference Pages," of this guide for more detailed information.

Using DMINIT

Please refer to SNACRM in Appendix A, "Reference Pages," of this guide for information about using DMINIT.

Specifying the SNACRM as a BEA TUXEDO Server

You should specify the SNACRM as a BEA TUXEDO server. This is recommended for all platforms because it ensures that start-up and shut-down of the SNACRM is controlled by the BEA TUXEDO commands tmboot and tmshutdown. To do this, you must enter parameters defining the SNACRM as a server in the UBBCONFIG file, then provide a script to perform the startup and shutdown of the specific group that contains the server.

Note: This is required if eLink SNA software is installed on a Windows NT platform or if it is used with the BEA TAP for IBM CICS system.

Enter the UBBCONFIG Parameters

To specify the SNACRM as a BEA TUXEDO server, provide the equivalent UBBCONFIG parameters shown in the example in Figure 5-1.

Figure 5-1 Example UBBCONFIG File Entries Specifying SNACRM as BEA TUXEDO Server

Write the Script

The executable script rstsnagrp should reside in the APPDIR and contain the following lines:

# Filename = rstsnagrp
tmshutdown -g SNAGRP
tmboot -g SNAGRP

The SNACRM Monitor

You can use the SNACRM monitor to set trace levels for a selected SNACRM and the associated APPC stacks. You also can observe link activity and display trace status, link status, and link statistics.

Note: The SNACRM monitor does not show trace data. This data is captured in a file under the /APPDIR directory. Please contact BEA Customer Support for help in locating the trace file(s) and interpreting them.

The BEA eLink for Mainframe SNA product software includes two utilities which launch and execute the SNACRM monitor. The xsnacrm utility is designed for UNIX platforms and requires Motif libraries. The jsnacrm utility is designed for Windows NT platforms and supplies both a Java-based application and an applet.

The following discussion relates to the Windows NT-based SNACRM monitor only. Refer to xsnacrm in Appendix A, "Reference Pages," for detailed information about the UNIX-based SNACRM monitor.

The BEA eLink for Mainframe SNA software CDROM contains the following files related to the jsnacrm utility:

Prerequisite for Running the JSNACRM Utility on an NT Platform

The jsnacrm utility is written in Java as both an application and an applet. The application launches and executes like any other Java application and can be set up so it is accessible from the Windows desktop. The applet launches and executes from a network browser, either Netscape Communicator 4.0x or Internet Explorer 4.0x.

In order to run both the application and the applet, you must first have the Java Development Kit (JDK) 1.1 installed on your system. You can download this kit from the following internet location:

http://java.sun.com/products/jdk/1.1

Running the Java Applet Version

The following paragraphs describe how to set up and run the Java applet version of the JSNACRM utility.

PREREQUISITES for RUNNING the JAVA APPLET VERSION

You must have either Netscape Communicator 4.0x or Internet Explorer 4.0x installed on your NT Windows system. You also must have the Java plug-in installed on your system. You can download this plug-in from the following internet location:

http://java.sun.com/products/plugin

Note: If the Java plug-in is not already installed on your system, when you attempt to open the jsnacrm.html file, the program prompts you for an automatic download of the plug-in by the browser.

Next, you must set up your system to accept code signed by the identity "moncrm." To do this, perform the following steps:

  1. Create the identity moncrm in your JDK 1.1 identity database. By entering the parameter true, you establish moncrm to be a trusted identity.

    javakey -c moncrm true

  2. Import the moncrm certificate into your identity database. To associate the certificate with the identity, use the nickname moncrm as the first argument to the javakey command.

    javakey -ic moncrm %TUXDIR%\bin\moncrm.x509
STARTING the JAVA APPLET

To start the Java applet in an existing browser, open the file:

<tuxedo-path>\bin\jsnacrm.html

To build a shortcut to start the Java applet using a separate instance of your network browser, enter the following command:

<browser-pathname> %TUXDIR%\bin\jsnacrm.html
RUNNING the JAVA APPLET VERSION

Set up your applet version to monitor either a local or a remote SNACRM. To do this, you make selections on the Java(TM) Plug-in Properties control panel. This control panel is automatically downloaded with the plug-in and is initiated from the Windows Start Programs pop-up menu. Refer to on-line documentation about the control panel at the following internet location:

http://java.sun.com/products/plugin/1.1.1/docs

Once the Monitor screen displays (Figure 5-2), you enter in the field at the top of the screen the address of the SNACRM you want to monitor.

To monitor a local SNACRM, select Applet Host from the Network access drop-down menu. Type the following in the Enter SNACRM Address panel:

//localhost:port

where:

localhost
Explicitly specifies the local host.

port
Specifies the port number of the SNACRM on the local host.

To monitor a remote SNACRM, select Unrestricted from the Network access drop down menu. Type the following in the Enter SNACRM Address panel:

//remotehostname:address

where:

remotehostname
Specifies the remote host.

address
Specifies the network address of the SNACRM on the remote host.

The GUI contains two screen areas that require user entry and four screen areas that display information about the SNACRM being monitored. Status messages are displayed at the bottom of the screen. The GUI screen functions are listed in Table 5-1 and shown in Figure 5-2.

Table 5-1 SNACRM Monitor Screen Functions

Display Section Function

SNACRM Address

This is where you enter the address of the SNACRM to be monitored.

Selected SNACRM

Displays the name of the SNACRM at the address entered in the address field.

Trace Status

Displays the currently selected trace options.

Trace Options

Link Status

Displays the current status of all remote links for the selected SNACRM. (Text may be scrolled.)

Link Statistics

Displays the current statistics for all remote links for the selected SNACRM. (Text may be scrolled.)

Message Line

Displays messages showing the either the results of automatic connection attempts or commands issued to change the trace options.

Figure 5-2 The SNACRM Monitor Running as an Applet on a Network Browser

Running the Java Application Version

The Java application version displays and operates identically to the applet version. Refer to screen definitions and functions discussed under "Running the Java Applet Version."

To build a shortcut to start the Java application version, perform the following steps:

  1. Enter the command:

    jrew -classpath %ClassPath%;jsnacrm.jar jsnacrm

  2. Start the application in the directory %TUXDIR%\bin so it can find its files.

To run from a command window, perform the following steps:

  1. Change directory to %TUXDIR%\bin.

  2. Enter the command:

    jrew -classpath %ClassPath%;jsnacrm.jar jsnacrm

Activating and De-Activating Links

The eLink SNA gateway software provides a command line tool you can use to activate and de-activate links that have been defined in the DM_SNALINKS section of the DMCONFIG file. This tool consists of two commands and their associated parameters: crmlkon and crmlkoff.

Note: If a link to a remote host is de-activated and re-activated by the host, the eLink SNA software normally re-establishes the link automatically. If this does not occur, you can use the crmlkon command to re-establish the link.

Using the crmlkon Command

You can start one or more SNA links with this command. Use the following syntax:

crmlkon {-n} {hostname:port} {-v} {-i} {h} {linkname}...

where:

-n
indicates that the parameters immediately following are the hostname and port of the machine running the SNACRM where the linkname is located.

hostname:port
specifies the IP host name and port of the machine running the SNACRM where the linkname is located.

-v
specifies that this command displays verbose output.

-i
causes the command to ignore errors and attempt to start all links specified on the command line.

h
invokes a help screen which shows the syntax usage for this command.

linkname
specifies the link name(s) to start.

Note: There is no notification that the link(s) started with the crmlkon command are activated. Use the SNACRM monitor to verify a link is active. Refer to "The SNACRM Monitor."

Using the crmlkoff Command

You can stop one or more SNA links with this command. Use the following syntax:

crmlkoff {-n} {hostname:port} {-v} {-I} {-h} {linkname}...

where:

-n
indicates that the parameters immediately following are the hostname and port of the machine running the SNACRM where the linkname is located. This is required.

hostname:port
specifies the IP host name and port of the machine running the SNACRM where the linkname is located.

-v
specifies that this command displays verbose output.

-I
causes the command to ignore errors and attempt to stop all links specified on the command line.

h
invokes a help screen which shows the syntax usage for this command.

linkname
specifies the link name(s) to start.

Note: There is no notification that the link(s) stopped with the crmlkoff command are de-activated. Use the SNACRM monitor to verify a link is not active. Refer to "The SNACRM Monitor."

Security

This subsection covers the following topics:

Security Overview

In order for any security checking to occur, the BEA TUXEDO Local Domain and the Host System must have security mechanisms in place. For the Local Domain, this is the Authorization Server. For the Host System, this is the External Security Manager. Figure 5-3 shows these elements.

There are four sections in two BEA TUXEDO configuration files in which you specify parameters bearing on Local Domain security. The two configuration files are DMCONFIG and UBBCONFIG.

Userid and password mapping between the Local Domain and the Host System also bears on security. There are five DMADMIN subcommands which you use to enter userids and passwords, set up mappings, remove mappings, remove userids and passwords, and modify passwords.

Caution: Mixed environment security is more complex than depicted in Figure 5-3. A domain without an operational security mechanism in place accepts all transaction requests by treating userids as "trusted users." Refer to BEA TUXEDO documentation for more detailed information about domain security.

Figure 5-3 BEA eLink for Mainframe SNA Security Elements

Where You Specify Security Parameters

The configuration sections where security is specified are:

UBBCONFIG File Security Parameters

The RESOURCES section in this file contains a SECURITY parameter which works in conjunction with the SECURITY parameter in the DMCONFIG file to establish how eLink SNA controls access to the BEA TUXEDO local domain. This parameter takes the form:

SECURITY = {value}

where value is:

NONE
No security is enforced (default)

APP_PW
Requires password authorization for BEA TUXEDO clients and administrative tools to connect to the local application.

USER_AUTH
Same as APP_PW, but additional authorization is required on a per-user basis.

ACL
Same as USER_AUTH, but additional access-control checks are done on service names, queue names, and event names. If no Access Control Lists (ACL) exists for a given name, access is granted.

MANDATORY_ACL
Same as ACL, but if no ACL exists for a given name, access is denied.

In most cases, the UBBCONFIG file has already been configured and you don't need to establish the SECURITY parameter settings, but examining this file enables you to ascertain how eLink SNA enforces security.

If this parameter is set to NONE, no security is enforced. If set to APP_PW, the local BEA TUXEDO domain's Authorization Server prompts for the application password. If set to USER_AUTH, ACL, or MANDATORY_ACL, the qualified security is enforced as specified.

DMCONFIG File Security Parameters

Three sections in the DMCONFIG file contain parameters affecting eLink SNA control of access to the BEA TUXEDO local domain:

DM_LOCAL_DOMAINS section

The SECURITY parameter settings in this section work in conjunction with the SECURITY parameter in the RESOURCES section of the BEA TUXEDO local domain's UBBCONFIG file to establish how eLink SNA controls access to the BEA TUXEDO local domain. The parameter takes the form:

SECURITY = {value}

where value is:

NONE
No security is enforced.

APP_PW
No security is enforced.

DM_USER_PW
User and password security is enforced.

If this parameter is set to NONE or APP_PW, the local domain takes no action with regard to security. If this parameter is set to DM_USR_PW, the local domain enforces security according to the setting in the UBBCONFIG file (refer to "UBBCONFIG File Security Parameters").

DM_SNALINKS section

This section of the DMCONFIG file is dedicated to eLink SNA parameters. It records the security in effect for the host system. It correlates to the values set for the ATTACHSEC parameter in the connection resource definition. In the following parameter definition, remote refers to the TUXEDO domain and local refers to the host system. The parameter takes the form:

SECURITY_TYPE = {value}

where value is:

LOCAL
Specifies that a user identifier is not to be supplied by the remote system. LOCAL is the default value.

IDENTIFY
Specifies that a user identifier is expected on every attach request. All remote users of a system must be identified to the remote external security manager.

VERIFY
Attaches a userid and valid password to the remote region. The userid and password are controlled by the region's external security manager.

PERSISTENT
Not fully supported. Functions the same as VERIFY.

MIXIDPE
Not fully supported. Functions the same as VERIFY.

The values LOCAL and IDENTIFY are roughly equivalent to NONE and APP_PW for the SECURITY parameter in the DMCONFIG file.

DM_ACCESS_CONTROL section

This section contains local Access Control Lists (ACL) used by the BEA TUXEDO local domain to restrict access by remote regions to local resources. (Refer to "Security Administration" in the BEA TUXEDO Administrator's Guide.) Each entry consists of an ACL_NAME resource identifier along with a list of required parameters designating remote domains permitted to access the resource. If no entry exists for a local service, the service is accessible to all remote domains.

Security Setting Summary

The domain administrator can add or delete users from the domain security table in two ways: first, through data entry panels in the TUXEDO System administration Graphical Administrative Interface; second, by using the dmadmin command.

The combined settings of the SECURITY parameters in the UBBCONFIG and the DMCONFIG files have the following effects:

If security is to be enforced by both the local domain and the host system for each request inbound from the host system to the local domain, the following settings must be made:

(Refer to Table 5-2 for a summary of the file settings required to achieve different security combinations for inbound requests from the host system.)

If security is to be enforced by both the local domain and the host system for each request outbound from the local domain, the following settings must be made:

(Refer to Table 5-3 for a summary of the file settings required to achieve different security combinations for outbound requests from the local domain.)

For a request sent to the host system, the local principal userid is located in the domain security table and the associated remote userid, or userid and password, are put into the conversation start-up request before being sent over the LU6.2 conversation. (This occurs if SECURITY is set to IDENTIFY or VERIFY in the DM_SNALINKS section of the DMCONFIG file.)

For requests sent from the host system, the local domain extracts the remote userid, or userid and password, from the conversation start-up request and checks the domain security table. That table contains pairs of local principal userids and remote userids, maintained on a service-by-service basis. The remote userid is mapped to the local principal userid. The local principal userid and password are used for further Access Control List (ACL) checking, as specified in the UBBCONFIG file.

When a request is received from the host system, the local domain checks the DMCONFIG file ACL for the local service to see if requests from the remote domain are permitted. If the DMCONFIG file does not contain an ACL for the local service, the service is accessible to all requests.

Therefore, if the ATTACHSEC level for the connection definition in the host system is Identify or Verify, the DMCONFIG SECURITY parameter must be set to DM_USER_PW so that a userid and a password are sent on the conversation start-up requests.

Security Setting Summary Tables

Table 5-2 shows settings for the SECURITY parameters in the UBBCONFIG and DMCONFIG files required to achieve local domain and host system security combinations for inbound requests.

Note: Security setting combinations other than those shown in the tables will have unpredictable results.

Table 5-2 Security Setting Summary (Inbound Requests from Host System)

SECURITY COMBINATION SETTINGS IN
UBBCONFIG
FILE
SETTINGS IN DM_LOCAL_DOMAINS SECTION of
DMCONFIG
FILE
SETTINGS IN DM_SNALINKS SECTION of
DMCONFIG FILE
OUTBOUND USERID and PASSWORD
ACTIVITY
(UID/PW)
LOCAL DOMAIN HOST SYSTEM

NO

NO

SECURITY = NONE or APP_PW

SECURITY =
NONE or APP_W

SECURITY= LOCAL

Not Applicable

YES

NO

SECURITY = USER_AUTH, ACL, or
MANDATORY_ACL

SECURITY =
NONE or APP_PW

SECURITY =
LOCAL

Not Applicable

NO

YES

SECURITY = NONE or APP_PW

SECURITY =
DM_USER_PW

SECURITY =
IDENTIFY or VERIFY

INVALID

YES

YES

SECURITY = USER_AUTH, ACL, or
MANDATORY_ACL

SECURITY =
DM_USER_PW

SECURITY =
IDENTIFY or VERIFY

UID or UID+PW checked by Host System

Table 5-3 shows settings for the SECURITY parameters in the UBBCONFIG and DMCONFIG files required to achieve local domain and host system security combinations for outbound requests.

Note: Security setting combinations other than those shown in the tables will have unpredictable results.

Table 5-3 Security Setting Summary (Outbound Requests from Local Domain)

SECURITY COMBINATION SETTINGS
IN
UBBCONFIG
FILE
SETTINGS
IN DM_LOCAL_DOMAINS SECTION of
DMCONFIG
FILE
SETTINGS
IN DM_SNALINKS SECTION of
DMCONFIG FILE
INBOUND USERID and PASSWORD
ACTIVITY
(UID/PW)
LOCAL DOMAIN HOST SYSTEM

NO

NO

SECURITY = NONE or APP_PW

SECURITY =
NONE or APP_W

SECURITY= LOCAL

Not Applicable

YES

NO

SECURITY = USER_AUTH, ACL, or
MANDATORY_ACL

SECURITY =
NONE or APP_PW

SECURITY =
LOCAL

INVALID

NO

YES

SECURITY = NONE or APP_PW

SECURITY =
DM_USER_PW

SECURITY =
IDENTIFY or VERIFY

UID or UID+PW from Host System ignored

YES

YES

SECURITY = USER_AUTH, ACL, or
MANDATORY_ACL

SECURITY =
DM_USER_PW

SECURITY =
IDENTIFY or VERIFY

UID or UID+PW checked by Local Domain

How To Administer Security

After setting up and/or checking the security settings for the BEA TUXEDO domain and the host system, you must relate the security information in both domains to each other. To do this, use the addusr and addumap subcommands provided with the dmadmin command interpreter.

Once the user security information in both domains is mapped, you can perform administration on the affected security files in each domain. To do this, use the delumap, modusr, and delusr subcommands.

The following paragraphs discuss how you enter these commands. Refer to Appendix A, "Reference Pages," for detailed information about each subcommand.

Adding a Userid and Password

Use the addusr subcommand to add a BEA TUXEDO local domain's userid and password to the remote CICS/ESA domain's user and password file. Enter the following command:

addusr {-d} local_domain_id {-R} remote_domain_id {-u} remote_userid

where:

-d
Specifies the name of the local domain with which the userid and password are associated.

-R
Specifies the name of the remote domain to which the userid and password are to be added.

-u
Specifies the user name to be added. Enter the user's password when prompted.

Mapping a Userid

Use the addumap subcommand to map a local domain principal userid number to a remote domain user name. The userid must be added before it can be mapped (refer to "Adding a Userid and Password"). Enter the following command:

addumap {-d} local_domain_id {-R} remote_domain_id
{-p} local_principal_userid {-u} remote_userid

where:

-d
Specifies the name of the local domain with which the userid is associated.

-R
Specifies the name of the remote domain to which the userid is mapped.

-p
Specifies the local principal userid number defined in the ACL.

-u
Specifies the remote user name as defined in the security application of the remote domain.

Removing a Userid's Mapping

Use the delumap subcommand to remove the mapping for a local domain principal userid to a remote domain user name. Enter the following command:

delumap {-d} local_domain_id {-R} remote_domain_id
{-p} local_principal_userid {-u} remote_userid

where:

-d
Specifies the name of the local domain with which the userid is associated.

-R
Specifies the name of the remote domain to which the userid is mapped.

-p
Specifies the local principal userid number defined in the ACL.

-u
Specifies the remote user name as defined in the security application of the remote domain.

Deleting a Userid and Password

Use the delusr subcommand to remove a local BEA TUXEDO domain's user ID and password from the CICS/ESA remote domain's user and password file. The mapping for a userid must be removed before the userid can be removed (refer to "Removing a Userid's Mapping"). Enter the following command:

delusr {-d} local_domain_id {-R} remote_domain_id {-u} remote_userid

where:

-d
Specifies the name of the local domain with which the userid and password are associated.

-R
Specifies the name of the remote domain from which the userid and password are to be deleted.

-u
Specifies the user name to be deleted. Enter the user's password when prompted.

Modifying a Password

Use the modusr subcommand to modify a local BEA TUXEDO domain user's password recorded in a CICS/ESA remote domain's user and password file. Enter the following command:

modusr {-d} local_domain_id {-R} remote_domain_id {-u} remote_userid

where:

-d
Specifies the name of the local domain with which the userid and password are associated.

-R
Specifies the name of the remote domain in which the userid and password are to be modified.

-u
Specifies the user name to be modified. Enter the user's password when prompted.

Data Translations

This section discusses the following aspects of data translation:

Default Data Translation Rules

The following subsections provide suggestions to help you develop VIEW definitions for input and output buffers and records. It also explains how string data and numeric data are treated by default in the eLink SNA environment.

If you do not specify string transformation (please refer to "Programming Language String Transformation"), the rules in Table 5-4 apply.

Table 5-4 Default Data Translation Rules

Field Type Translation Rules

CARRAY

Passed without translation as sequences of bytes.

STRING and CHAR

Translated from ASCII to EBCDIC (If needed. Refer to "Programming Language String Transformation.")

SHORT

Translated to S9(4)COMP

LONG

Translated to S9(9)COMP

FLOAT

Translated to COMP-1

DOUBLE

Translated to COMP-2

Note: BEA TUXEDO provides a field type named dec_t that supports decimal values within VIEWs. The gateway translates these fields into machine independent representations of packed decimals. For example, dec_t(m,n) becomes S9(2*m-(n+1))V9(n) COMP-3. Therefore, a decimal field with a size of 8,5 corresponds to S9(10)V9(5) COMP-3.

The translation rules between C and IBM/310 data types are listed in the following table.

Table 5-5 Data Translation Rules between C and IBM/370 Data Types

Remote Data Type Description View Field Type/Length

PIC X(n)

Alpha-numeric Characters

string / n

PIC X

Single Alpha-numeric Character

char

PIC X(n)

Raw Bytes

carray / n

PIC X

Single Numeric Byte

carray / 1

PIC S9(4) COMP

32-bit Integer

short

PIC S9(9) COMP

64-bit Integer

long

COMP-1

Single-precision Floating Point

float

COMP-2

Double-precision Floating Point

double

PIC S9((m+(n+1))/2)V9(n) COMP-3

Packed Decimal

dec_t / m,n

Strings and Numeric Data

When you create VIEW definitions for input and output records that are used by CICS/ESA applications, do not specify an extra position for the terminating NULL characters that are used in string fields.

For example, when a CICS/ESA application program expects 10 characters in an input record, specify 10 for that field, not 10 plus 1.

Note: Although eLink SNA software does not require strings to be null-terminated, it respects null termination. When the gateway software detects a null (zero) character within a string, it does not process any subsequent characters. To pass full 8-bit data that contains embedded null values, use a CARRAY type field or buffer.

The character set translations performed by eLink SNA are fully localizable, in accordance with the X/Open XPG Portability Guides. ASCII and EBCDIC translations are loaded from message files. Refer to "Programming Language String Transformation" for more information.

The eLink SNA software contains default behaviors which should meet the requirements of most English-language applications. However, you may find it necessary to customize tables. Refer to "Code Page Translation Tables" for more information.

Converting Numeric Data

You can convert numeric data into different data types easily, as long as you specify enough range in the intermediate and destination types to handle the maximum value needed.

For example, you can convert an FML field of double into a packed decimal field on the remote target system by specifying an appropriate dec_t type VIEW element.

In addition, you can convert numeric values into strings, vice versa. For example, while FML buffers do not directly support the dec_t type, you can place decimal values in string fields and map these to dec_t fields within VIEW definitions.

Application-to-Host Communications

Like other domain gateways, the eLink SNA gateway uses the BEA TUXEDO Typed Buffer to transmit and receive data. When communication is between an eLink SNA application and a remote host region, there are some special considerations.

Since the remote host application does not understand the typed buffer, the BEA TUXEDO application must communicate with the host application by using an aggregate data type known as a record. A record is a flat data area defined by a template that describes the data type and length of each field in the record.

The typed buffer must be represented to the host application as a record and the record must be represented to the BEA TUXEDO application as a typed buffer. In addition, string data must be in EBCDIC format for the host region and in ASCII format for the BEA TUXEDO application.

The data may be manipulated into the correct format by the BEA TUXEDO application or remote host application, or it may be formatted prior to transmission by the eLink SNA gateway. The service definitions in the DM_LOCAL_SERVICES and the DM_REMOTE_SERVICES section of the DMCONFIG file provide parameters to describe the typed buffer/record combination required for successful communications between the applications. These parameters are INBUFTYPE and OUTBUFTYPE.

The parameter definitions are made from the perspective of the receiver of the buffer, the BEA TUXEDO application which receives a typed buffer, or the remote host application which receives record data. That is, INBUFTYPE is used to format a typed buffer into a record for the remote host application; OUTBUFTYPE is used to format a host record into a typed buffer for the BEA TUXEDO application.

Buffers Going To The Remote Host Application

The BEA TUXEDO application buffer is a typed buffer that must be communicated to the remote host as a record containing aggregate data fields. The eLink SNA gateway looks at the service definition to determine what, if any, conversion must be applied to the data buffer. The service definition uses the INBUFTYPE in both the DM_LOCAL_SERVICES and DM_REMOTE_SERVICES section of the DMCONFIG file to describe the type of buffer manipulation.

INBUFTYPE Parameter Definition
INBUFTYPE = type:subtype

In this parameter definition, type must be one of the designated BEA TUXEDO typed buffers described in the following subsections.

The subtype value names a view and is required for certain BEA TUXEDO typed buffers.

Only one type:subtype may be entered for the INBUFTYPE parameter.

Data Conversion for STRING Typed Buffer

The null terminated string is converted to EBCDIC. The null character is part of the converted record.

Data Conversion for X_OCTET/CARRAY Typed Buffers

No data conversion is performed on these typed buffers. The BEA TUXEDO application or remote host application performs all conversion of data fields in the record. This includes all numeric and EBCDIC conversions.

These typed buffers are used when a data record cannot be described or converted using one of the other strong typed buffers. Strong means that eLink SNA can understand all data fields and perform the required data conversions.

These typed buffers are also options when the remote service expects many styles of data aggregation (multiple record types). The INBUFTYPE parameter is limited to one type:subtype.

Data Conversion for VIEW/VIEW32/X_C_TYPE/X_COMMON Typed Buffers

A subtype is required for these typed buffers. The subtype is the name of the view that describes the remote host record. The BEA TUXEDO buffer is converted from a C structure to the record, including EBCDIC conversion, using the compiled VIEW file. By default, the record is a COBOL structure, mapped by the remote host application using a COBOL copybook.

Data Conversion for FML/FML32 Typed Buffers

A subtype is required for these typed buffers. The subtype is the name of the view that describes the remote host record. The data in the typed buffer is Field Manipulation Language (FML) data. The eLink SNA converts the buffer to a record described by the view; this includes EBCDIC conversion.

The BEA TUXEDO buffer is converted from an FML typed buffer to a C structure using the subtype compiled VIEW file. The C structure is then converted to the record using the same subtype compiled VIEW file. By default, the record is a COBOL structure that is mapped by the remote host application using a COBOL copybook

Buffers Coming From The Remote Host Application

An aggregate data type known as a record is received from the remote host application. The record must be converted to a BEA TUXEDO typed buffer by eLink SNA before it is passed to the BEA TUXEDO application. eLink SNA looks at the service definition to determine what, if any, conversion must be applied to the host data buffer. The service definition uses the OUTBUFTYPE in both the DM_LOCAL_SERVICES and DM_REMOTE_SERVICES section of the DMCONFIG file to describe the host record, and how to convert the record to the BEA TUXEDO typed buffer.

OUTBUFTYPE Parameter Definition
OUTBUFTYPE=type:subtype

In this parameter definition, type must be one of the designated BEA TUXEDO typed buffers described in the following subsections. The type not only determines the typed buffer, but also describes the host record.

The subtype value names a view and is required for certain BEA TUXEDO typed buffers.

Only one type:subtype may be entered for the OUTBUFTYPE parameter.

Data Conversion for STRING Typed Buffer

The null terminated string is converted to ASCII. The converted string is moved to a BEA TUXEDO STRING typed buffer.

Data Conversion for X_OCTET/CARRAY Typed Buffers

No data conversion is performed on these typed buffers. The remote host application or the BEA TUXEDO application converts the data fields in the record. This includes all numeric and ASCII conversions.

These typed buffers are used when the data record cannot be described or converted using one of the other strong type buffers. Strong means eLink SNA can understand all data fields and perform the required data conversion.

These typed buffers are also options when the remote service expects many styles of data aggregation (multiple record types). The OUTBUFTYPE parameter is limited to one type:subtype.

Data Conversion for VIEW/VIEW32/X_C_TYPE/X_COMMON Typed Buffers

A subtype is required for these typed buffers. The subtype is the name of the view that describes the remote host record. The remote host record is converted to a BEA TUXEDO typed buffer. The compiled VIEW file is used to perform the data and ASCII conversion on the host record. By default, the host record is a COBOL data aggregate and the converted typed buffer is mapped by the BEA TUXEDO application using a C structure.

Data Conversion for FML/FML32 Typed Buffers

A subtype is required for these typed buffers. The subtype is the name of the view that describes the remote host record. The host record is converted to an FML buffer that is passed to the BEA TUXEDO application.

By default, the host record is a COBOL record aggregate data type. The data is converted to a C structure, including ASCII conversion, using the compiled VIEW file. This data is then converted to an FML buffer using the field definitions associated with the VIEW.

Data Conversion For DPL Services

The eLink SNA system supports remote CICS services as Distributed Program Link (DPL) programs, as described in "Introducing the BEA eLink SNA System." The DPL support is performed as if the BEA TUXEDO service is a peer CICS/ESA service.

In a DPL program, the application is protected from all Distributed Transaction Processing (DTP). The DPL application is a request/response service, with all data communication performed by the passing of a COMMAREA.

A basic DPL request API looks like this:

EXEC CICS LINK
       PROGRAM()
DATALENGTH()
LENGTH()
COMMAREA()

In the preceding example, the requester sends the COMMAREA of DATALENGTH size and the receiving application receives the COMMAREA data contents in a buffer the size of LENGTH. The DATALENGTH size might be smaller then the LENGTH size, but the requester expects and receives the response in the original COMMAREA buffer the size of LENGTH.

The difference between a DPL program and a BEA TUXEDO service is that a receiving BEA TUXEDO service can resize a reply buffer, while the DPL program expects a reply buffer of a designated size. Also, a BEA TUXEDO requester can receive a resized buffer in a buffer different from the original reply buffer.

eLink SNA performs the manipulation described in the following subsections to smoothly adjust to the requirements of both types of applications.

DPL Requests Originating From A TUXEDO Application

The eLink SNA software must determine what size COMMAREA the remote DPL service is expecting because there is no corresponding LENGTH parameter on a BEA TUXEDO request.

To determine the LENGTH value for a DPL request, the software uses the larger potential size of the INBUFTYPE or the OUTBUFTYPE parameter definitions, as described in Table 5-6.

The remote DPL application receives a buffer of LENGTH size and returns a buffer of LENGTH size.

Table 5-6 DPL Request LENGTH Calculation

INBUFTYPE or OUTBUFTYPE LENGTH CALCULATION

STRING/X_OCTET/ CARRAY

For these typed buffers, only the INBUFTYPE parameter definition is used to determine the LENGTH.

VIEW/VIEW32/ X_COMMON/ X_C_TYPE

LENGTH is the maximum size of the VIEW file. This calculation takes in the potential size of both the C structure and the target record.

FML/FML32

The maximum size of the VIEW file. This calculation takes in the potential size of both the C structure, and the target record. The length of the FML buffer is not taken into account.

If no LENGTH can be determined, then the largest value allowed by the CICS application is allocated. Refer to the "General Usage Notes" section.

DPL Requests Originating From a CICS DPL

The eLink SNA software receives a LENGTH value and COMMAREA data of DATALENGTH size from the requesting CICS DPL. The software allocates a buffer of LENGTH size and moves the COMMAREA data into this buffer before performing the conversions.

Programming Language String Transformation

When considering the interaction between TUXEDO and host applications, you must attend to the programming languages in which the applications are written. A character string is represented differently in the COBOL language than in the C language and associated TUXEDO VIEW buffer. This is shown in Listing 5-1, which demonstrates the three ways that the same two strings are coded (string1 and string2).

Listing 5-1 Three Representations of Strings
C Structure:
struct text 
{
char rbufsize[5];
char testnum[2];
char sendnum;
char sysid[4];
char textfld[10];
char string1[10];
char string2[16];
};
VIEW text
#type		cname		fbname	count	flag	size	null
char rbufsize - 5 - - -
char testnum - 2 - - -
char sendnum - 1 - - -
char sysid - 4 - - -
char textfld - 10 - - -
string string1 - 1 - 10 -
string string2 - 1 - 16 -
END
COBOL Record
	01  TEXT.
05 RBUFSIZE PIC X(5).
05 TEXTNUM PIC X(2).
05 SENDNUM PIC X.
05 SYSID PIC X(4).
05 STRING1 PIC X(9).
05 STRING2 PIC X(15).

The listing shows that, in the C structure and VIEW buffer, the sizes of string1 and string2 are represented as 10 and 16 characters, respectively. However, in the COBOL record, the sizes are 9 and 15 characters, respectively. This incompatibility can cause code misalignment between C and COBOL programs if not anticipated in the source code.

To avoid such incompatibilities, the eLink SNA gateway provides a software switch to control the mapping of string data between C and COBOL applications. This switch enables you to automatically compensate for the differences in null termination and padding characteristics of the two languages.

Note: The switch operates on string fields in TUXEDO VIEW buffers only. STRING buffers are not affected by this switch.

Setting the Switch to Perform String Transformation

To set the switch, use the CLOPT parameter when you configure the gateway server definition in the UBBCONFIG file. If you set the -t option of the CLOPT parameter to one of the values listed in Table 5-7, the gateway performs the corresponding string transformation. Use the following syntax format:

CLOPT="-- -t {number}"

where:

CLOPT
specifies the TUXEDO parameter which enables you to provide command-line options in a server definition.

--
marks the end of system-recognized arguments and the start of arguments passed to a subroutine within the server. This option is required if you supply application-specific arguments, such as the -t option, to the server.

-t
is the eLink SNA option to establish C-to-COBOL string transformation.

number
indicates the type of string transformation the gateway performs (see Table 5-7).

Note: If you do not set the -t option of the CLOPT parameter in your server definition, by default the eLink SNA gateway performs no string transformation.

Table 5-7 C to COBOL String Transformation

CLOPT -t Parameter Value TUXEDO Application Language Host Application Language

Not Set

No string transformation established

1

C

COBOL

2

COBOL

C

3

C

C

4

COBOL

COBOL

How the Switch Works

Option value 1:
For outbound messages to the host, C string fields are converted to COBOL string fields. All available characters, up to the defined length of the string and beginning with the null character, are converted to spaces and the length of the field is reduced by one.
For inbound messages from the host, COBOL string fields are converted to C string fields, trailing blanks are converted to null characters (zero value) and the length of the field is increased by one.

Option value 2:
For outbound messages to the host, COBOL string fields are converted to C string fields, trailing blanks are converted to null characters (zero value) and the length of the field is increased by one.
For inbound messages from the host, C string fields are converted to COBOL string fields. All available characters, up to the defined length of the string and beginning with the null character, are converted to spaces and the length of the field is reduced by one.

Option values 3 and 4:
No string transformations are made between programs written in compatible languages.

Example

The following is an example of a server definition using the switch to establish string transformations between a TUXEDO application written in C and a host application written in COBOL.

*SERVERS
GWSNAX SRVGRP=GROUP1 SRVID=5 CLOPT="-A -- -t 1"

Code Page Translation Tables

The eLink SNA software includes translation tables which enable conversions between ASCII character sets and EBCDIC character sets. This gives you 12 standardized tables to facilitate operations between TUXEDO applications using the Latin-1 ASCII code set (CP-00819) and host applications using a national language code set.

Note: Code Page Translation Tables are not supported for WebLogic Enterprise 4.0.

Each translation table consists of two mapping tables, one for outbound conversions (TUXEDO to host) and one for inbound conversions (host to TUXEDO). You do not have to specify the direction of a translation. All you have to determine is the national language in which the host application is written. Figure 5-4 illustrates code page translation.

Figure 5-4 eLink SNA Code Page Translation

The figure demonstrates how a TUXEDO application using the Latin-1 ASCII code page CP-00819 character set operates with a host application using German EBCDIC code page CP-00273. The eLink SNA translation table 00819x00273 provides both the inbound and outbound conversions.

Specifying a Translation Table

To designate the translation table for your applications, make an entry in the TUXEDO DMCONFIG file definition for each remote domain. Use the CODEPAGE parameter with the following format:

*DM_LOCAL_DOMAINS
{ldom} TYPE={type}
*DM_REMOTE_DOMAINS
{rdom} TYPE={type} CODEPAGE={cpname}

where:

ldom
is used to identify the local domain. ldom must be unique across both local and remote domains.
type
is used for grouping local and remote domains into classes. TYPE can be set to one of the following values: TDOMAIN, OSITP or SNAX.
rdom
is used to identify a remote domain. rdom must be unique across both local and remote domains.

cpname
is used to identify the translation table for the remote domain, from Table 5-8.

Note: The DMCONFIG file entries in the previous format description are intended for example only. All required entries are not shown. Refer to dmconfig in Appendix A for complete syntax requirements.

Table 5-8 lists the translation tables provided with eLink SNA software.

Table 5-8
Country File Name ASCII Code Set EBCDIC Code Set

TUXEDO default 1

TUXEDO

TUXEDO-ASCII

TUXEDO-EBCDIC

United States

00819x00037

CP-00819 2

CP-00037

Great Britain

00819x00285

CP-00819

CP-00285

France

00819x00297

CP-00819

CP-00297

Portugal

00819x00860

CP-00819

CP-00860

Spain

00819x00284

CP-00819

CP-00284

Belgium

00819x00500

CP-00819

CP-00500

Germany

00819x00273

CP-00819

CP-00273

Finland

00819x00278

CP-00819

CP-00278

Sweden

00819x00278

CP-00819

CP-00278

Latin-1

00819x01047

CP-00819

CP-01047

Latin-2

00912x00870

CP-00912

CP-00870

eLink SNA Code Page Translation Tables

1. The default TUXEDO ASCII and EBCDIC code pages are slightly different than CP-00819 and CP-00037.

2. CP-00819 is exactly equivalent to ISO-8859-1 (also called Latin-1 ASCII), and is used as the ASCII code page in all of the countries listed in this table.

How the Translation Tables Work

The eLink SNA translation tables are based on IBM-defined code sets. At start up, the eLink SNA gateway loads a translation table for each remote domain.

You can modify any of the tables to suit your application translation needs, except the default TUXEDO tables, which are hard-coded. Refer to Appendix F, "Code Page Translation Tables" for detailed table contents. You must restart the gateway to change any translation table definitions.

Note: Replicas of the default TUXEDO translation tables are included with your product software. These are provided for you to modify, if desired. They are not the actual default tables. You cannot modify the default TUXEDO tables.

The eLink SNA translation tables are located in the following sub-directory:

$TUXDIR/udataobj/codepage

If no CODEPAGE specification is made for a remote domain, the eLink SNA software uses the TUXEDO default translation tables. If the software cannot find the translation table file, it generates a message 2241:ERROR Unable to access codepage table with a reason code and the gateway fails to start. (Refer to this message in Appendix D, "Error Messages" for explanations of the reason codes.) If the software cannot read the translation table file, it generates an Invalid or Corrupt message and the gateway fails to start. If the software cannot read a translation table file because of access permission, it generates a Permission Denied message and the gateway fails to start.

Example

Listing 5-2 depicts entries defining one local domain (CIXA) and two remote domains (CISA and IMSA). In all cases, it is assumed that the local domain uses ASCII code page CP-00819. In the example, the two remote domains use the German and French EBCDIC code pages CP-00273 and CP-00297, respectively.

Listing 5-2 Code Page Definition Example
# DMCONFIG
*DM_LOCAL_DOMAINS
CIXA TYPE=SNAX
*DM_REMOTE_DOMAINS
CISA TYPE=SNAX CODEPAGE=00819X00273
IMSA TYPE=SNAX CODEPAGE=00819X00297

General Usage Notes

The current size limit of remote host messages is limited to approximately 32K bytes. Any conversions resulting in records larger than 32756 bytes are not supported.


Copyright © 1999 BEA Systems, Inc. All Rights Reserved.
Required browser version: Netscape Communicator version 4.0 or higher, or Microsoft Internet Explorer version 4.0 or higher.
Last update: May 28, 1999.