Addressing OLTP Solutions with CICS: The Transaction Server ... - Ibm
Addressing OLTP Solutions with CICS: The Transaction Server ... - Ibm
Addressing OLTP Solutions with CICS: The Transaction Server ... - Ibm
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Table 5. XA-enabled and Non-XA-Enabled Relational Databases<br />
XA-Enabled<br />
Relational Database<br />
<strong>Transaction</strong>al information exchange between<br />
<strong>CICS</strong> for AIX and DB2 for AIX takes place.<br />
Coordinated commitment or rollback of both<br />
<strong>CICS</strong> resources and RDBMS table changes<br />
occurs through the EXEC <strong>CICS</strong> SYNCPOINT call.<br />
An XAD entry (Product Definition) is required<br />
for each database. <strong>CICS</strong> for AIX has to be cold<br />
started after any changes to the XAD stanza file<br />
or the addition of new XAD stanza file entries.<br />
Provides better performance because <strong>CICS</strong><br />
transactions can reuse an XA-managed<br />
database connection while the application<br />
server (cicsas) is running, <strong>with</strong>out having to call<br />
EXEC SQL CONNECT repeatedly.<br />
<strong>CICS</strong> immediately abends the region if it cannot<br />
open a connection to the database.<br />
<strong>CICS</strong> facilities for transactional control must be<br />
used. <strong>The</strong>se are the EXEC <strong>CICS</strong> SYNCPOINT<br />
and EXEC <strong>CICS</strong> SYNCPOINT ROLLBACK<br />
commands.<br />
<strong>CICS</strong> SYNCPOINT processing takes longer than<br />
an SQL COMMIT call because it includes<br />
coordination of syncpoint among all resources<br />
managers involved.<br />
<strong>CICS</strong> application programs must be compiled<br />
<strong>with</strong> the NOSQLINIT option.<br />
Database connection stays <strong>with</strong> the application<br />
server (cicsas). Hence it is conveyed across an<br />
EXEC <strong>CICS</strong> LINK or EXEC <strong>CICS</strong> XCTL call.<br />
Database connection is established according<br />
to the XAD definitions at <strong>CICS</strong> startup time.<br />
<strong>The</strong>re is no need for the <strong>CICS</strong> transaction to<br />
make the database connection.<br />
Non-XA-Enabled<br />
Relational Database<br />
<strong>Transaction</strong>al information exchange between<br />
<strong>CICS</strong> for AIX and DB2 for AIX does not take<br />
place.<br />
<strong>CICS</strong> application has to issue EXEC SQL<br />
COMMIT call or EXEC SQL ROLLBACK call<br />
explicitly for the changes of RDBMS tables.<br />
Only the <strong>CICS</strong> resource changes are affected<br />
by the EXEC <strong>CICS</strong> SYNCPOINT call.<br />
An XAD entry is not required. A <strong>CICS</strong><br />
application that wants to connect to a particular<br />
database has to issue an EXEC SQL CONNECT<br />
call.<br />
<strong>CICS</strong> applications have to issue the EXEC SQL<br />
CONNECT call to start the database connection<br />
for each transaction. Hence there is a greater<br />
overhead.<br />
<strong>CICS</strong> region keeps running when the EXEC SQL<br />
CONNECT call issued by a <strong>CICS</strong> application<br />
fails.<br />
RDBMS facilities must be used. <strong>The</strong>y are the<br />
EXEC SQL COMMIT, EXEC SQL ROLLBACK,<br />
and EXEC SQL SYNCPOINT commands.<br />
SQL COMMIT processing is faster, but it only<br />
works if no other resource managers are<br />
involved in the transaction. Furthermore, using<br />
SQL COMMIT in a transaction prevents you<br />
from issuing an EXEC <strong>CICS</strong> SYNCPOINT call in<br />
the same transaction.<br />
Special compile options are not required.<br />
Database connection cannot be conveyed<br />
across the EXEC <strong>CICS</strong> LINK or EXEC <strong>CICS</strong> XCTL<br />
call. You must disconnect from the database<br />
before these calls and reconnect in the called<br />
program.<br />
<strong>CICS</strong> transaction has to connect to the<br />
database through an EXEC SQL CONNECT call<br />
before making any SQL access calls.<br />
Chapter 7. Interactions <strong>with</strong> the DB2 Family of Products 93