arm_stop_transaction() — Mark the end of an ARM transaction
Standards
Standards / Extensions | C or C++ | Dependencies |
---|---|---|
both |
Format
#include <sys/_Elmarm4.h>
arm_error_t arm_stop_transaction(
/* [in] */ arm_start_handle_t start_handle,
/* [in] */ arm_int32_t transaction_status,
/* [in] */ arm_int32_t flags,
/* [in] */ arm_buffer4_t *buffer4,
);
General description
Use arm_stop_transaction() to mark the end of execution of a transaction.
If any threads
are bound to the transaction, arm_stop_transaction() unbinds them.
If the transaction is in a blocked state due to outstanding arm_blocked()
calls, then arm_stop_transaction() considers the transaction to be
unblocked at the time it is stopped. This cleanup processing exists
for recovery purposes. Applications are expected to use arm_unbind_thread()
and arm_unblocked() as part of normal processing.
- start_handle
- The handle returned by arm_start_transaction() for the transaction.
- transaction_status
- The completion code of the transaction.
- ARM_STATUS_GOOD
- Transaction successful.
- ARM_STATUS_ABORT
- Transaction aborted This value indicates there was a fundamental failure in the system; for example, a communications timeout or a database operation error.
- ARM_STATUS_FAILED
- Transaction failed. This value indicates the system worked properly but the transaction was not successful; for example, when making an airline reservation, no seats are available on the requested flight.
- ARM_STATUS_UNKNOWN
- Transaction status is unknown.
- flags
- Reserved for future use. The argument must be set to 0.
- buffer4
- A pointer to a buffer that identifies one or more sub-buffers containing additional data. A null pointer can be passed if no additional data is required. The proposed ARM4 standard defines a metric values sub-buffer for this function but eWLM does not process metrics. If a buffer is passed eWLM ignores it.
Returned value
On success, arm_end_application
returns ARM_RC_SUCCESS. On failure, the errno and return code are
set to indicate the error. See Return code for
the list of all possible return codes.
- Error Code
- Description
- EFAULT
- A parameter of this service contained an address that was not accessible to the caller.
- EINVAL
- A parameter of this service contained a value that was not valid.
- EMVSARMERROR
- An ARM error occurred. Refer to the return code for the specific error.
- EPERM
- The caller does not have the appropriate privileges. The return code is set to ARM_RC_AUTH_ERROR.
- EMVSSAF2ERR
- An error occurred in the security product.
Related information
- arm_bind_thread() — Bind the current thread to a given transaction
- arm_blocked() — Indicate the processing of a transaction is blocked
- arm_correlator_get_length() — Get the actual size of the transaction correlator
- arm_end_application() — Undefines an ARM application
- arm_get_correlator_max_length() — Get the max length of the transaction correlator
- arm_get_timestamp() — Get the current timestamp
- arm_init_application() — Defines an ARM application
- arm_init_transaction_type() — Defines and initializes an ARM transaction type
- arm_start_transaction() — Mark the start of an ARM transaction
- arm_unbind_thread() — Unbind the current thread to a given transaction
- arm_unblocked() — Indicate the processing of a transaction is no longer blocked
- arm_update_transaction() — Update a given transaction