Transactional processing is a critical requirement
for the majority of institutions. In fact, most of the financial
institutions require transactional support for every one of its
transactions. Mainframe and AS/400 platforms have been provided this
capability for many years. Host Integration Server, formerly SNA Server,
incorporated support for two-phase commit (2PC) transactions in its
version SNA Server 4.0 SP2 (many years ago). Since then, many
improvements have been made in it, such as the support of 2PC running
with SNA load balancing.
From a design perspective, you
have to use a programming model that supports 2PC. When using the CICS
link programming model, which supports 2PC, Host Integration Server uses
the Distributed Program Link. The DPL is a mainframe mechanism that
allows a CICS application to call another CICS application using a LINK
command. DPL will be the mechanism that will control any 2PC
transaction triggered by TI objects using the CICS link programming
model. Hence, the COBOL developers should not have to modify their code
to manage the entire transaction. However, if your application uses the
user data programming model, the mainframe program will have to control
the transaction commit and rollback from its code. Although this may
require changes in COBOL programs that do not support transactions
already, when using this programming model, you do not face the 32KB
restriction on the DFHCOMMAREAS size. That's because the user data
programming model doesn't use DFHCOMMAREAS. We strongly recommend
reviewing the following IBM Redbooks to learn about the mainframe
requirements for 2PC:
2PC needs to be enabled
and configured in the mainframe and the Host Integration Server. Host
Integration Server includes the Resynchronization service that works
with MS DTC to support 2PC transactions. This service is installed when
you select the Enable LU 6.2 Resync Services option under the Network
Integration option of the Host Integration Server initial configuration.
The option is not available for TI nodeless servers. For TI nodeless
servers, you have to enable 2PC support in the remote environment
configuration by using the TI Manager.
The Resynchronization service is
also known as SNA LU 6.2 Resync TP. The SNA LU 6.2 Resync TP service
implements the Exchange Log Names and Compare States functions of a SNA
transaction manager. The Resynchronization service allows the Microsoft
Distributed Transaction Coordinator (DTC) and IBM CICS to coordinate a
recovery process as required during system startup or after a system or
communication failure.
The Exchange of Logs (XLN) is the
shared indicator of the state of 2PC transactions in the environment.
The XLN reflects the local status of the Resynchronization service and
the remote status of the mainframe readiness for establishing 2PC
transactions. Both statuses should have the same value. If the statuses
have different values, it might represent the existence of 2PC issues
between the mainframe and the Host Integration Server that need to be
analyzed. Figure 1 shows a successful log exchange between Host Integration Server and the mainframe.
The Host Integration Server 2009 requirements for 2PC are the following:
The local and remote LUs must each have SyncPoint support enabled in the Host Integration Server node, as shown in Figures 2 and 3.
The local and remote LUs should each point to the computer that is running Resynchronization services, as shown in Figures 2 and 3.
The mainframe must be
configured for Sync Level 2 support. The TI remote environment (RE) must
have Sync Level 2 support enabled as well. To check these items,
right-click the RE in TI Manager, click Properties, and then click the
LU 6.2 tab, as shown in Figure 4.
The Transaction Integrator
object must have transaction support set to Supported, Required, or
Requires New. If working with BAHA, you will have to set its Use
Transactions property to Yes. Bear in mind that transactions will take
place between the BizTalk Messagebox and the mainframe resource manager.