General Requirements
-
DB2 Distributed Version 8.2 (or 8.1 FP11)
- Only non-zos DB2 8.2+ supports ARM, and it supports ARM v4
-
Websphere Application Server 5.1 or higher
- Only Websphere can pass correlators to DB2, and DB2 will not issue ARM calls unless a correlator is received for the connection.
Step 1: ITCAM for Transactions 7.1- Install the Transaction Collector Agent
The Transaction Collector agent is the agent that supports monitoring ARM instrumented applications. Installing it automatically installs support for all ARM instrumented applications (TU is it's prefix as you will see in paths below). This agent replaces the previous 6.2 Client Response Time agent for monitoring ARM applications (though similar steps can be used to configure the CRT agent to monitor ARM also, if you want the CRT workspaces instead or in addition to the Transaction Collector Workspaces).
Step 2: Configure Websphere
-
In the picture above you need to do the following:
- Check the box labeled "Prepare Servers for Request metrics collection"
- Select "All" Radio button under "Components to be instrumented".
- Set the Trace Level
- HOPS - Preferred Level
- Generates instrumentation information on process boundaries only (for example, at the entry and exit points for the Web container).
- Generates instrumentation information on process boundaries only (for example, a servlet request coming from a browser or a Web server and a JDBC request going to a database).
- Performance_Debug
- Generates one additional level of instrumentation data, whereas debug generates detailed instrumentation data.
- Generates the data at Hops level and the first level of the intra-process servlet and Enterprise JavaBeans (EJB) call (for example, when an inbound servlet forwards to a servlet and an inbound EJB calls another EJB). Other intra-process calls like naming and service integration bus (SIB) are not enabled at this level
- Debug
- Provides detailed instrumentation data, including response times for all intra-process servlet and Enterprise JavaBeans (EJB) calls.
- Provides detailed instrumentation data, including response times for all intra-process calls. Note: Requests to servlet filters will only be instrumented at this level.
- Check the box under "Request Metrics Destination" labeled "Application Response Measurement (ARM) agent".
- Select Agent Type ARM40.
- type in "com.ibm.tivoli.transperf.arm4.transaction.Arm40TransactionFactory" in the edit box labeled "ARM transaction factory implementation class name".
-
Set a custom property (Application Servers->server1->ProcessDefinition->Java Virtual Machine -> Custom Properties) of ws.ext.dirs equal to the values below ( which will include the armjni4.jar file) – Key is to have ws.ext.dirs point to where the armjni4.jar file is located at.

-
You also have to set your LIBRARY PATH before starting WebSphere to point to the ITM framework libraries, the ARM libraries, and the TTAPI libraries as noted below.
ITCAM for Transactions 7.1 only
-
Setup websphere to include the armjni4.jar file in it's library path. $ITMHOME defaults to c:\ibm\itm for windows and /opt/IBM/ITM/ for unix.
-
Windows - set ws.ext.dirs $ITMHOME\tmaitm6\tusupport
-
Linux - $ITMHOME/li6263/tu/tusupport
-
AIX - $ITMHOME/aix533/tu/tusupport/
-
HPUX - $ITMHOME/hp11/tu/tusupport/
-
Solaris - $ITMHOME/sol293/tu/tusupport/
-
Unix only, windows does this during installation: Set CANDLE_HOME to the ITM base installation directory. This is normally /opt/IBM/ITM/.
-
Set your LD_LIBRARY_PATH to include the ARM libraries (before running ./startServer.sh on unix to start Websphere)
-
Windows - You can skip this step since ITM automatically includes c:\ibm\itm\tmaitm6\ in your system path. You might need to reboot for it to take effect if you haven't rebooted since you first installed ITM framework.
-
Linux - Set your LD_LIBRARY_PATH= $ITMHOME/li6263/tu/tusupport:$ITMHOME/li6263/tu/lib/:$ITMHOME/tmaitm6/lib/li6263/
-
AIX - Set your LIBPATH= $ITMHOME/aix533/tu/tusupport:$ITMHOME/aix533/tu/lib/:$ITMHOME/tmaitm6/aix533/lib/
-
HPUX - Set your SHLIB_PATH= $ITMHOME/hp11/tu/tusupport/:$ITMHOME/hp11/tu/lib/:$ITMHOME/tmaitm6/hp11/lib/
-
Solaris - Set your LD_LIBRARY_PATH= $ITMHOME/sol293/tu/tusupport/:$ITMHOME/sol293/tu/lib/:$ITMHOME/tmaitm6/sol283/lib/
ITCAM for RT 6.2
-
Setup websphere to include the armjni4.jar file in it's library path. $ITMHOME defaults to c:\ibm\itm for windows and /opt/IBM/ITM/ for unix.
-
Windows - set ws.ext.dirs $ITMHOME\tmaitm6\t4\lib
-
Linux - $ITMHOME/li6243/kt4/lib/
-
AIX - $ITMHOME/aix51/kt4/lib/
-
HPUX - $ITMHOME/ hpx1111/kt4/lib/
-
Solaris - $ITMHOME/ sol283/kt4/lib/
-
Set your LD_LIBRARY_PATH to include the ARM libraries (before runing ./startServer.sh on unix)
-
Windows - You can skip this step since ITM automatically includes c:\ibm\itm\tmaitm6\ in your system path. You might need to reboot for it to take effect if you haven't rebooted since you first installed ITM framework.
-
Linux - Set your LD_LIBRARY_PATH= $ITMHOME/li6243/kt4/lib/:$ITMHOME/tmaitm6/li6243/lib/
-
AIX - Set your LIBPATH= $ITMHOME/aix51/kt4/lib/:$ITMHOME/tmaitm6/aix51/lib/
-
HPUX - Set your SHLIB_PATH= $ITMHOME/hpx1111/kt4/lib/:$ITMHOME/tmaitm6/hpx1111/lib
-
Solaris - Set your LD_LIBRARY_PATH= $ITMHOME/sol283/kt4/lib/:$ITMHOME/tmaitm6/sol283/lib/
ITCAM for RTT 5.3, 6.0, 6.1 only
-
Setup websphere to include the armjni4.jar file in it's library path. $MAHOME defaults to c:\Program files\IBM\Tivoli\MA for windows and /opt/IBM/tivoli/MA for unix.
-
ws.ext.dirs=$MAHOME\lib
- Set your LD_LIBRARY_PATH to include the ARM libraries
-
Windows – set your PATH to include $MAHOME\bin\w32-ix86\SYSTEM32\
-
Linux x86- set LD_LIBRARY_PATH to $MAHOME/bin/linux-ix86/USRLIB/
-
Linux PPC - set LD_LIBRARY_PATH to $MAHOME/bin/linux-ppc/USRLIB/
-
Linux s390 - set LD_LIBRARY_PATH to $MAHOME/bin/linux-s390/USRLIB/
-
AIX - set LIBPATH to $MAHOME/bin/aix4-r1/USRLIB/
-
HPUX - set SHLIB_PATH to $MAHOME/bin/hpux10/USRLIB/
-
OS/400 - set LIBPATH to $MAHOME/bin/os400/USRLIB/
-
Solaris2 - set LD_LIBRARY_PATH to $MAHOME/bin/solaris2/USRLIB/
Required for All Versions
-
Configure request metrics
-
Detail Level you want (Monitoring and Tuning -> Request Metrics)
The detail level you want:
-
HOPS – Entry and exit only. Lowest overhead and only gives overall transaction performance.
-
Performance_DEBUG – Medium overhead and higher detail. Includes Session Beans etc.
-
DEBUG – Highest overhead and the most detail. Gives Entity bean get/set timings
-
Set the Request metrics destination to ARM agent
-
Set the agent type to ARM4
-
Set the ARM factory to com.ibm.tivoli.transperf.arm4.transaction.Arm40TransactionFactory
-
To enable correlator passing to DB2 (required for DB2 to issue ARM calls) do the following
define this custom JVM property: com.ibm.websphere.pmi.reqmetrics.PassCorrelatorToDB to true;
To set custom properties, you can either specify the command as a -D option to the Java™ command, or connect to the administrative console and navigate to the Java virtual machine custom properties panel:
Application server Servers > Application Servers > server1, and then, under Server Infrastructure, click Java and Process Management > Process Definition > Java Virtual Machine > Custom Properties
Custom Properties Documentation
-
Restart websphere.
-
Websphere should now be issuing ARM calls when you navigate through it's servlets. Additionally it should be passing correlators to DB2.
Step 3: Configure IHS
Setting up IHS to issue ARM calls is pretty easy, after configuring Websphere all you need to do is regenerate and and redeploy your IHS plugin configuration and it will be configured to issue ARM calls.
Step 4: Configure DB2 for ARM support
DB2 register with ARM if it finds a libarm4.dll (.a/.so) in it's LIBPATH. In order to issue actual start/stop calls for transactions it requires a correlator be passed in with the JDBC connection, which we configured above inside of WAS. To configure the DB2 LIBPATH issue the following command from within the DB2 environment:
db2set DB2LIBPATH=<libarm4.dll directory location>
Where <libarm4.dll directory location> is equal to one of the paths below (
-
-
ITCAM for Transactions 7.1 – $ITMHOME defaults to c:\ibm\itm for windows and /opt/IBM/ITM/ for unix.
- Windows - You can skip this step since ITM automatically includes c:\ibm\itm\tmaitm6\ in your system path. You might need to reboot for it to take effect if you haven't rebooted since you first installed ITM framework.
- Linux - $ITMHOME/li6263/tu/tusupport:$ITMHOME/li6263/tu/lib/:$ITMHOME/tmaitm6/lib/li6263/
- AIX - $ITMHOME/tmaitm6/aix533/lib/
- HPUX - $ITMHOME/hp11/tu/tusupport/:$ITMHOME/hp11/tu/lib/:$ITMHOME/tmaitm6/hp11/lib/
- Solaris - $ITMHOME/sol293/tu/tusupport/:$ITMHOME/sol293/tu/lib/:$ITMHOME/tmaitm6/sol293/lib/
- ITCAM for RT 6.2 – $ITMHOME defaults to c:\ibm\itm for windows and /opt/IBM/ITM/ for unix.
- Windows - $ITMHOME\tmaitm6\
-
Linux - $ITMHOME/li6243/t4/lib/:$ITMHOME/tmaitm6/li6243/lib/
-
AIX - $ITMHOME/aix51/t4/lib/:$ITMHOME/tmaitm6/aix51/lib/
-
HPUX - $ITMHOME/ hpx1111/t4/lib/:$ITMHOME/tmaitm6/hpx1111/lib/
-
Solaris - $ITMHOME/sol283/t4/lib/:$ITMHOME/tmaitm6/sol283/lib/
-
ITCAM for RTT 5.3, 6.0, 6.1 - $MAHOME defaults to c:\Program files\IBM\Tivoli\MA for windows and /opt/IBM/tivoli/MA for unix.
-
Windows - $MAHOME\bin\w32-ix86\SYSTEM32\ AND $MAHOME\lib
-
Linux x86- $MAHOME\bin\linux-ix86\USRLIB\ AND $MAHOME\lib
-
Linux PPC - $MAHOME/bin/linux-ppc/USRLIB
-
Linux s390 - $MAHOME/bin/linux-s390/USRLIB
-
AIX - $MAHOME/bin/aix4-r1/USRLIB/
-
HPUX - $MAHOME/bin/hpux10/USRLIB/
-
OS/400 - $MAHOME/bin/os400/USRLIB
-
Solaris - $MAHOME/bin/solaris2/USRLIB/