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.