KC_PTC_TA rolls back a transaction that is in the state PTC (prepare to commit).
The transaction’s identification data consists of a triad of elements: the service index, service number and transaction number. You can obtain this data by first issuing a KC_GET_OBJECT call with operation code KC_PTC.
Execution / period of validity / transaction management / cluster
This call rolls back the local element of a distributed transaction.
The distributed transaction itself cannot be be rolled back using the administration capabilities. Only the local element of such a transaction can be rolled back. This type of administrative rollback is a heuristic decision concerning the result of the transaction and may in certain cases lead to inconsistencies in the distributed data stock if the distributed transaction is committed by the Commit Coordinator.
Parameter settings | |
Parameter area | |
Field name | Content |
version | KC_ADMI_VERSION_1 |
retcode | KC_RC_NIL |
version_data | KC_VERSION_DATA_11 |
opcode | KC_PTC_TA |
KC_ROLLBACK | |
25 | |
select_lth | 0 |
data_lth | 0 |
Triad with the transaction’s identification data | |
Selection area | |
— | |
Data area | |
— |
Data returned by UTM | |
Parameter area | |
Field name | Content |
Return codes |
subopcode1
With subopcode1=KC_ROLLBACK, you specify that the transaction is to be rolled back.
id_lth
You specify the length of the data structure kc_ptc_id_str in the id_lth field.
Identification area
In the identification area, you specify the data structure kc_pct_id_str.
kc_ptc_id_str must be filled with the values returned by the call KC_GET_OBJECT with operation code KC_PTC in the structure ptc_ident. ptc_ident is present in the data structure kc_ptc_str, see "kc_ptc_str - Transactions in PTC state". The data structure kc_ptc_id_str is defined as follows.
struct kc_ptc_id_str |
|
vg_indx is the index of the service, vg_nr the number of the service and ta_nr_in_vg the number of the transaction in the service.
retcode
openUTM returns the return code for the call in the retcode field. Alongside the return codes listed in section "Return codes", the following return codes may also occur
Maincode = KC_MC_REJECTED The call was rejected by openUTM. Subcode: |
KC_SC_NO_MORE_PTC The transaction is no longer in the PTC state. |
KC_SC_END_TA_ALREADY_INITIATED The termination of the transaction has already been initiated. There may be the following reasons for this: |
Maincode = KC_MC_REJECTED The call was rejected by openUTM. Subcode:
|
KC_SC_PARTNER_CONNECTED The connection has been established to the partner of the distributed transaction that determines the result of the transaction (Commit Coordinator). This initiates termination of the transaction. |