Print Email

Get APPC/MVS and Your IMS Talking to Each Other

3/28/2019 8:01:24 AM |
Advanced program-to-program communication (APPC) is an implementation of the Systems Network Architecture (SNA) LU 6.2 protocol on a given system. ​APPC allows interconnected systems to communicate and share the processing of programs.

APPC/MVS is a VTAM application that extends APPC support to z/OS. VTAM is a product that makes communication possible between applications on diverse processors. APPC/IMS, a part of IMS TM, delivers support for APPC with facilities provided with APPC/MVS.

Implementation Steps 

Let’s look at the necessary steps for setting up your IMS to get APPC related messages onto the IMS message queues:

1. Request your systems programmer to add some APPC LU definitions to the APPCPMxx PARMLIB member. A sample APPC LU definition entry in the APPCPMxx PARMLIB member would look like the following:

LUADD ACBNAME(ABCDLU62)           

      SCHED(ABCD)                 

      BASE                         

      TPDATA(W.X.Y.Z)

The LUADD statement defines a local APPC/MVS LU that is to be added to the APPC configuration. Each LU managed by APPC/MVS must be defined with an LUADD statement. Here’s a breakdown of the above example: 


  • ABCDLU62 is the LU name.
  • ABCD: The LU is associated with a transaction scheduler and ABCD is the name of the transaction scheduler.
  • BASE: An optional parameter that designates the LU as the base LU. Base LUs are default LUs assigned to handle outbound work.
  • TPDATA(dsname): An optional parameter that specifies the name of the VSAM key-sequenced data set that contains TP profiles, along with an optional database token for the LU. The database token is used for verifying access authority to TP profiles. 
2. Once the APPC LU definitions have been added to the APPCPMxx PARMLIB member for you, VTAM APPL definition for APPC needs to be added. Please ensure that the ACBNAME in your VTAM APPL definition needs to match what has been defined in the APPC definition on the LUADD statement’s ACBNAME parameter.
 
3. Vary the APPL (that you just created in the step above) active:

V NET,ID=XXXXXXXX,ACT

4. I strongly recommend that you ensure that APPC=Y has been specified on the IMS startup parameter (the DFSPBxxx member present in your IMS PROCLIB). The default is APPC=N. When “N” is specified, a connection to APPC/MVS services is not established during IMS initialization. When “Y” is specified, IMS establishes a connection with APPC/MVS during IMS initialization.

5. Before activating APPC/IMS, an IMS system definition is needed to specify 390 as the third parameter of the SYSTEM keyword for the IMSCTRL macro. If 390 was not specified as the third parameter of the SYSTEM keyword for the IMSCTRL macro and you have specified it just now, remember that you would need to REGEN your IMS.

6. Bring your IMS up, ready and running. Issue the command:

/D NET,ID=XXXXXXXX,E

You should be expecting a similar response as follows:

RESPONSE=PQRS                               

 IST075I NAME = XXXXXXXX, TYPE = APPL SEGMENT

 IST486I STATUS= ACTIV, DESIRED STATE= ACTIV

 IST360I APPLICATIONS:                      

 IST080I ABCDLU62 ACTIV                     

 IST314I END

7. Select the DDNAME JESMSGLG of your IMS Control Region Started Task Address Space that is executing. Do an F APPC. The following messages would be of interest to you:

DFS1960I IMS HAS REQUESTED A CONNECTION WITH APPC/MVS. ABCD

The above message says that IMS has issued the APPC/MVS verb ATBIDEN to connect to APPC/MVS.

DFS1958I IMS CONNECTION TO APPC/MVS COMPLETE, LUNAME=YYYYYN01.ABCDLU62  ABCD

The above message indicates that the connection between APPC/MVS and IMS has been established. APPC/MVS has opened the local ACB of IMS. APPC/MVS LU 6.2 services are available to IMS. If the LU name is network qualified, it can be up to 17 bytes long. IMS can now receive messages from LU 6.2 devices and send messages to LU 6.2 devices using APPC/MVS services.

Remember Step 4? Since we had ensured that APPC=Y was specified on the IMS startup parameter, IMS established a connection with APPC/MVS during IMS initialization.


8. Issue the /DISPLAY ACTIVE IMS command. The following message from the command reply will be of interest to you:

IMSLU=YYYYYN01.ABCDLU62  APPC STATUS=ENABLED

9. If you wish to disable any APPC-related security, you would need to issue the following IMS command:

/SEC APPC NONE

The following messages from the command reply will be of interest to you:

DFS4445I CMD FROM MCS/E-MCS CONSOLE USERID=xxxxxxx: SEC APPC NONE ABCD

DFS058I 02:59:57 SECURE COMMAND COMPLETED ABCD

10. Step 4 is important here, too. If you don’t ensure that APPC=Y has been specified on the IMS startup parameter (the default being APPC=N; APPC=, is the same as APPC=N, as APPC=N is the default), a connection to APPC/MVS services is not established during IMS initialization.

In such a case, you wouldn’t come across the following two messages.​

DFS1960I IMS HAS REQUESTED A CONNECTION WITH APPC/MVS. ABCD

DFS1958I IMS CONNECTION TO APPC/MVS COMPLETE, LUNAME=YYYYYN01.ABCDLU62  ABCD

Also, if you issue the /DISPLAY ACTIVE IMS command, you will see the following.​

IMSLU=N/A.N/A            APPC STATUS=DISABLED

In such a scenario, issue the following IMS command:

/STA APPC

This will start the APPC communication between IMS and APPC/MVS. After the command executes successfully, you will notice the following messages:

DFS4445I CMD FROM MCS/E-MCS CONSOLE USERID=xxxxxxx: STA APPC ABCD

DFS1960I IMS HAS REQUESTED A CONNECTION WITH APPC/MVS. ABCD

DFS058I 03:24:48 START COMMAND COMPLETED ABCD

DFS1958I IMS CONNECTION TO APPC/MVS COMPLETE, LUNAME=YYYYYN01.ABCDLU62  ABCD

Now, issue the /DISPLAY ACTIVE IMS command once again. You will now notice the following:

IMSLU=YYYYYN01.ABCDLU62  APPC STATUS=ENABLED

Congratulations! If you’ve completed these steps, you’ve figured out how to get APPC/MVS and IMS talking to each other.


Subhasish Sarkar, who specializes in different IBM Z mainframe technologies, is a senior SQA engineer at BMC Software India Pvt. Ltd.

Join Now!
Make No Mistake

Make No Mistake

Avoid common DB2 for z/OS RUNSTATS collection mistakes.

Read more »

Emerging IT Challenges

Emerging IT Challenges

A Diverse Set of Skills Needed for Technical Roles

Read more »