04.04.2013 Views

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

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

10.7.2 Data Operations<br />

<strong>The</strong> third issue concerns the relative performance profiles of the two transaction<br />

types. Although it is better for overall throughput to design your transactions to<br />

be pseudo conversational, conversational transactions use less processing<br />

power. <strong>The</strong> reasons are:<br />

• It may be necessary for an application server to be created to run the<br />

transaction. This involves a large amount of processing because <strong>CICS</strong> must<br />

create an environment for the transaction that is persistent across failures.<br />

You should try to avoid application server creation by setting the value of the<br />

RD stanza attribute Minservers to a value appropriate for your expected<br />

workload.<br />

• When each pseudo conversational transaction starts, the server has to be<br />

initialized for it. This initialization may include having to load the <strong>CICS</strong><br />

program for it if it is not already loaded in shared memory.<br />

<strong>The</strong> fourth issue is the delicate balance of transaction throughput and response<br />

times. In a heavily loaded system, once a conversational transaction is running,<br />

it will give more predictable response times than a pseudo conversational one.<br />

When the user presses an attention identifier (AID) key in the latter case, no<br />

application server may be available to process it, and the limit on the number of<br />

servers may have been reached. Conversely there should be better transaction<br />

throughput in the pseudo conversational case.<br />

<strong>The</strong>re are factors other than performance overhead to consider when choosing<br />

between pseudo conversational and conversational design for <strong>CICS</strong> applications,<br />

as described below. <strong>The</strong> method you choose can affect how you write the<br />

application programs. You may need extra <strong>CICS</strong> requests for pseudo<br />

conversations, particularly if you are updating recoverable files. Once you have<br />

done this, however, operational control (performance monitoring, capacity<br />

planning, recovery, system shutdown, and distributing system messages) may be<br />

much easier.<br />

10.7.1.4 <strong>CICS</strong> Program Design<br />

Having decided whether your transaction is best written to be conversational or<br />

pseudo conversational, your next task is to design it. Most organizations<br />

mandate a modular approach of some sort to this design task, and a primary<br />

consideration here is your choice of <strong>CICS</strong> on Open Systems, operating system,<br />

and programming language facilities.<br />

<strong>The</strong> <strong>CICS</strong> file services API is designed to allow access to data files whose size<br />

can range from small to large, in a variety of file organizations and access<br />

methods, and which are usually of a more permanent nature.<br />

<strong>The</strong> transient data and temporary storage service API commands allow access<br />

to sequential and random access queues.<br />

<strong>The</strong> journal services API allows you to write journal records for audit trails or<br />

other purposes for offline processing.<br />

In addition, <strong>CICS</strong> allows access to relational databases that provide a<br />

programmable interface through EXEC SQL commands in one of the supported<br />

<strong>CICS</strong> programming languages.<br />

Chapter 10. Application Design Considerations 153

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!