Not a customer? Click the 'Start a free trial' link to begin a 30-day SaaS trial of our product and to join our community.
Existing Cisco AppDynamics customers should click the 'Sign In' button to authenticate to access the community
on 02-18-2015 01:46 PM - edited on 04-11-2018 04:34 PM by Nina.Wolinsky
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
BusinessWorks support requires version 3.9.6 or higher of the AppDynamics Java agent.
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"/>
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.
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:
Split rule: (see below for the values that are not showing completely in the screen shot).
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>
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
Thank you! Your submission has been received!
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form