IBM Books

Connectivity Supplement


Setting Up the Application Requester

DB2 Universal Database for OS/390 implements the DRDA application requester support as an integral part of the DB2 Universal Database for OS/390 Distributed Data Facility (DDF). DDF can be stopped independently from the local DB2 Universal Database for OS/390 database management facilities, but it cannot run in the absence of the local DB2 Universal Database for OS/390 database management support.

When DB2 Universal Database for OS/390 acts as an Application Requester, it can connect applications running on the system to remote DB2 Universal Database, DB2 for MVS/ESA, DB2 Universal Database for OS/390, DB2 Universal Database for AS/400, and DB2 for VSE & VM database servers that implement DRDA Application Server function.

For the DB2 Universal Database for OS/390 Application Requester to provide distributed database access, you need to do the following:

Provide Network Information

Much of the processing in a distributed database environment requires exchanging messages with other locations in your network. For this processing to be performed correctly, you need to do the following:

  1. Define the local system

  2. Define the remote systems

  3. Define the communications (for either SNA or TCP/IP connections)

  4. Set RU sizes and pacing (for SNA connections only)

See either Defining the Local System (SNA), or Defining the Local System (TCP/IP).

Defining the Local System (SNA)

Each program in the SNA network is assigned a NETID and an LU name, so your DB2 Universal Database for OS/390 Application Requester must have a NETID.LUNAME value (assigned through VTAM) when it connects to the network. Because the DB2 Universal Database for OS/390 Application Requester is integrated into the local DB2 Universal Database for OS/390 database management system, the Application Requester must also have an RDB_NAME. In the DB2 Universal Database for OS/390 publications, DB2 Universal Database for OS/390 refers to the RDB_NAME as a location name.

Define the DB2 Universal Database for OS/390 Application Requester to the SNA network as follows:

  1. Select an LU name for your DB2 Universal Database for OS/390 system. The NETID for your DB2 Universal Database for OS/390 system is automatically obtained from VTAM when DDF starts.

  2. Define the LU name and location name in the DB2 Universal Database for OS/390 bootstrap data set (BSDS). (DB2 Universal Database for OS/390 restricts the location name to 16 characters.)

  3. Create a VTAM APPL definition to register the selected LU name with VTAM.

  4. Ensure that Extended Security is set to YES. See Additional Security Enhancements.

Configuring the DDF BSDS  DB2 Universal Database for OS/390 reads the BSDS during startup processing to obtain system installation parameters. One of the records stored in the BSDS is called the DDF record, because it contains the information used by DDF to connect to VTAM. This information consists of the following:

You can supply the DDF BSDS information to DB2 Universal Database for OS/390 in two ways:

When DDF is started (either automatically at DB2 Universal Database for OS/390 startup or by the DB2 Universal Database for OS/390 START DDF command), it connects to VTAM, passing the LU name and password to VTAM. VTAM recognizes the DB2 Universal Database for OS/390 system by checking the LU name and password (if a VTAM password is required) with the values defined in the DB2 Universal Database for OS/390 VTAM APPL statement. The VTAM password is used to verify that DB2 Universal Database for OS/390 is authorized to use the specified LU name on the VTAM system. The VTAM password is not transmitted through the network, and it is not used to connect other systems in the network to DB2 Universal Database for OS/390.

If VTAM does not require a password, omit the PASSWORD= keyword on the change log inventory utility. The absence of the keyword indicates that no VTAM password is required.

Creating a VTAM APPL definition  After you define the VTAM LU name and password to DB2 Universal Database for OS/390, you need to register these values with VTAM. VTAM uses the APPL statement to define local LU names. Figure 17 shows how to define the LU name NYM2DB2 to VTAM.

Figure 17. Sample VTAM APPL Definition for DB2 Universal Database for OS/390

 DB2APPLS VBUILD TYPE=APPL
 *
 *--------------------------------------------------------------------*
 *                                                                    *
 *           APPL DEFINITION FOR THE NEW_YORK3 DB2 SYSTEM             *
 *                                                                    *
 *--------------------------------------------------------------------*
 *
NYM2DB2   APPL  APPC=YES,                                               X
                AUTH=(ACQ),                                             X
                AUTOSES=1,                                              X
                DMINWNL=10,                                             X
                DMINWNR=10,                                             X
                DSESLIM=20,                                             X
                EAS=9999,                                               X
                MODETAB=RDBMODES,                                       X
                PRTCT=PSWDBD1,                                          X
                SECACPT=ALREADYV,                                       X
                SRBEXIT=YES,                                            X
                VERIFY=NONE,                                            X
                VPACING=2,                                              X
                SYNCLVL=SYNCPT,                                         X
                ATNLOSS=ALL                                             X

Many keywords are available on the VTAM APPL statement. The meaning of the keywords is discussed in detail in the DB2 Universal Database for OS/390 Administration Guide. The only keywords discussed here address topics in this book. The keywords of interest in Figure 17 are described as follows:

NYM2DB2
VTAM uses the APPL statement label as the LU name. In this case, the LU name is NYM2DB2. The APPL syntax does not allow room for a complete NETID.LUNAME value. The NETID value is not specified on the VTAM APPL statement, because all VTAM applications are automatically assigned the NETID for the VTAM system.

AUTOSES=1
The number of SNA contention winner sessions that start automatically when an APPC Change Number of Sessions (CNOS) request is issued. A nonzero value must be supplied with AUTOSES to inform DB2 Universal Database for OS/390 in all cases when VTAM CNOS processing fails.

You do not have to automatically start all the APPC sessions between any two distributed database partners. If the AUTOSES value is less than the contention winner limit (DMINWNL), VTAM delays starting the remaining SNA sessions until they are required by a distributed database application.

DMINWNL=10
The number of sessions on which this DB2 Universal Database for OS/390 system is the contention winner. The DMINWNL parameter is the default for CNOS processing, but can be overridden for any given partner by adding a row to the SYSIBM.LUMODES table in the DB2 Universal Database for OS/390 CDB.

DMINWNR=10
The number of sessions on which the partner system is the contention winner. The DMINWNR parameter is the default for CNOS processing, but can be overridden for any given partner by adding a row to the SYSIBM.LUMODES table in the DB2 Universal Database for OS/390 CDB.

DSESLIM=20
The total number of sessions (winner and loser sessions) you can establish between DB2 Universal Database for OS/390 and another distributed system for a specific mode group name. The DSESLIM parameter is the default for CNOS processing, but can be overridden for any given partner by adding a row to the SYSIBM.LUMODES table in the DB2 Universal Database for OS/390 CDB.

If the partner cannot support the number of sessions requested on the DSESLIM, DMINWNL, or DMINWNR parameters, the CNOS process negotiates new values for these parameters that are acceptable to the partner.

EAS=9999
An estimate of the total number of sessions that this VTAM LU requires.

MODETAB=RDBMODES
Identifies the VTAM MODE table where each DB2 Universal Database for OS/390 mode name exists.

PRTCT=PSWDBD1
Identifies the VTAM password to use when DB2 Universal Database for OS/390 attempts to connect to VTAM. If the PRTCT keyword is omitted, no password is required, and you should omit the password= keyword from the DB2 Universal Database for OS/390 change log inventory utility.

SECACPT=ALREADYV
Identifies the highest SNA conversation-level security value accepted by this DB2 Universal Database for OS/390 system when it receives a distributed database request from a remote system. The ALREADYV keyword indicates this DB2 Universal Database for OS/390 system can accept three SNA session security options from other DRDA systems that request data from this DB2 Universal Database for OS/390 system:

It is best to always specify SECACPT=ALREADYV, because the SNA conversation security level for each DB2 Universal Database for OS/390 partner is taken from the DB2 Universal Database for OS/390 CDB (the USERSECURITY column of the SYSIBM.LUNAMES table). SECACPT=ALREADYV gives you the most flexibility in selecting values for USERSECURITY.

VERIFY=NONE
Identifies the level of SNA session security (partner LU verification) required by this DB2 Universal Database for OS/390 system. The NONE value indicates that partner LU verification is not required.

DB2 Universal Database for OS/390 does not restrict your choice for the VERIFY keyword. In a nontrusted network, VERIFY=REQUIRED is recommended. VERIFY=REQUIRED causes VTAM to reject partners that cannot perform partner LU verification. If you choose VERIFY=OPTIONAL, VTAM performs partner LU verification only for those partners that provide the support.

VPACING=2
Sets the VTAM pacing count to 2.

SYNCLVL=SYNCPT
Indicates that DB2 Universal Database for OS/390 is able to support two-phase commit. VTAM uses this information to inform the partner that two-phase commit is available. If this keyword is present, DB2 Universal Database for OS/390 automatically uses two-phase commit if the partner can support it.

ATNLOSS=ALL
Indicates that DB2 Universal Database for OS/390 needs to be informed each time a VTAM session ends. This ensures that DB2 Universal Database for OS/390 performs SNA resynchronization when required.

DSESLIM, DMINWNL, and DMINWNR allow you to establish default VTAM session limits for all partners. For partners that have special session limit requirements, the SYSIBM.LUMODES table can be used to override the default session limits. For example, you might want to specify VTAM default session limits that are appropriate for your OS/2 systems. For other partners, you can create rows in the SYSIBM.LUMODES table to define the desired session limits. Consider these sample values:

DSESLIM=4,DMINWNL=0,DMINWNR=4

These parameters allow each partner to create up to four sessions with DB2 Universal Database for OS/390, where the partner is the contention winner on each of the sessions. Because OS/2 creates the LU 6.2 conversations with DB2 Universal Database for OS/390, by making OS/2 the contention winner on the sessions, you gain a small performance advantage. If OS/2 has an available contention winner session, it does not have to ask for permission to start a new LU 6.2 conversation.

Defining the Local System (TCP/IP)

For your convenience the information in this section has been summarized from DB2 Connect Enterprise Edition for OS/2 and Windows NT Quick Beginnings. For more detailed information, please see DB2 Universal Database for OS/390 Version 5 Installation Reference, and DRDA Support for TCP/IP with DB2 Universal Database for OS/390 Version 5 and DB2 Universal Database Version 6.

The steps required to define TCP/IP communications with DB2 Universal Database for OS/390 are as follows:

  1. TCP/IP communications must be enabled on DB2 Universal Database for OS/390 and the partner system.

  2. Two suitable TCP/IP port numbers must be assigned by your network administrator. As a default, DB2 Universal Database for OS/390 uses port number 446 for database connections, and port number 5001 for resynchronization requests (two-phase commit).

  3. The remote application server or application requester must use the same port numbers (or service names) as DB2 Universal Database for OS/390.

  4. Ensure that the TCP/IP already verified security option is set to YES. See Additional Security Enhancements.

  5. The DB2 Universal Database for OS/390 BSDS must include additional parameters. Figure 18 highlights the additional parameters required to enable TCP/IP communications.

    Figure 18. Sample Bootstrap Data Set DDF Definition (for TCP/IP)

    //SYSADMB JOB ,'DB2 5.1 JOB',CLASS=A
    //*
    //*        CHANGE LOG INVENTORY:
    //*        UPDATE BSDS WITH
    //*             - DB2 LOCATION NAME FOR NEW_YORK3
    //*             - VTAM LUNAME (NYM2DB2)
    //*             - DB2/VTAM PASSWORD
    //*
    //*             - GENERIC LU NAME
    //*             - TCP/IP PORT FOR DATABASE CONNECTIONS
    //*             - TCP/IP PORT FOR RESYNCH OPERATIONS
    //*
    //DSNBSDS EXEC PGM=DSNJU003
    //STEPLIB  DD  DISP=SHR,DSN=DSN510.DSNLOAD
    //SYSUT1   DD  DISP=OLD,DSN=DSNC510.BSDS01
    //SYSUT2   DD  DISP=OLD,DSN=DSNC510.BSDS02
    //SYSPRINT DD  SYSOUT=*
    //SYSUDUMP DD  SYSOUT=*
    //SYSIN    DD  *
     DDF    LOCATION=NEW_YORK3,LUNAME=NTYM2DB2,PASSWORD=PSWDBD1,
            GENERICLU=name,PORT=446,RESPORT=5001
    /*
    //*
    

Defining the Remote Systems

When a DB2 Universal Database for OS/390 application requests data from a remote system, it searches the Communications Database (CDB) tables to find information about the remote system. The CDB is a group of SQL tables managed by the DB2 Universal Database for OS/390 system administrator. As the DB2 Universal Database for OS/390 system administrator, you can use SQL to insert rows in the CDB to describe each potential DRDA partner. A complete description of the CDB and how it is used can be found in DB2 Universal Database for OS/390 Version 5 SQL Reference, and DB2 Universal Database for OS/390 Version 5 Installation Guide.

References to the CDB search for information including:

Populating The Communications Database  No CDB updates are required if you will only use inbound TCP/IP database connections, so that if you plan to use DB2 Universal Database for OS/390 only as a TCP/IP server, you do not need to populate the CDB, and default values can be used. However, if you will use inbound SNA connections, you must at least provide a single blank row in SYSIBM.LUNAMES. For example, to permit SNA database connection requests to be accepted from any incoming DB2 Connect LU, use an SQL command such as the following:

        INSERT INTO SYSIBM.LUNAMES (LUNAME) VALUES ('        ')                        

When you will use DB2 Universal Database for OS/390 as a requester the CDB must always be updated. You will need to insert rows in into the SYSIBM.LOCATIONS table, and either the SYSIBM.LUNAMES table (for SNA connections), or the SYSIBM.IPNAMES table (for TCP/IP connections).

Further, if you want to control inbound security requirements or inbound user-id translation for SNA connections, additional CDB updates may be required. Additional examples are provided as follows: Provide Security describes how to define user security when setting up an application requester, and Provide Security describes setting up an application server.

The DB2 Universal Database for OS/390 Administration Guide discusses the requirements for updating CDB tables in more detail. After you populate the CDB, you can write queries that access data at remote systems. DB2 Universal Database for OS/390 Installation Reference also provides further information about updating the CDB.

How the Communications Database Handles Requests  When sending a request, DB2 Universal Database for OS/390 uses the LINKNAME column of the SYSIBM.LOCATIONS catalog table to determine which network protocol to use for the outbound database connection. To receive VTAM requests, you must select an LUNAME in DB2 Universal Database for OS/390 installation panel DSNTIPR. To receive TCP/IP requests, you must select a DRDA port and a resynchronization port in DB2 Universal Database for OS/390 installation panel DSNTIP5. TCP/IP uses the server's port number to pass network requests to the correct DB2 subsystem.

If the value in the LINKNAME column is found in the SYSIBM.IPNAMES table, TCP/IP is used for DRDA connections. If the value is found in SYSIBM.LUNAMES table, SNA is used. If the same name is in both SYSIBM.LUNAMES and SYSIBM.IPNAMES, TCP/IP is used to connect to the location.
Note:A requester cannot connect to a given location using both SNA and TCP/IP protocols. For example, if your SYSIBM.LOCATIONS specifies a LINKNAME of LU1, and if LU1 is defined in both the SYSIBM.IPNAMES and SYSIBM.LUNAMES table, TCP/IP is the only protocol used to connect to LU1 from this requester.

Communications Database Tables  The CDB consists of the following tables:

  1. SYSIBM.LOCATIONS

    This table allows DB2 Universal Database for OS/390 to determine the SNA or TCP/IP address information required when accessing each RDB_NAME selected by a DB2 Universal Database for OS/390 application for outbound requests. The columns are:

    LOCATION
    The RDB_NAME of the remote system. DB2 Universal Database for OS/390 limits the RDB_NAME value to 16 bytes, which is two bytes shorter than the 18-byte limit defined in DRDA.

    LINKNAME
    The LU name or TCP/IP attributes of the remote system.

    PORT
    TCP/IP port name or service name information (the default port name for DRDA is 446).

    TPN
    The APPC Transaction Program name (TPN) of the remote system. If the remote system is a DB2 Universal Database for OS/390 system or the remote system uses the default DRDA TPN value (X'07F6C4C2'), an empty string can be used to specify the TPN because DB2 Universal Database for OS/390 automatically chooses the correct value.

    If the remote system requires a TPN value other than the default TPN value, you must supply this value here.

  2. SYSIBM.LUNAMES

    This table defines the network attributes of remote systems accessed using SNA connections. The columns are:

    LUNAME
    The LU name of the remote system.

    SYSMODENAME
    The VTAM logon mode name used to establish DB2 Universal Database for OS/390-to-DB2 Universal Database for OS/390 intersystem conversations for the DB2 Universal Database for OS/390's secondary server support (system-directed access). A blank value in this column indicates IBMDB2LM should be used for DB2 Universal Database for OS/390 system conversations.

    SECURITY_IN
    The network security acceptance options required of the remote system when this DB2 Universal Database for OS/390 system acts as a server for the remote system (inbound security requirements). Values can be:

    • V signifying the option is "verify." An incoming connection request must include one of the following: a userid and password, a userid and RACF PassTicket, or a DCE security ticket.

    • A signifying the option is "already verified." A request does not need a password, although a password is checked if it is sent. With this option, an incoming connection request is accepted if it includes any of the following: a userid, a userid and password, a userid and RACF PassTicket, or a DCE security ticket.

      If the USERNAMES column contains 'I' or 'B', RACF is not invoked to validate incoming connection requests that contain only a userid.

    SECURITY_OUT
    The network security acceptance options required of the remote system when this DB2 Universal Database for OS/390 system acts as a requester (outbound security requirements). Values can be:

    • A signifying the option is "already verified." Outbound connection requests contain an authorization ID and no password. The authorization ID used for an outbound request is either the DB2 user's authorization ID or a translated ID, depending upon the value of the USERNAMES column.

    • R signifying the option is "RACF PassTicket." Outbound connection requests contain a userid and a RACF PassTicket. The server's LU name is used as the RACF PassTicket application name.

      The authorization ID used for an outbound request is either the DB2 user's authorization ID or a translated ID, depending upon the value of the USERNAMES column.

    • P signifying the option is "password." Outbound connection requests contain an authorization ID and a password. The password is obtained from the SYSIBM.USERNAMES table or RACF, depending upon the value specified in the ENCRYPTPWDS column.

      The USERNAMES column must specify 'B' or 'O'.

    ENCRYPTPSWDS
    Whether passwords exchanged with this partner are encrypted. Encrypted passwords are only supported by DB2 Universal Database for OS/390 requesters and servers.

    MODESELECT
    Determines whether the SYSIBM.MODESELECT table is used to select a VTAM logon mode entry (mode name) based on the end user and application making the request. If this column contains a 'Y', the SYSIBM.MODESELECT table is used to obtain the mode name for each outbound distributed database request.

    If MODESELECT contains anything other than a 'Y', the mode name IBMDB2LM is used for system-directed access requests, and the mode name IBMRDB is used for DRDA requests.

    The MODESELECT column allows you to prioritize distributed database requests by specifying a VTAM class of service (COS) associated with the mode name.

    USERNAMES
    The level of come-from checking and user ID translation required. This column also specifies the security parameters this DB2 Universal Database for OS/390 subsystem uses when requesting data from the remote partner (outbound security requirements). usernames can have the value I, O, or B (inbound-only, outbound-only, or both).

    GENERIC
    Indicates whether DB2 Universal Database for OS/390 should use its real or generic LU name.

  3. SYSIBM.LUMODES

    This table is used to provide VTAM with LU 6.2 session limits (CNOS limits) for partner systems using APPC (SNA) connections. The columns are:

    LUNAME
    The LU name of the remote system.

    MODENAME
    The name of the VTAM logon mode whose limits are being specified. A blank value in the MODENAME column defaults to IBMDB2LM.

    CONVLIMIT
    The maximum number of active conversations between the local DB2 Universal Database for OS/390 and the remote system for this logon mode. This value is used to override the DSESLIM parameter in the VTAM APPL definition statement for this logon mode, which supplies the default VTAM session limits for DB2 Universal Database for OS/390.

    The value selected in CONVLIMIT is used during CNOS to set the DMINWNR and DMINWNL values to CONVLIMIT/2.

  4. SYSIBM.MODESELECT

    This table allows you to specify different mode names for individual end users and DB2 Universal Database for OS/390 applications. It is only used for SNA connections. Because each VTAM mode name can have an associated class of service (COS), you can use this table to assign network transmission priorities to distributed database applications based on a combination of AUTHID, PLANNAME, and LUNAME. The columns are:

    AUTHID
    The DB2 Universal Database for OS/390 user's authorization ID (user ID). The default is blank, indicating the specified logon mode name applies to all authorization IDs.

    PLANNAME
    The plan name associated with the application requesting access to a remote database system. The default is blank, indicating that the specified logon mode name applies to all plan names. The plan name used for the BIND PACKAGE command is DSNBIND.

    LUNAME
    The LU name associated with the remote database system.

    MODENAME
    The name of the VTAM logon mode to use when routing a distributed database request to the indicated remote system. The default is blank, indicating that IBMDB2LM should be used for system-directed access conversations and IBMRDB should be used for DRDA conversations.

  5. SYSIBM.USERNAMES

    This table is used to manage end user names by providing passwords, name translations, and come-from checking. DB2 Universal Database for OS/390 refers to the end user's name as an authorization ID. Most other products refer to this name as a user ID.

    With this table, you can use name translation to force different values to be used for user IDs connections and the DB2 Universal Database for OS/390 authorization ID. The name translation process is allowed for requests to a remote system (outbound requests) and for requests coming from a remote system (inbound requests). If passwords are not encrypted, this table is the source of the end user's password when both user ID and password are sent to a remote site. The columns are:

    TYPE
    The description of how the row is to be used (whether it is a row describing name translations for outbound or inbound/come-from checking requests).

    I signifies inbound connections, O signifies outbound connections.

    Use "O" for TCP/IP connections (inbound ID translation and come-from checking are not done for TCP/IP requests).

    AUTHID
    For outbound name translation, this is the DB2 Universal Database for OS/390 authorization ID to translate. For inbound name translation, this is the SNA user ID to translate. In either case, a blank AUTHID value applies to all authorization IDs or user IDs.

    LINKNAME
    Identifies the VTAM or TCP/IP network locations associated with this row. A blank value in this column indicates this name translation rule applies to any TCP/IP or SNA partner.

    If a nonblank LINKNAME is specified, one or both of the following statements must be true:

    • A row exists in SYSIBM.LUNAMES whose LUNAME matches the value specified in the SYSIBM.USERNAMES LINKNAME column. This row specifies the VTAM site associated with this name translation rule.

    • A row exists in SYSIBM.IPNAMES whose LINKNAME matches the LINKNAME matches the value specified in the SYSIBM.USERNAMES LINKNAME column. This row specifies the TCP/IP host associated with this name translation rule.

      Inbound name translation and come-from checking are not performed for TCP/IP clients.

    NEWAUTHID
    The new end user name (either SNA user ID or DB2 Universal Database for OS/390 authorization ID). Blank specifies that you do not need to translate the ID.

    PASSWORD
    The password used on the allocate conversation, if passwords are not encrypted (ENCRYPTPSWDS = 'N' in SYSIBM.LUNAMES). If passwords are encrypted, this column is ignored.

  6. SYSIBM.IPNAMES

    This table is used for TCP/IP nodes.

    LINKNAME
    The value specified in this column must match the value specified in the LINKNAME column of SYSIBM.LOCATIONS.

    SECURITY_OUT
    This column defines the DRDA security option that is used when local DB2 SQL applications connect to any remote server associated with this TCP/IP host:

    • A signifying the option is "already verified." Outbound connection requests contain an authorization ID and no password. The authorization ID used for an outbound request is either the DB2 user's authorization ID or a translated ID, depending upon the value of the USERNAMES column.

    • R signifying the option is "RACF PassTicket." Outbound connection requests contain a userid and a RACF PassTicket. The value specified in the LINKNAME column is used as the RACF PassTicket application name for the remote server.

      The authorization ID used for an outbound request is either the DB2 user's authorization ID or a translated ID, depending upon the value of the USERNAMES column.

    • P signifying the option is "password." Outbound connection requests contain an authorization ID and a password. The password is obtained from the SYSIBM.USERNAMES table.

      The USERNAMES column must specify "O."

    USERNAMES
    This column controls outbound authorization ID translation. Outbound translation is performed when an authorization ID is sent by DB2 to a remote server.

    • O signifies an outbound ID is subject to translation. Rows in the SYSIBM.USERNAMES table are used to perform ID translation.

      No translation or "come from" checking is performed on inbound IDs.

    • A blank entry signifies that no translation occurs.

    IPADDR
    This column contains the IP address or domain name of a remote TCP/IP host. The IPADDR column must be specified as follows:

    • If the IPADDR contains a left justified character string containing four numeric values delimited by decimal points, DB2 assumes the value is an IP address in dotted decimal format. For example, '123.456.78.91' would be interpreted as a dotted decimal IP address.

    • All other values are interpreted as a TCP/IP domain name, which can be resolved by the TCP/IP gethostbyname socket call. TCP/IP domain names are not case sensitive.

Defining Communications (SNA)

VTAM is the Communications Manager for OS/390 systems. VTAM accepts LU 6.2 verbs from DB2 Universal Database for OS/390 and converts these verbs into LU 6.2 data streams you can transmit over the network. For VTAM to communicate with the partner applications defined in the DB2 Universal Database for OS/390 CDB, you need to provide VTAM with the following information:

Setting RU Sizes and Pacing 

The VTAM mode table entries you define specify RU sizes and pacing counts. Failure to define these values correctly can have a negative impact on all VTAM applications.

After choosing RU sizes, session limits, and pacing counts, it is extremely important to consider the impact these values can have on the existing VTAM network. You should review the following items when you install a new distributed database system:

Defining Communications (TCP/IP)

The considerations are as indicated previously (see Defining the Local System (TCP/IP)).

Provide Security

When a remote system performs distributed database processing on behalf of an SQL application, it must be able to satisfy the security requirements of the Application Requester, the Application Server, and the network connecting them. These requirements fall into one or more of the following categories:

Selecting End User Names

On OS/390 systems, end users are assigned a 1 to 8-character user ID. This user ID value must be unique within a particular OS/390 system, but might not be unique throughout the network. For example, there can be a user named JONES on the NEWYORK system, and another user named JONES on the DALLAS system. If these two users are the same person, no conflict exists. However, if the JONES in DALLAS is a different person than the JONES in NEWYORK, the SNA network (and consequently the distributed database systems within that network) cannot distinguish between JONES in NEWYORK and JONES in DALLAS. If you do not correct this situation, JONES in DALLAS can use the privileges granted to JONES at the NEWYORK system.

To eliminate naming conflicts, DB2 Universal Database for OS/390 provides support for end user name translation. When an application at the DB2 Universal Database for OS/390 Application Requester makes a distributed database request, DB2 Universal Database for OS/390 performs name translation if the communications database specifies that outbound name translation is required. If outbound name translation is selected, DB2 Universal Database for OS/390 always forces a password to be sent with each outbound distributed database request.

Outbound name translation in DB2 Universal Database for OS/390 is activated by setting the USERNAMES column in the SYSIBM.LUNAMES or SYSIBM.IPNAMES table to either 'O' or 'B'. If USERNAMES is set to 'O', end user name translation is performed for outbound requests. If USERNAMES is set to 'B', end user name translation is performed for both inbound and outbound requests.

Because DB2 Universal Database for OS/390 authorization is dependent on both the end user's user ID and the user ID of the DB2 Universal Database for OS/390 plan or package owner, the end user name translation process is performed for the end user's user ID, the plan owner's user ID, and the package owner's user ID. 3 The name translation process searches the SYSIBM.USERNAMES table in the following sequence to find a row that matches one of the following patterns (TYPE.AUTHID.LINKNAME):

  1. O.AUTHID.LINKNAME--A translation rule for a specific end user to a specific partner system.

  2. O.AUTHID.blank--A translation rule for a specific end user to any partner system.

  3. O.blank.LINKNAME--A translation rule for any user to a specific partner system.

If no matching row is found, DB2 Universal Database for OS/390 rejects the distributed database request. If a row is found, the value in the NEWAUTHID column is used as the authorization ID. (A blank NEWAUTHID value indicates the original name is used without translation.)

Consider the example discussed earlier. You want to give JONES in NEWYORK a different name (NYJONES) when JONES makes distributed database requests to DALLAS. In the example, assume that the application used by JONES is owned by DSNPLAN (the DB2 Universal Database for OS/390 plan owner), and you do not need to translate this user ID when it is sent to DALLAS. The SQL statements required to supply the name translation rules in the CDB are shown in Figure 19.

Figure 19. SQL for Outbound Name Translation (SNA)

INSERT INTO SYSIBM.LUNAMES
     (LUNAME, SYSMODENAME, SECURITY_OUT, ENCRYPTPSWDS, MODESELECT, USERNAMES)
  VALUES ('LUDALLAS', ' ', 'A', 'N', 'N', 'O');
INSERT INTO SYSIBM.LOCATIONS
     (LOCATION, LINKNAME, LINKATTR)
  VALUES ('DALLAS', 'LUDALLAS', '');
INSERT INTO SYSIBM.USERNAMES
     (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD)
  VALUES ('O', 'JONES', 'LUDALLAS', 'NYJONES', 'JONESPWD');
INSERT INTO SYSIBM.USERNAMES
     (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD)
  VALUES ('O', 'DSNPLAN', 'LUDALLAS', ' ', 'PLANPWD');

The resulting CDB tables are shown in Figure 20:

Figure 20. Outbound Name Translation

                                                                                  
                                                                                 
 

REQTEXT

Figure 21 shows a more simple example for connecting to a DB2 Universal Database DRDA AS using an SNA connection.

Figure 21. SQL for Outbound Name Translation (simple example for SNA).

  INSERT INTO SYSIBM.LUNAMES (LUNAME,
                              SECURITY_OUT,                              
                              ENCRYPTPSWDS,                              
                              USERNAMES)                                 
                         VALUES ('NYX1GW01','P','N','O');
  INSERT INTO SYSIBM.LOCATIONS (LOCATION,LINKNAME,TPN)
                             VALUES('TASG6',                             
                                    'NYX1GW01','NYSERVER');
  INSERT INTO SYSIBM.USERNAMES (TYPE,AUTHID,LINKNAME,NEWAUTHID,PASSWORD) 
         VALUES ('O','      ','NYX1GW01','SVTDBM6','SG6JOHN');

Figure 22 shows a simple example for connecting to a DB2 Universal Database DRDA AS using a TCP/IP connection.

Figure 22. SQL for Outbound Name Translation (simple example for TCP/IP).

-- DB2 for Solaris1 - UNIX                                                      
   DELETE FROM SYSIBM.IPNAMES WHERE LINKNAME = 'SOLARIS1' ;                     
   INSERT INTO SYSIBM.IPNAMES ( LINKNAME                                        
                              , SECURITY_OUT                                    
                              , USERNAMES                                       
                              , IBMREQD                                         
                              , IPADDR)                                         
                       VALUES ( 'SOLARIS1'                                      
                              , 'P'                                             
                              , 'O'                                             
                              , 'N'                                             
                              , '9.21.45.4')                                    
                              ;                                                 
   INSERT INTO SYSIBM.LOCATIONS ( LOCATION                                      
                                , LINKNAME                                      
                                , IBMREQD                                       
                                , PORT                                          
                                , TPN)                                          
                         VALUES ( 'TCPDB1'                                      
                                , 'SOLARIS1'                                    
                                , 'N'                                           
                                , '30088'                                       
                                , '')                                           
                                ;                                               
   INSERT INTO SYSIBM.USERNAMES ( TYPE                                          
                                , AUTHID                                        
                                , LINKNAME                                      
                                , NEWAUTHID                                     
                                , PASSWORD                                      
                                , IBMREQD)                                      
                         VALUES ( 'O'                                           
                                , ''                                            
                                , 'SOLARIS1'                                    
                                , 'svtdbm5'                                     
                                , 'svt5dbm'                                     
                                , 'N')                                          
                                ;                                               

Network Security

After the Application Requester selects the end user names to represent the remote application, the Application Requester must provide the required network security information.

For SNA connections, LU 6.2 provides three major network security features:

Because the Application Server is responsible for managing the database resources, the Application Server dictates which network security features are required of the Application Requester. You must record the conversation-level security requirements of each Application Server in the SYSIBM.LUNAMES or SYSIBM.IPNAMES tables by setting the USERNAMES column to reflect the application server's requirement.

The possible SNA conversation security options are:

SECURITY=SAME
This is also known as already-verified security because only the end user's user ID is sent to the remote system (no password is transmitted). Use this level of conversation security when the USERNAMES column in SYSIBM.LUNAMES does not contain 'O' or 'B'.

Because DB2 Universal Database for OS/390 ties end user name translation to outbound conversation security, it does not allow you to use SECURITY=SAME when outbound end user name translation is activated.

SECURITY=PGM
This causes the end user's ID and password to be sent to the remote system for validation. Use this security option when the USERNAMES column of the SYSIBM.LUNAMES table contains either an 'O' or 'B'.

Depending upon options specified in the SYSIBM.LUNAMES table, DB2 Universal Database for OS/390 obtains the end user's password from two different sources:

SECURITY=NONE
This option is not supported by DRDA, so DB2 Universal Database for OS/390 has no provision for this security option.

Database Manager Security

One way the Application Requester can participate in distributed database security is through outbound name translation, as stated earlier in Selecting End User Names. You can use outbound name translation to control access to each Application Server, based on the identity of the end user making the request and the application making the request. Other ways the DB2 Universal Database for OS/390 Application Requester contributes to the distributed system security are:

Binding remote applications
End users bind remote applications at the Application Server with the DB2 Universal Database for OS/390 BIND PACKAGE command. DB2 Universal Database for OS/390 does not restrict the use of the BIND PACKAGE command at the requester. However, an end user cannot use a remote package until the package is included in a DB2 Universal Database for OS/390 plan. DB2 Universal Database for OS/390 does restrict the use of the BIND PLAN command. An end user cannot add the remote package to a plan unless the end user is given either the BIND or BINDADD privilege with the DB2 Universal Database for OS/390 GRANT statement.

When you bind a package, use the ENABLE/DISABLE option to specify whether the package is to be used by TSO, CICS/ESA, IMS/ESA, or a remote DB2 Universal Database for OS/390 subsystem.

Executing remote applications
For the DB2 Universal Database for OS/390 end user to run a remote application, the end user must have authority to run the DB2 Universal Database for OS/390 plan associated with that application. The DB2 Universal Database for OS/390 plan owner automatically has authority to run the plan. Other end users can be given authority to run the plan with the DB2 Universal Database for OS/390 GRANT EXECUTE statement. In this way, the owner of a distributed database application can control use of the application on a user-by-user basis.

Security Subsystem

The external security subsystem on OS/390 systems is usually provided by RACF or another product that provide an interface compatible with RACF. The DB2 Universal Database for OS/390 Application Requester does not have any direct calls to the external security subsystem, with the exception of the encrypted password support described in Network Security. However, the external security subsystem is used indirectly at the Application Requester in the following situations:

Represent Data

DB2 Universal Database for OS/390 is shipped with a default installation coded character set identifier (CCSID) of 500. This default is probably not correct for your installation.

When installing DB2 Universal Database for OS/390, you must set the installation CCSID to the CCSID of the characters generated and sent to DB2 Universal Database for OS/390 by the input devices at your site. This CCSID is generally determined by the national language you use. If the installation CCSID is not correct, character conversion will produce incorrect results. See DB2 Connect User's Guide for a list of the supported CCSIDs for each country or national language.

You must ensure that your DB2 Universal Database for OS/390 subsystem has the ability to convert from each application server's CCSID to your DB2 Universal Database for OS/390 subsystem's installation CCSID. DB2 Universal Database for OS/390 provides conversion tables for the most common combinations of source and target CCSIDs, but not for every possible combination. You can add to the set of available conversion tables and conversion routines if you need to. See the DB2 Universal Database for OS/390 Version 5 Administration Guide, for more information about DB2 Universal Database for OS/390 character conversion.


Footnotes:

3
If the request is being sent to a DB2 Universal Database for OS/390 server, name translation is also performed for the package owner and plan owner. Package and plan owner names never have passwords associated with them.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]

[ DB2 List of Books | Search the DB2 Books ]