IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Services and service-related functions > Access external services with adapters > Configure and using adapters > IBM Resource Adapters > WOLA resource adapter

Transactions, security, and connection properties for a CICS system

Using WOLA, business processes and services on IBM Process Server for z/OS can call CICS programs.


CICS outbound calling

WOLA is implemented in CICS as a task-related user exit (TRUE) that provides the low-level connection code to cross-memory services. There are two ways of making outbound calls to applications in CICS:


Global transactions using WOLA

The WebSphere optimized local adapter (WOLA) supports global transactions in a two-phase commit process for Process Server for z/OS to CICS program invocations.

When calling into a CICS transaction from Process Server for z/OS using WOLA, an XA-capable transaction context is passed from Process Server for z/OS to CICS.

The WOLA CICS link server that runs in CICS must be started with the TXN=Y parameter so that the link server can read the XA transaction context and create a unit of work to run the specified native language program. When Process Server for z/OS reaches a sync point or a commit point, XA protocol messages are exchanged between Process Server for z/OS and the WOLA link server. The link server drives the appropriate functions in the CICS OTS (OT) domain to complete the unit of work.

To use the global transaction capability when calling into a CICS transaction from Process Server for z/OS, use CICS Transaction Server for z/OS V4.1 or later. How WOLA propagates a transaction context is based on the settings of the WOLA CICS link server that runs inside CICS and the transaction attributes of the process application that runs inside Process Server for z/OS.


CICS security propagation

In CICS transactions, you can propagate the thread level user ID from Process Server for z/OS to CICS using the WOLA CICS link server, but you must start the link server with SEC=Y. When running in this mode, WOLA propagates the identity of the user on the current thread to CICS and the link server invokes a link invocation task using EXEC CICS START TRANSID(‘BBO#') USER(<userid>).

Important: You must ensure that the CICS SURROGAT SAF class is active and that the user ID under which the link server runs has authority to issue START TRANSID for the propagated user ID. Alternatively, when the WOLA CICS link server runs with SEC=NO, all requests that are received in CICS from Process Server for z/OS run under the identity of the link server task, which is the ID of the user that started the link server.

In Process Server for z/OS, you may choose to use the security credentials that are already set on the thread, which by default is the user ID that is running the server, or you can set the credentials using a JAAS alias.


CICS connection properties

When creating the WOLA import and service, you must define the connection properties for the target CICS system.

In the New External Service wizard, on the Security and Configuration Properties page, specify the JNDI name of the connection factory defined on Process Server for z/OS or specify the connection properties for the CICS server that you want to connect to. If you choose to specify the connection properties, then the managed connection factory is created during deployment with the specified properties. In both the cases, a connection property that must be specified for CICS is the target register name.

Important: Define the connection factory on the server for easy changes by the administrator. You can share or reuse the same connection factory among many external services.

If the target program on the CICS system uses CICS containers and can be accessed using WOLA, then in the Security and Configuration Properties page under the CICS connection properties area, you must select CICS connection properties and select Use CICS containers to use CICS containers to communicate with the CICS link server. CICS programs that use containers can pass data that is larger than 32 KB.

To communicate with a COBOL, PL/I, C, or C++ program on a CICS system when using CICS containers, you must set the following properties:

Link invocation task transaction ID - Specifies the CICS transaction ID used to run the program link invocation task. The default transaction ID is BBO#.

If the default transaction ID is changed, the CICS system programmer must ensure that the transaction ID is defined properly in the target CICS regions. The transaction ID must be defined with the name of the WOLA CICS link invocation program, which is BBOACLNK.

Important: For CICS programs, you must specify the name of the CICS program to invoke in the InteractionSpec Service name property for the selected operation in the New External Service wizard.