This section contains information primarily for the CICS® application
developer, the CICS application reviewer, and those involved in defining standards
for application design.
Note that this chapter deals only with the design recommendations that
are unique to the CICS DB2® environment. The general considerations that apply
only to CICS applications, or only to DB2 applications, are not covered.
See the DB2 Universal Database™ for OS/390® and z/OS® Application Programming and SQL Guide for more information on DB2 application
design, and the CICS Application Programming Guide for more information
on CICS application design.
In the design process, decisions can be taken that have consequences related
not only to the application being developed now, but also to future applications.
Some of the key aspects of the design process are as follows:
- Design the relationship between CICS applications and DB2 plans and packages
(see Designing the relationship between CICS applications and DB2 plans
and packages). To gain the greatest benefits for the performance
and administration of your system, the relationship between DB2 plans, transactions,
and application programs must be defined while you are designing applications.
- Develop a locking strategy (see Developing a locking strategy in the CICS DB2 environment). Locking is affected
by options you choose when creating tables in DB2, by the design of your application
programs, and by options you choose when binding plans, so you need to take
it into account throughout the development process.
- Consider the security
aspects of both the CICS DB2 test system and the CICS DB2 production system.
The considerations for security in a CICS DB2 system are described in Security in a CICS DB2 environment.
- When developing the application programs, note the considerations in SQL, threadsafe and other programming considerations for CICS DB2 applications. The use of certain commands and programming techniques can
improve the performance of your application and avoid some potential problems.
Whether you use qualified or unqualified SQL influences many other aspects
of the CICS DB2 environment. And to gain the performance benefits of the
open transaction environment (OTE), your application programs must be threadsafe.
- If you are using Java™ programs and enterprise beans in the
CICS DB2 environment, note the support and programming considerations in Using JDBC and SQLJ to access DB2 data from Java programs and enterprise
beans written for CICS.
- Plan the further steps to be taken when application development is complete
and the application is put into production. Preparing CICS DB2 programs for execution and production gives information
on this process, including the use of different BIND options.
- Define your CICS DB2 connection to benefit the application's performance.
For example, using protected entry threads for the application programs to
access DB2 improves performance for heavily-used applications. Defining the CICS DB2 connection gives
information on your CICS DB2 connection.
The design that you implement can influence:
- Performance
- Concurrency
- Operation
- Security
- Accounting
- The development environment
A well-designed CICS DB2 application should work properly when set into
production for the first time. However, certain factors can affect the application's
performance later on. These factors include:
- Increased transaction rate
- Continued development of existing applications
- More people involved in developing CICS DB2 applications
- Existing tables used in new applications
- Integration of applications
It is therefore important to develop a consistent set of standards on
using DB2 in the CICS environment.
If you have previously developed applications with data
stored in VSAM and DL/I, be aware that there are several differences
between those applications and CICS DB2 applications. Some of the main differences
to consider are:
- Locking mechanism
- Security
- Recovery and restart
- BIND process
- Operational procedures
- Performance
- Programming techniques
One of the major differences between batch and online program design
is that online systems should be designed for a high degree of concurrency.
At the same time, no compromise should be made to data integrity. In addition,
most online systems have design criteria about performance.
[[ Contents Previous Page | Next Page Index ]]