Tracking JDBC calls with DataDirect driver

Out of the box the DataDirect driver comes with the Spy tool capability, allowing to trace calls in running programs.  In this blog entry, we will explain the configuration of this DataDirect JDBC driver in combination with the webMethods Integration Server.

  • Using the webMethods IntegrationServer’s Administrator UI go to Settings > JDBC Pools
  • In Pool Alias Definitions select the Pool Alias for which you want to enable DataDirect Spy tracing. Make sure the Associated Driver Alias is of type DataDirect Connect JDBC Oracle Driver
  • Take the selected JDBC Connection Pool Alias Definition in edit
  • Append string ;SpyAttributes=(log=(file)<location-spy-trace-output-file>;logTName=yes;timestamp=yes) to the Database URL.

o   Replace <location-spy-trace-output-file> with the location and filename of preference were the spy logging should be redirected to.             o   DataDirect Spy Attributes §  logTName={yes | no} Specifies whether DataDirect Spy logs the name of the current thread.When set to no (the initial default), DataDirect Spy does not log the name of the current thread. §  timestamp={yes | no} Specifies whether a timestamp should be included on each line of the DataDirect Spy log.When set to no (the initial default), DataDirect Spy does not include a timestamp on each line.More DataDirect Spy Attributes are available and can be found in the appropriate DataDirect reference documentation

  • Save your changes and restart the webMethods IntegrationServer before updated settings take effect.

Example Database URL:

jdbc:wm:oracle://oracle.integr8consulting.com:2849;SID=DVLUX001;LoginTimeout=120;wireprotocolmode=2;SpyAttributes=(log=(file)/opt/webMethods7/spylog/spy.log;logTName=yes;timestamp=yes)

Example Spy trace:


spy(Thread-112)(2011/07/15 12:59:10.413)>> Connection[3].prepareStatement(String sql)
spy(Thread-112)(2011/07/15 12:59:10.414)>> sql = SELECT EXCL_LOCK_ID, TARGET_ID, LOCK_HOLDER, LOCK_TYPE,
LOCK_SHARE_COUNT, LOCK_TIMESTAMP FROM WM_EXCL_DIST_LOCK WHERE LOCK_TIMESTAMP<? AND LOCK_TYPE=’E’
spy(Thread-112)(2011/07/15 12:59:10.414)>> OK (PreparedStatement[3])

spy(Thread-112)(2011/07/15 12:59:10.414)>> PreparedStatement[3].setLong(int

Author: Johan

blogger

blogger

Curious to know more about this topic?

Working at i8c

i8c is a system integrator that strives for an informal atmosphere between its employees, who have an average age of approx 30 years old. We invest a lot of effort in the professional development of each individual, through a direct connection between the consultants and the management (no multiple layers of middle management). We are based in Kontich, near Antwerp, but our customers are mainly located in the triangle Ghent-Antwerp-Brussels and belong to the top 500 companies in Belgium (Securex, Electrabel, UCB, etc…).

Quality Assurance

i8c is committed to delivering quality services and providing customer satisfaction. That’s why we invested in the introduction of a Quality Management System, which resulted in our ISO9001:2000 certification. This guarantees that we will meet your expectations, as a reliable, efficient and mature partner for your SOA & integration projects.

i8c - ISO9001-2015

Also worth reading

AWS AppFlow: Streamlining SaaS Integrations with AWS Services

In today’s digital world, organizations are constantly looking for ways to streamline their workflows and improve their data management processes. One of the key challenges that organizations face is integrating their various software as a service (SaaS) applications with their data management systems. This is

Read More »

Apigee Scope Validation using OpenAPI Specification

In API security and management, we often use a lot of different security mechanisms to protect the requested resource behind the API Gateway. One of these mechanisms is the validation of scopes to authorize a client on a specific sub-resource of the API. Most of

Read More »