Knowledge Base

cancel
Showing results for 
Search instead for 
Did you mean: 

Instrumenting TIBCO ActiveMatrix BusinessWorks

This article represents the latest collected set of wisdom from AppDynamics field engineers.

 

For information on how to configure the Java Agent with TIBCO, see Configure the Java Agent for TIBCO BusinessWorks

 

Required Agent version

BusinessWorks support requires version 3.9.6 or higher of the AppDynamics Java agent. 

 

To get visibility of database calls

AppDynamics provides agent node properties that can be used to detect and instrument JDBC backends that are not detected automatically.  The node properties are described here: Knowledge-Base: Using Node Properties to Detect JDBC Backends. You access the Node Dashboard to edit the value of these properties. Use these steps: Edit Registered Node Property.

 

Tip: Separate multiple class names using a ',' (comma) as a separator in the agent node properties configuration.

 

For Tibco,  use the following JDBC node property values: 

 

jdbc-statements: value="tibcosoftwareinc.jdbc.base.BaseStatement,tibcosoftwareinc.jdbc.base.BaseCallableStatement,tibcosoftwareinc.jdbcx.base.BaseStatementWrapper,tibcosoftwareinc.jdbc.base.BasePreparedStatementPoolable"

 

jdbc-connection:

value="tibcosoftwareinc.jdbcx.base.BaseConnectionWrapper,tibcosoftwareinc.jdbc.base.BaseConnection

 

jdbc-prepared-statements:

value="tibcosoftwareinc.jdbc.base.BaseStatement,tibcosoftwareinc.jdbc.base.BaseCallableStatement,tibcosoftwareinc.jdbcx.base.BasePreparedStatementWrapper,tibcosoftwareinc.jdbc.base.BasePreparedStatementPoolable"

 

jdbc-callable-statements: value="tibcosoftwareinc.jdbc.base.BaseCallableStatement,tibcosoftwareinc.jdbcx.base.BaseCallableStatementWrapper,tibcosoftwareinc.jdbc.base.BaseCallableStatementPoolable"/> 

 

To track jobs through BusinessWorks

The following configuration is provided out-of-the-box in AppDynamics release 3.9.7+ and 4.0+. You do  not need to change the app-agent-config.xml file unless your agent is 3.9.6 or earlier or you retained your existing, pre-4.0 app-agent-config.xml file after upgrading to 4.0.   <<<< This should be rare.

 

For 3.9.6 or earlier agent, or if you retained your existing, pre-4.0 app-agent-config.xml file after upgrading to 4.0, you need to revise the configuration manually as shown here:

 

1. Locate and open for the app-agent-config.xml file for editing.

2. Make these changes in app-agent-config.xml: 

 

   a. Add the following to the  <fork-config> element:

 

<!-- special config for tibco -->
<job>
<match-class type="matches-class">
<name filter-type="EQUALS" filter-value="com.tibco.pe.core.Job"/>
</match-class>
<match-method>
<name filter-type="EQUALS" filter-value="k"/>
</match-method>
<name-config operation="" type="4"/>
<retention-config type="1" operation="1.getTaskSize()"/>
</job>

 

    b. Uncomment this additional node property to allow detection of incoming JMS messages:

 

<!-- uncomment the following to enable transaction correlation for jms .receive() call, default value is false -->
<property name="enable-jms-receive-correlation" value="true"/> 

 

    c. Add the following entry to the <fork-config> element of app-agent-config.xml:

 

<excludes filter-type="STARTSWITH" filter-value="com.tibco.plugin.share.jms.impl.JMSReceiver$SessionController”/>

 

3. Add the attached custom-interceptors.xml file to the <app-agent-install>/conf/ directory.

 

To split SOAP/HTTP invocations by the SOAP action

Many incoming SOAP actions that are sent via HTTP requests hit a single URL (for example, the URLs start with something like /BusinessServices/WebGateway) so you need a POJO split rule as shown in the two following screen shots.

 

Match rule:

 

image2014-6-17 18_54_42.png

 

Split rule: (see below for the values that are not showing completely in the screen shot).

 

split-rule.png

 

POJO Method Call values:

Class Name = com.tibco.bw.service.binding.soap.http.SoapHttpTransportApplication

Method Name = processMessage

Method Call Chain = getTransportContext().getSoapAction()

 

results in the following XML

 

<custom-match-point-definition transaction-entry-point-type="SERVLET">
<name>get soap action</name>
<custom-business-transaction-name>get soap action</custom-business-transaction-name>
<background>false</background>
<enabled>true</enabled>
<match-rule>
<servlet-rule>
<enabled>true</enabled>
<priority>50</priority>
<uri filter-type="STARTSWITH" filter-value="/BusinessServices/WebGateway"/>
<properties/>
<generic-method-config>
<class-name>com.tibco.bw.service.binding.soap.http.SoapHttpTransportApplication</class-name>
<method-config>
<name>processMessage</name>
<param-length>1</param-length>
<param-index>0</param-index>
<param-getter>getTransportContext().getSoapAction()</param-getter>
</method-config>
</generic-method-config>
</servlet-rule>
</match-rule>
</custom-match-point-definition>

 

If things don't seem to be working

In this case, the TIBCO code is obfuscated.  You may be dealing with a different TIBCO BW release, and some of the configuration referencing TIBCO classes may need to change. Contact AppDynamics Support for additional assistance.

 

Also see: Tibco ActiveMatrix BusinessWorks Service Engine Settings

Version history
Revision #:
11 of 11
Last update:
‎04-11-2018 04:34 PM
Updated by:
 
Labels (1)
Tags (2)