Agent reference
This chapter provides a quick reference to the MyARM agent bindings and describes possible error codes and log messages.
Java Language Binding
Error return codes
The following error codes apply only to the MyARM Java agent. Additionally error codes from the MyARM C agent can be returned from the Java agent since MyARM Java agent is JNI based. This is indicated by an JNI error: prefix.
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_TRAN_DEF
(-6)- An
ArmTransaction
,ArmTranReport
or anArmTransactionWithMetrics
was created with a nullArmTransactionDefinition
instance. MYARM_ERROR_NO_APP_DEF
(-11)- An
ArmTransactionDefinition
or anArmMetricDefinition
was created with a nullArmApplicationDefinition
instance. MYARM_ERROR_NO_NAME
(-13)- Either creating an
ArmApplicationDefinition
,ArmTransactionDefinition
or anArmMetricDefinition
the mandatory name was not provided (null pointer). MYARM_ERROR_INVALID_METRIC_FORMAT
(-14)- The
ArmMetric
andArmMetricDefinition
does not match or is unknown. MYARM_ERROR_NO_ARRAY
(-18)- A null byte array was passed to the constructor of
ArmID
or to thesetBytes()
ofArmToken
. MYARM_ERROR_NO_APP
(-19)- A null application instance was passed to the constructor of
ArmTranReport
,ArmTransaction
orArmTransactionWithMetrics
. MYARM_ERROR_INVALID_LENGTH
(-20)- A null application instance was passed to the constructor of
ArmTranReport
,ArmTransaction
orArmTransactionWithMetrics
. 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_ALIEN_OBJECT
(-22)- Attempt to use an object from a different ARM implementation. This mostly fails because this implementation relies on opaque characteristics of its own implementation objects. Object-level interoperability with other ARM implementations is not provided here.
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_JNI_INVALID_ARG
(-30)- Within the Java JNI code an invaid argument was detected. Please report this error code to the MyARM support.
MYARM_ERROR_JNI_CLASS_NOT_FOUND
(-31)- Within the Java JNI code a required MyARM java class could not be found. Please make sure you provided the current myarm.jar to the JVM. If the myarm.jar and MyARM C agent are from the same version please report this error code to the MyARM support.
Creating ARM 4.0 objects
The Java language binding standard defines a vendor independent way for creating ARM objects. Within ARM 4.0 there are three factory classes a ARM implementation has to provide. The class names of these factory classes are provided by the Java property concept. To use MyARM ARM 4.0 java agent please use the following factory class names:
- Arm40.ArmTransactionFactory
com.myarm.arm40.ArmTransactionFactoryImpl
- Arm40.ArmTranReportFactory
com.myarm.arm40.ArmTranReportFactoryImpl
- Arm40.ArmMetricFactory
com.myarm.arm40.ArmMetricFactoryImpl
MyARM ARM 4.0 jar file
Once you configured the MyARM specific factory names you need to
provide the MyARM implementation classes to the java virtual
machine. This is done by appending the MyARM JAR
(myarm.jar
) archive to the CLASSPATH
environment variable.
export CLASSPATH=$CLASSPATH:$MYARM_ROOT/lib/jar/myarm.jar