Modify the UBBCONFIG file to include the name of the ATMI simple server in the following way:
The application server GROUP3 in the Groups section must point to a valid transaction manager server. For example:
Execute the ATMI tmloadcf command to parse the
UBBCONFIG file and create a binary version of the file. Refer to the appropriate ATMI
platform documentation for option descriptions.
The DMCONFIG file must contain both local and remote definitions for the simple server.
Note:
|
A sample DMCONFIG file is included with the simple server.
|
In the preceding DMCONFIG file example, both instances of the
LDOM name correspond to the SNA domain name in the
DM_LOCAL_DOMAINS section. The server is a request/response server.
In the DM_LOCAL_SERVICES section, the
RNAME=”MIRRORSERV” and
RNAME="MIRRDPLS" values are the names passed from the CICS/ESA environment.
MIRROR and
DOUBLEMIRROR refer to the advertised services provided by the
mirrorsrv server named in the
UBBCONFIG file. The
CONV=N definition indicates the protocol that is observed by the SNA domain, although the CICS/ESA client does not perform an ATMI
tpcall.
In the DM_REMOTE_SERVICES section, the
RNAME value identifies what is invoked in the CICS/ESA domain. For the
Distributed Program Link (DPL) request, the
RNAME equals the name of the
program called (or for alternate mirror transaction identifiers, a
TRANSID/program name combination). For the
Distributed Transaction Processing (DTP) request, the
RNAME equals the name of the
transaction ID.
Execute the ATMI dmloadcf command to parse the
DMCONFIG file and create a binary version of the file. Refer to the appropriate ATMI
platform documentation for option descriptions.
Modify the app.env file and include it with the
ENVFILE parameter in the
MACHINES section of the
UBBCONFIG file.
Listing 3‑2 is an example of the
app.env file.
Modify the <machine>.env file that is appropriate for your system:
#================================================================
# solaris.env
# Environment macros for SOLARIS testing.
#
# See also
# See $(TOP)/Makefile for more information.
#
# @(#)SNA Devel apps/simpsna solaris.env 1.3 98/02/23 12:39:05
# Copyright 1997, BEA Systems, Inc., all rights reserved.
#----------------------------------------------------------------
export APPDIR=<Your application directory bin here>
export TUXCONFIG=<Your ATMI configuration qualified name here>
export BDMCONFIG=<Your ATMI domain configuration qualified name here>
export TUXDIR=<Your ATMI product directory here>
export STACK=<Your stack product library here>
#example STACK=/opt/SUNWappc
export PATH=$APPDIR:$TUXDIR/bin:$PATH
export LD_LIBRARY_PATH=$TUXDIR/lib:$LD_LIBRARY_PATH:$STACK
Use the ATMI platform buildserver utility to build the
mirrorsrv server load module from the provided source file
mirrorsrv.c. The source file contains two service entries,
MIRROR and
DOUBLEMIRROR, which will be advertised by the
mirrorsrv server
.
When executed, the MIRROR service receives a text string from the client, reverses the letters, and displays a mirror image of the input text string.
When executed, the DOUBLEMIRROR service receives a text string from the client, reverses the letters, and concatenates the reversed string to the forward image of the string.
Use the ATMI platform buildclient utility to build a client load module from the provided source file
toupclt. When executed, the load module sends a lower-case text string to the server, which converts it to uppercase in several modes, causing different server scenarios to execute.
Refer to the appropriate ATMI platform documentation for option descriptions.
This step translates the EXEC CICS verbs into program
CALL statements of the form required by the selected source language. The source is read from the SYSIN dataset. The translated source program is written to the
SYSPUNCH dataset. The translator listing is written to the
SYSPRINT dataset.
//TRN EXEC PGM=DFHECP1$,
// PARM=‘COBOL2,NOS,CICS’,REGION=256K
//STEPLIB DD DSN=CICSXXX.SDFHLOAD,DISP=SHR
//SYSIN DD DSN=YOUR.PDS(pgmname),DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSPUNCH DD DSN=&&SYSCIN,
// DISP=(,PASS),UNIT=SYSDA,
// DCP=BLKSIZE=400,
// SPACE=(400,(400,100))
//TRN EXEC PGM=DFHEDP1$,
// PARM=‘C,NOS,CICS’,REGION=256K
//STEPLIB DD DSN=CICSXXX.SDFHLOAD,DISP=SHR
//SYSIN DD DSN=YOUR.PDS(pgmname),DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSPUNCH DD DSN=&&SYSCIN,
// DISP=(,PASS),UNIT=SYSDA,
// DCB=BLKSIZE=400,
// SPACE=(400,(400,100))
•
|
TOUPDTPS (CICS server DTP module using CICS APIs)
|
•
|
MIRRDTPC (CICS client DTP module using CPI-C verbs)
|
//COB EXEC PGM=IGYCRCTL,REGION=GM,
// PARM=‘NODYNAM,RENT,RES,APOST,MAP,XREF’
//STEPLIB DD DSN=SYS2.COB2.COB2COMP,DISP=SHR
//SYSLIB DD DSN=CICSXXX.SDFCOB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD DSN=&&SYSCIN,DISP=(OLD,DELETE)
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),
// UNIT=&WORK,SPACE=(400,(20,20))
//SYSUT1 DD UNIT-WORK,SPACE=(460,(350,100))
//SYSUT2 DD UNIT=WORK,SPACE=(460,350,100))
//SYSUT3 DD UNIT=WORK,SPACE=(460,(350,100))
//SYSUT4 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT5 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT6 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT7 DD UNIT=&WORK,SPACE=(460,(350,100))
//*----------------------------------------
//* COMPILE STEP:
//*----------------------------------------
//COMPILE EXEC PGM=CBC310,REGION=2M,COND=(7,LT,TRN),
// PARM=(‘OPT(1),LONGNAME,RENT,SOURCE’)
//STEPLIB DD DSNAME=SYS1.SCEERUN,DISP=SHR
// DD DSNAME=SYS1.SCBC3CMP,DISP=SHR
//SYSMSGS DD DSNAME=SYS1.SCBC3MSG(EDCMSGE),DISP=SHR
//SYSIN DD DSNAME=&&SYSCIN,DISP=SHR **FROM TRN STEP
//SYSLIB DD DSNAME=SYS1.SCEEH.H,DISP=SHR
// DD DSNAME=SYS1.SCEEH.SYS.H,DISP=SHR
// DD DSNAME=CICSxxx.SDFHC370,DISP=SHR**CPIC
// REQUIRED**
//SYSLIN DD DSNAME=&&PLNKSET,UNIT=VIO,
// DISP=(MOD,PASS),SPACE=(TRK,(3,3)),
// DCP=(RECFM=FG,LRECL=80,BLKSIZE=&SYSLBLK)
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSCPRT DD SYSOUT=*
//SYSUT1 DD UNIT=VIO,SPACE=(32000,(30,30,)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200
//SYSUT4 DD UNIT=VIO,SPACE=(32000,(30,30,)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200
//SYSUT5 DD UNIT=VIO,SPACE=(32000,(30,30,)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=12800
//SYSUT6 DD UNIT=VIO,SPACE=(32000,(30,30,)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=12800
//SYSUT7 DD UNIT=VIO,SPACE=(32000,(30,30,)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=12800
//SYSUT8 DD UNIT=VIO,SPACE=(32000,(30,30,)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=12800
//SYSUT9 DD UNIT=VIO,SPACE=(32000,(30,30,)),
// DCB=(RECFM=FB,LRECL=137,BLKSIZE=882
//SYSUT10 DD SYSOUT=*
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200
//SYSUT14 DD UNIT=VIO,SPACE=(32000,(30,30,)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=128007
//PLKED EXEC PGM=EDCPRLK,COND=((7.LT,C),(7,LT,TRN)),
// PARM=’MAP’
//STEPLIB DD DSN=SYS1.SCEERUN,DISP-SHR
//SYSMSGS DD DSN=SYS1.SCEEMSGP(EDCPMSGE),DISP+SHR
//SYSLIB DD DSN=&LE370HLQ..SCEECPP,DISP=SHR
// DD DUMMY
//SYSIN DD DSN=&&PLNKSET,DISP=(MOD,PASS)
//SYSMOD DD DSN=&&LOADSET,DISP=(,PASS),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
In the following COBOL and C program examples, SYSLIN is the name of the file containing the compiled source concatenated with other necessary executables, including interfaces for the CICS API verbs, interfaces for CPI-C verbs, and interfaces for SNA resource recovery verbs (sync-level 2).
In Listing 3‑9, the module is linked as re-entrant and marked with 31-bit mode address-ability. This action is required for the module
MIRRDTPC which performs CPI-C and SAA Resource/Recovery requests.
//LKED EXEC PGM=IEWL, * ** LINKAGE EDITOR **
// PARM=AMODE=31,RENT,
// REGION=512K
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD *
// INCLUDE SYSLIB(DFHECI)
// ORDER DFHECI
// NAME xxxxxxxx(R)
/*
//SYSLIB DD DSN=CICSxxx.SDFHLOAD,DISP=SHR
// DD DSN=CICSxxx.SDFHCOB,DISP=SHR
// DD DSN=SYS1.SCEELKED,DISP=SHR
// DD DSN=SYS1.SIGYCOMP,DISP=SHR
//SYSLMOD DD DSN=application.loadlib,DISP=(SHR,PASS)
//SYSUT1 DD UNIT=VIOD,SPACE=(1024,(50,20))
//
//LKED EXEC PGM=IEWL, * ** LINKAGE EDITOR **
// PARM=AMODE=31,RENT,
// REGION=512K
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD *
// INCLUDE SYSLIB(DFHECI)
// INCLUDE SYSLIB(DFHCPLC)
// INCLUDE SYSLIB(DFHCPLRR)
// ORDER DFHECI
// NAME xxxxxxxx(R)
/*
//SYSLIB DD DSN=CICSxxx.SDFHLOAD,DISP=SHR
// DD DSN=CICSxxx.SDFHCOB,DISP=SHR
// DD DSN=SYS1.SCEELKED,DISP=SHR
// DD DSN=SYS1.SIGYCOMP,DISP=SHR
//SYSLMOD DD DSN=application.loadlib(xxxxxxxx),DISP=(SHR,PASS)
//SYSUT1 DD UNIT=VIOD,SPACE=(1024,(50,20))
//
//LKED EXEC PGM=HEWL,REGION=4M,
// PARM='AMODE=31,RENT,
// COND=((7,LT,C),(7,LT,PLKED),(7,LT,TRN))
//SYSLIB DD DSN=CICSxxx.SDFHLOAD,DISP=SHR
// DD DSN=SYS1.SCEELKED,DISP=SHR
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD *INCLUDE SYSLIB(DFHELII)
// INCLUDE SYSLIB(DFHCPLC)
// INCLUDE SYSLIB(DFHCPLRR)NAME xxxxxxxx(R)
/*
//SYSLMOD DD DSN=application.loadlib(xxxxxxxx),DISP=SHR
//SYSUT1 DD UNIT=VIOD,SPACE=(1024,(50,20))
//SYSPRINT DD SYSOUT=*
•
|
The BEACONN file contains the CICS/ESA configuration parameters to the host system. These include connection definitions and session definitions.
|
•
|
The BEASNA file contains the application definitions that enable you to perform the installation verification in the CICS/ESA environment. These definitions are required to run the installation verification. They include the program definitions, transaction definitions, and for the CPI-C example, the partner definition.
|
Caution:
|
The BEACONN file should only be added to the CICS/ESA System Definition (CSD) file if no definitions currently exist. Check with your system administrator.
|
//YOURJOB JOB accounting info,name,MSGLEVEL=1
//STEP1 EXEC PGM=DFHCSDUP,REGION=512K,
// PARM='CSD(READWRITE),PAGESIZE(60),NOCOMPAT'
//STEPLIB DD DSN=CICSxxx.SDFHLOAD,DISP=SHR
//DFHCSD DD UNIT=SYSDA,DISP=SHR,DSN=CICSxxx.DFHCSD
//SYSPRINT DD SYSOUT=A
//SYSIN DD DSN=YOUR.PDS(BEASNA),DISP=SHR
The definitions in the sample member use an Oracle Tuxedo Mainframe Adapter for SNA Resource Definition Online (RDO) Group name. You may want to add these definitions to an existing RDO group, or you might consider adding them to your CICS/ESA start-up list if you plan to use them often. (This automatically installs the group on start-up of the CICS/ESA region.) To add the groups to the start-up list, un-comment the following statements in the sample RDO.
**LOCALLU** must be changed to the LU name of the SNA stack as known by VTAM. The
ATTACHSEC option indicates the level of attach-time user security required for the connection.
LOCAL is the simplest security. The authorization of the user is taken to be that of the link itself, relying on the authorization validation provided by the remote security utility.
AUTOCONNECT indicates when the connection is acquired.
NO is required. This entry means that CICS does not attempt to bind sessions when the connection is established by the stack.
The BEACONN file also includes a sample session definition. When placed on the remote host, it defines the logical links by which the ATMI platform local domain communicates with the remote host.
AUTOCONNECT indicates how the activation of the session is to be negotiated.
YES enables the CICS/ESA host to negotiate its own winner sessions when the connection is bound. Remember that the Oracle Tuxedo Mainframe Adapter for SNA software must acquire the connection instead of the CICS/ESA host. However, when the stack acquires the connection, it can only bind the number of sessions identified as its winners. Setting the
AUTOCONNECT parameter to
YES causes the host to bind winner sessions immediately when the connection is acquired. Otherwise, the host’s outbound clients must wait for winner sessions to bind.
Replace **MODE** with either a CICS/ESA-supplied mode name, such as
SMSNA100, or with your own defined mode name. If another set of session definitions exist for the BEA connection, this mode name must be unique among all sets defined to the connection. The mode name corresponds to a VTAM
LOGMODE name.
The MAXIMUM option defines the total number of sessions in the set
(**MAX**) and the total number of contention winner sessions
(**MIN**). To verify the installation, the total number of winner sessions must include those for the host and the remote stack. The installation verification process allows both sides to execute as the client. The total number of local contention winner sessions plus remote contention winner sessions must equal the number of sessions. The local number of sessions must equal the remote number of sessions.
The BEASNA file includes a sample program definition, shown in
Listing 3‑15. Replace the
LANGUAGE variable
**LANG** in the sample with either
C or
COBOL to identify the source type you have selected for the sample application.
The BEASNA file also contains a sample remote program definition, shown in
Listing 3‑16. The program definition is used by the CICS DPL client to identify the remote system and service for the DPL request. Replace the
REMOTESYSTEM variable
**CONNECTION ID** in the sample with the name of the connection for the remote LU.
The BEASNA file also contains a sample transaction definition, shown in
Listing 3‑17.
The sample CICS/ESA client MIRRDTPC contains CPI-C verbs. The partner resource definition contains the CPI-C side information needed to allocate a conversation with the ATMI server and information about the remote LU and transaction program.
As shown in Listing 3‑18, the
TPNAME parameter identifies the transaction program that is invoked in the remote system. In this case, the name correlates to the
RNAME value in the
DM_LOCAL_SERVICES section of the
DMCONFIG file. The
RNAME there must match the
TPNAME in the partner definition. (Notice in the sample
DMCONFIG file that a local service definition
MIRROR exists. The
RNAME in that definition matches the
TPNAME in the sample partner definition.)
Use the NETNAME specified in the Connection definition of the remote LU to replace
**NETWORK NAME**.
In this scenario, the toupclt client performs a
tpcall to the CICS/ESA host server. The server converts the text string you enter from lower-case to upper-case letters. The client may be run in transactional or non-transactional mode. The CICS/ESA server may be run as a DTP or DPL program
H0TP = CPI-C Application Sync-Level 0
H2TP = CPI-C Application Sync-Level 2
<string> is a text string up to 1915 characters long.
H1PL = DPL Application Sync-Level 1
H2PL = DPL Application Sync-Level 2
<string> is a text string up to 955 characters long.
CSMI and CVMI use profile DFHCICST with the attribute
INBFMH = NO. When using DTP transactions, you are required to set
INBFMH = ALL; otherwise, an
ABEND AXFQ occurs.