Starting commitment control

To start commitment control, use the Start Commitment Control (STRCMTCTL) Command.

Note: Commitment control does not need to be started by SQL applications. SQL implicitly starts commitment control at connect time when the SQL isolation level is not *NONE.

When you use the STRCMTCTL command, you can specify these parameters.

Commit lock-level
Specify the lock-level with the LCKLVL parameter on the STRCMTCTL command. The level you specify becomes the default level of record locking for database files that are opened and placed under commitment control for the commitment definition.
Commit notify object
Use the NTFY parameter to specify the notify object. A notify object is a message queue, data area, or database file that contains information identifying the last successful transaction completed for a particular commitment definition if that commitment definition did not end normally.
Commit scope parameter
Use the CMTSCOPE parameter to specify commit scope. When commitment control is started, the system creates a commitment definition. The commit scope parameter identifies the scope for the commitment definition. The default is to scope the commitment definition to the activation group of the program making the start commitment control request. The alternative scope is to the job.
Default journal parameter
You can specify a default journal when you start commitment control. You might use a default journal for these reasons:
  • You want to capture transaction journal entries. These entries can assist you in analyzing the history of what resources are associated with a transaction. They are not used for applying and removing journaled changes. The omit journal entries (OMTJRNE) parameter determines whether the system writes transaction entries.
  • You want to improve performance for jobs that close files and open them again within a routing step. If you close all the files assigned to a journal that is not the default journal, all the system information about the journal is removed from the routing step. If a file that is assigned to that journal is opened later, all the information about the journal must be created again. The system keeps information about the default journal with the commitment definition, whether any resources that are assigned to the journal are active.
Commit text parameter
Use the TEXT parameter to identify the specific text to be associated with a commitment definition when displaying information about the commitment definitions started for a job. If no text is specified, the system provides a default text description.
Omit journal entries parameter
If you specify a default journal to improve performance, you can use the OMTJRNE parameter to prevent the system from writing transaction journal entries. Having the system write transaction entries significantly increases the size of your journal receiver and degrades performance during commit and rollback operations.

Transaction entries can be useful when you are setting up and testing either your commitment control environment or a new application.

Transaction entries are written to the default journal regardless of the value of the OMTJRNE parameter under these conditions:

  • A system error occurs during a commit or rollback operation.
  • A manual change is made to a resource that participated in a transaction, and the change caused a heuristic mixed condition. See States of the transaction for two-phase commitment control for a description of the heuristic mixed condition. This type of manual change is called a heuristic decision.

You can use the information about what resources participated in the transaction to determine what action to take in these situations.

You can use the Journal entry information finder to show the layouts for the entry-specific data for transaction (commitment control) journal entries.