For an overview of the bind process, see The bind process. The BIND options that you select for a plan should be coordinated with the thread types used by the transactions associated with that plan. For advice on selecting thread types, see Selecting thread types for optimum performance.
We recommend that transactions using protected threads should use a plan bound with ACQUIRE(ALLOCATE) and RELEASE(DEALLOCATE) to reduce the amount of work done. Although ACQUIRE(ALLOCATE) and RELEASE(DEALLOCATE) reduce the amount of processing for a protected thread, there are some locking considerations (for more information, see Developing a locking strategy in the CICS DB2 environment). The plans for infrequently used transactions that do not use a protected thread should not typically use ACQUIRE(ALLOCATE), unless most of the SQL statements in the plan are used in each transaction.
Using ACQUIRE(ALLOCATE) minimizes the work done at SQL processing time. Using RELEASE(DEALLOCATE) minimize the work done at commit time. RELEASE(DEALLOCATE) optimizes performance if there are many commits in the program and if the thread is to be reused, because the work associated with releasing the TS locks and freeing the CT pages is done once, when the thread terminates, and not for each SYNCPOINT statement.
Packages do not have a separate ACQUIRE option. ACQUIRE(USE) is implicit when a program is executed from a package.
The bind option VALIDATE can also affect performance. You should use VALIDATE(BIND) in a CICS® environment. For more information, see Bind options and considerations for programs.
It is important that you coordinate your DB2CONN, DB2ENTRY, and BIND options. For more information, see Coordinating your DB2CONN, DB2ENTRY, and BIND options.