Agent reference

Documentation / C/C++ Edition / User Guide / Appendix / Agent reference
 

This chapter provides a quick reference to the MyARM agent bindings and describes possible error codes and log messages.

C Language Binding

The ARM 4.0 C language binding defines error level return codes (negative) and warning level return codes (positive). The following sections describe the possible MyARM return codes:

Error return codes

MYARM_ERROR_NONE (0)
This is not really an error code; it indicates that the operation succeeded successfully.
MYARM_ERROR_NO_MEMORY (-1)
MyARM tried to allocate some memory but this failed.
MYARM_ERROR_NO_OUTPUT_ID (-2)
The pointer to the output arm_id_t is null in one the following API calls:
MYARM_ERROR_NO_OUTPUT_HANDLE (-3)
The output handle in one of the following API calls was null:
MYARM_ERROR_NO_OUTPUT_CORR (-4)
The pointer to the output correlator was null in the arm_generate_correlator() API call.
MYARM_ERROR_NO_OUTPUT_VAR (-5)
The pointer to the output variable was null in one of the following API calls:
MYARM_ERROR_NO_TRAN_DEF (-6)
A null pointer transaction id was passed to one of the following API calls:
MYARM_ERROR_INVALID_APP_HANDLE (-7)
One of the following API calls were called with an invalid application start handle:

This can be the case if an uninitialized handle is used (e.g. application was not started) or the appropriate application was stopped before (passing a handle a second time to arm_stop_application() is an error).

MYARM_ERROR_INVALID_TRAN_HANDLE (-8)
One of the following API calls was called with an invalid transaction start handle:

This can be the case if an uninitialized handle is used (e.g. transaction was not started) or the appropriate transaction was stopped before (passing a handle a second time to arm_stop_transaction() is an error).

MYARM_ERROR_NO_CORR (-9)
The arm_get_correlator_flags() was called with a null pointer for the correlator.
MYARM_ERROR_INVALID_ENCODING (-10)
The arm_register_application() was called with a charset that is not supported by MyARM.
MYARM_ERROR_NO_APP_DEF (-11)
The arm_start_application() was called with null pointer for the application id.
MYARM_ERROR_NOT_IMPLEMENTED (-12)
This error code is returned by any ARM 4.0 C API call when MyARM could not be initialized correctly. This is an indication of a misconfiguration of MyARM. Be sure all needed environment variables are correctly set.
MYARM_ERROR_NO_NAME (-13)
The mandatory name was not provided (null pointer) to one of the following API calls:
MYARM_ERROR_INVALID_METRIC_FORMAT (-14)
Either the arm_register_metric() was called with an invalid metric format or the metric format of a metric passed within the arm_subbuffer_metric_values_t on the following functions does not match its metric binding:
MYARM_ERROR_INVALID_METRIC_USAGE (-15)
The arm_register_metric() was called with an invalid metric usage.
MYARM_ERROR_INVALID_APP_ID (-16)
An invalid application id was passed to one of the following API calls:

This is often the case if arm_register_application() failed for some reason.

MYARM_ERROR_INVALID_TRAN_ID (-17)
An invalid transaction id was passed to one of the following ARM 4.0 API calls:

This is often the case if arm_register_transaction() failed for some reason. Or when using the ARM 2.0 API and an invalid transaction id was passed to arm_start().

MYARM_ERROR_INVALID_INDEX (-21)
Context values and metrics are managed as arrays within the MyARM agent. An index passed to MyARM was out of bounds.
MYARM_ERROR_LIMIT_REACHED (-23)
MyARM tried to get a resource but the limit for the resource (transaction instance or metric instance) was reached.
MYARM_ERROR_INVALID_START_HANDLE (-24)
One of the following ARM 2.0 API calls was called with an invalid start handle:

This can be the case if an uninitialized handle is used (e.g. transaction was not started) or the appropriate transaction was stopped before (passing a handle a second time to arm_stop() is an error).

MYARM_ERROR_INVALID_DATA_BUFFER_FORMAT (-25)
One of the following ARM 2.0 API calls was called with an invalid data buffer format:

This can be the case if an uninitialized data buffer is used.

MYARM_ERROR_INVALID_API_CALL (-26)
An ARM 4.0 API function was called before any application definition was registered (arm_register_application()) or after the last application definition was destroyed (arm_destroy_application()).
MYARM_ERROR_INVALID_CURRENT_CORRELATOR (-28)
arm_report_transaction() was called with an invalid current correlator. The transaction was dropped.
MYARM_ERROR_INVALID_BLOCK_HANDLE (-29)
The arm_unblock_transaction() method was called with an invalid block handle. It seems that there is a arm_block_transaction() call missing or the block handle is invalid.
MYARM_ERROR_JNI_INVALID_ARG (-30)
MYARM_ERROR_JNI_CLASS_NOT_FOUND (-31)

Warning return codes

MYARM_WARNING_UNKNOWN_SUBBUFFER (1)
An unknown sub-buffer was passed to one of the ARM 4.0 C-API calls.
MYARM_WARNING_DIAG_DETAIL_WITH_GOOD_STATUS (2)
A diagnostic detail sub-buffer was passed to arm_stop_transaction() call, although the transaction status was good. This is not supported as specified by the standard.
MYARM_WARNING_NOT_STARTED (3)
arm_stop_transaction() was called but the transaction was not started by MyARM. This can be the case if something failed within arm_start_transaction. For example in low memory situations transactions are not started.
MYARM_WARNING_PROPERTY_COUNT_TOO_LARGE (6)
An arm_subbuffer_tran_context_t sub-buffer was passed to the following ARM API functions and the property count field was too large:
MYARM_WARNING_INVALID_PARENT_CORRELATOR (10)
arm_report_transaction() or arm_start_transaction() was called with an invalid parent correlator.