J Diagnosing Problems with Oracle Service Bus

This appendix describes how to identify Service Bus problems and take the proper corrective actions with the assistance of the WebLogic Diagnostic Framework (WLDF) and the Oracle Fusion Middleware Diagnostic Framework (DFW).

This appendix includes the following sections:

J.1 About Diagnostics for Service Bus

Service Bus leverages Oracle's Diagnostic Framework (DFW) and WebLogic Diagnostic Framework (WLDF) to help you diagnose problems in Oracle Service Bus. WLDF lets you to monitor diagnostic scenarios using watches and notifications. DFW lets you gather diagnostic scenarios specific to Service Bus into data dumps that are formatted for viewing and analyzing.

WebLogic and SOA Suite both provide several predefined diagnostic dumps to help you with diagnostics. In addition, Service Bus supports the following diagnostic dumps:

  • Derived Resource Caches

  • JMS Request/Response Correlation Table

  • MQ Request/Response Correlation Table

For information about the diagnostic frameworks, watches, and notifications, see "Diagnosing Problems" in the Oracle Fusion Middleware Administrator's Guide. For information about using the diagnostic frameworks with SOA Suite (including generated dumps, setting up watches and notifications, and predefined diagnostic dumps), see "Diagnosing Problems with SOA Composite Applications" in Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite.

J.2 About the WebLogic Diagnostic Framework

WLDF is a monitoring and diagnostics framework included with Oracle WebLogic Server that defines and implements a set of services that run within server processes and participate in the standard server life cycle. With WLDF, you can capture diagnostic data and set watches and notifications when certain conditions occur. Use watches and notifications to collect diagnostic data to identify problems. This data enables you to isolate and diagnose faults when they occur.

For more information about WLDF, see Oracle Fusion Middleware Configuring and Using the Diagnostics Framework for Oracle WebLogic Server.

J.3 About the Automatic Diagnostic Repository

The Automatic Diagnostic Repository (ADR) is a file-based hierarchical repository for diagnostic data, such as traces and dumps. The Oracle Fusion Middleware components store all incident data in the ADR, and each Oracle WebLogic Server stores diagnostic data in subdirectories of its own home directory within the ADR. For more information about the ADR, see "Diagnosing Problems with SOA Composite Applications" in Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite.

J.4 Supported Oracle Service Bus Diagnostic Dumps

In addition to the diagnostic dumps available with Oracle WebLogic Server and Oracle SOA Suite, Service Bus supports the creation of the diagnostic dumps in Table J-1.

Table J-1 Supported Oracle Service Bus Diagnostic Dumps

Dump Description

OSB.derived-caches

A collection of statistics about all Service Bus derived resource caches on the server

OSB.jms-async-table

Service Bus JMS request/response correlation table

OSB.mq-async-table

Service Bus MQ request/response correlation table


J.4.1 Listing the Available Diagnostic Dumps

The Diagnostic Framework outputs and records the diagnostic dumps. You can list details about all the supported diagnostic dumps with the WLST listDumps and describeDump commands.

Note:

You must start WLST from MW_HOME/oracle_common/common/bin. Otherwise, the ODF functions are missing.

To list the supported dumps:

  1. Connect to the server on which the SOA Infrastructure is installed.

    wls:/offline> connect('user_name', 'password',
    't3://myhost:7001')
    Connecting to t3://myhost:8001 with userid user_name ...
    Successfully connected to managed Server 'soa_server1' that belongs to
    domain 'soainfra'.
    
  2. List the supported Diagnostic Framework dumps.

    wls:/soainfra/serverConfig> listDumps()
    odl.activeLogConfig
    jvm.classhistogram
    dms.ecidctx
    wls.image
    odl.logs
    dms.metrics
    odl.quicktrace
    http.requests
    jvm.threads
    
    Use the command describeDump(name=<dumpName>) for help on a specific dump.
    
  3. List the supported Oracle Service Bus dumps.

    wls:/soainfra/serverConfig> listDumps(appName='OSB')
    OSB.derived-caches
    OSB.jms-async-table
    OSB.mq-async-table
    
    Use the command describeDump(name='<dumpName>') for help on a specific dump.
    

    For more information about listDumps and describeDump, see "Diagnostic Framework Custom WLST Commands" in Oracle Fusion Middleware WebLogic Scripting Tool Command Reference.

    For more information about Diagnostic Framework dumps, see "Diagnosing Problems" in Oracle Fusion Middleware Administrator's Guide.

J.4.2 Derived Resource Caches Diagnostic Dumps (OSB.derived-caches)

Table J-2 provides details about Service Bus derived resource caches diagnostic dumps. The information captured includes the name of each cache type, statistical information for each cache, and information about each cached entry.

Table J-2 JMS Correction Table Diagnostic Dumps

Dump Name Dump Parameters/Dump Mode Information Captured

OSB.derived-caches

None

For each derived resource cache managed in the OSB runtime, the following information is provided:

  • Derived resource cache type

  • Product version

  • Total number of configured cache entries

  • Cache entries in use

  • Total hits to entries in the cache server since the server was last started

  • Total misses while trying to access cached information since the server was last started

  • Hit ratio of the cache sine the server was last started

For each cache entry, the following information is provided:

  • Ref that is being cached

  • Create date and time

  • Amount of time spent computing the cache entry. This is the time taken to create the cached information in milliseconds.


Table J-3 lists each Service Bus cache included in the diagnostic information.

Table J-3 Oracle Service Bus Derived Resource Caches

Cache Description

Archive ClassLoader

Dependency-aware archive class loaders.

Archive Summary

Archive summaries.

CodecFactory

Codec factories.

EffectiveWSDL

EffectiveWSDL objects that are derived from the service or WSDL resources of business or proxy services.

Flow_Info

Split-join objects.

LightweightEffectiveWSDL

EffectiveWSDL objects that are derived from the service or WSDL resources of business or proxy services.

MflExecutor

MFL executors.

RouterRuntime

Compiled router runtimes for proxy services.

RuntimeEffectiveWSDL

Session valid effectiveWSDL objects derived from the service or WSDL resources of business or proxy services.

RuntimeEffectiveWSPolicy

WS policies for business or proxy services.

SchemaTypeSystem

Type system information for MFL, XS, and WSDL documents.

ServiceAlertsStatisticInfo

Service alert statistics for business or proxy services.

ServiceInfo

Compiled service information for business or proxy services and for WSDL documents.

Wsdl_Info

WSDL information objects.

WsPolicyMetadata

Complied WS-Policy metadata.

XMLSchema_Info

XML schema information for XML schema objects.

XqueryExecutors

XQuery executors.

XsltExecutor

XSLT executors.

alsb.transports.ejb.
bindingtype

EJB binding information for EJB business services.

alsb.transports.jejb.business.
bindingtype

JEJB binding information for JEJB business services.

alsb.transports.jejb.proxy.
bindingtype

JEJB binding information for JEJB proxy services.


J.4.2.1 WLST Command Dump Description and Execution

  1. Enter the following WLST command line syntax to display a dump description of OSB.derived-caches:

    wls:/soainfra/serverConfig> describeDump(name='OSB.derived-caches',appName='OSB')
    

    The following information appears:

    Name: OSB.derived-caches
    Description: Dump of the caches used for OSB derived resources.
    Mandatory Arguments:
    Optional Arguments:
    
  2. Enter the following WLST command line syntax to execute a dump of OSB.derived-caches:

    wls:/soainfra/serverConfig> executeDump(name='OSB.derived-caches', appName='OSB')
    

    Information similar to the following appears (parts of this dump have been truncated for readability).

    <derivedCaches xmlns="http://www.bea.com/wli/config/xmltypes">
     <version>11.1.1.7</version> 
      <derivedCache cacheType="RuntimeEffectiveWSDL">
        <configuredEntries>2147483647</configuredEntries>
        <cacheEntriesInUse>0</cacheEntriesInUse>
        <totalHits>0</totalHits>
        <totalMisses>0</totalMisses>
        <hitRatio>0.0</hitRatio>
        <cacheEntries/>
      </derivedCache>
     ...
     <derivedCache cacheType="ServiceAlertsStatisticInfo">
        <configuredEntries>2147483647</configuredEntries>
        <cacheEntriesInUse>9</cacheEntriesInUse>
        <totalHits>0</totalHits>
        <totalMisses>51</totalMisses>
        <hitRatio>0.0</hitRatio>
        <cacheEntries>
            <cacheEntry>
                <ref>services/bs_dq_uri4.BusinessService</ref>
                <creationTime>2012-03-22T23:44:53.737-07:00</creationTime>
                <computeTimeMSecs>0</computeTimeMSecs>
            </cacheEntry>
            <cacheEntry>
                <ref>services/bs_dq_nopooling.BusinessService</ref>
                <creationTime>2012-03-22T23:44:53.736-07:00</creationTime>
                <computeTimeMSecs>0</computeTimeMSecs>
            </cacheEntry>
            <cacheEntry>
                <ref>services/bs_dq_uri1.BusinessService</ref>
                <creationTime>2012-03-22T23:44:53.738-07:00</creationTime>
                <computeTimeMSecs>0</computeTimeMSecs>
            </cacheEntry>
            <cacheEntry>
                <ref>services/proxy_dq_uri.ProxyService</ref>
                <creationTime>2012-03-22T23:44:53.736-07:00</creationTime>
                <computeTimeMSecs>0</computeTimeMSecs>
            </cacheEntry>
            <cacheEntry>
                <ref>services/bs_dq_conn_pooling.BusinessService</ref>
                <creationTime>2012-03-22T23:44:53.736-07:00</creationTime>
                <computeTimeMSecs>0</computeTimeMSecs>
            </cacheEntry>
            <cacheEntry>
                <ref>services/bs_dq_conn_nopooling.BusinessService</ref>
                <creationTime>2012-03-22T23:44:53.737-07:00</creationTime>
                <computeTimeMSecs>0</computeTimeMSecs>
            </cacheEntry>
            <cacheEntry>
                <ref>services/bs_dq_uri2.BusinessService</ref>
                <creationTime>2012-03-22T23:44:53.737-07:00</creationTime>
                <computeTimeMSecs>0</computeTimeMSecs>
            </cacheEntry>
            <cacheEntry>
                <ref>services/bs_dq_pooling.BusinessService</ref>
                <creationTime>2012-03-22T23:44:53.736-07:00</creationTime>
                <computeTimeMSecs>0</computeTimeMSecs>
            </cacheEntry>
            <cacheEntry>
                <ref>services/bs_dq_uri3.BusinessService</ref>
                <creationTime>2012-03-22T23:44:53.737-07:00</creationTime>
                <computeTimeMSecs>0</computeTimeMSecs>
            </cacheEntry>
        </cacheEntries>
     </derivedCache>
     ...
    </derivedCaches>
    

J.4.3 JMS Correlation Table Diagnostic Dumps (OSB.jms-async-table)

Table J-4 provides details about Service Bus JMS request/response correlation table diagnostic dumps. The information captured includes the correlation ID, expiration, and destination for each message.

Table J-4 JMS Correlation Table Diagnostic Dumps

Dump Name Dump Parameters/Dump Mode Information Captured

OSB.jms-async-table

None

In addition to the Service Bus version, the following information is provided for each pending message in each service reference:

  • Correlation ID (could be the actual correlation ID or a message ID)

  • Expiration date and time

  • Message destination


J.4.3.1 WLST Command Dump Description and Execution

  1. Enter the following WLST command line syntax to display a dump description of OSB.jms-async-table:

    wls:/soainfra/serverConfig> describeDump(name='OSB.jms-async-table',appName='OSB')
    

    The following information appears:

    Name: OSB.jms-async-table
    Description: Dump of the OSB JMS Async Table of pending messages
    Mandatory Arguments:
    Optional Arguments:
    
  2. Enter the following WLST command line syntax to execute a dump of OSB.jms-async-table:

    wls:/soainfra/serverConfig> executeDump(name='OSB.jms-async-table', appName='OSB')
    

    Information similar to the following appears:

    <transportDiagnosticsContents xmlns="http://www.bea.com/wli/sb/transportdiags">
     <version>11.1.1.7</version>
     <transportDiagnostics transportType="jms">
       <correlationTable>
         <services>
           <service>
             <ref>default/testJmsResponseRollback_out</ref>
             <message>
               <correlationMsgId responsePattern="JMSCorrelationID">
                 ID:42454153155cc06b7f5ab312000001363d5bd59effff8d4
               </correlationMsgId>
             <expirationTime>2012-03-22T19:53:43.621-07:00</expirationTime>
             <msgDestination>testJmsResponseRollback_outRequest</msgDestination>
             </message>
           </service>
         </services>
       </correlationTable>
     </transportDiagnostics>
    </transportDiagnosticsContents>
    

J.4.4 MQ Correlation Table Diagnostic Dumps (OSB.mq-async-table)

Table J-5 provides details about Service Bus MQ request/response correlation table diagnostic dumps. The information captured includes the correlation ID, expiration, and destination for each message.

Table J-5 MQ Correlation Table Diagnostic Dumps

Dump Name Dump Parameters/Dump Mode Information Captured

OSB.mq-async-table

None

In addition to the Service Bus version, the following information is provided for each pending message in each service reference:

  • Correlation ID (could be the actual correlation ID or a message ID)

  • Expiration date and time

  • Message destination


J.4.4.1 WLST Command Dump Description and Execution

  1. Enter the following WLST command line syntax to display a dump description of OSB.mq-async-table:

    wls:/soainfra/serverConfig> describeDump(name='OSB.mq-async-table',appName='OSB')
    

    The following information appears:

    Name: OSB.mq-async-table
    Description: Dump of the OSB MQ Async Table of pending messages
    Mandatory Arguments:
    Optional Arguments:
    
  2. Enter the following WLST command line syntax to execute a dump of OSB.mq-async-table:

    wls:/soainfra/serverConfig> executeDump(name='OSB.mq-async-table', appName='OSB')
    

    Information similar to the following appears:

    <transportDiagnosticsContents xmlns="http://www.bea.com/wli/sb/transportdiags">
     <version>11.1.1.7</version>
     <transportDiagnostics transportType="mq">
       <correlationTable>
         <services>
           <service>
             <ref>services/mq_Biz_cached</ref>
             <message>
               <correlationMsgId responsePattern="MQCorrelationID">
                 000000000000000000000000000000000000000000000000
               </correlationMsgId>
               <expirationTime>2012-03-22T23:48:09.085-07:00</expirationTime>
               <msgDestination>rc_req</msgDestination>
             </message>
           </service>
         </services>
       </correlationTable>
     </transportDiagnostics>
    </transportDiagnosticsContents>
    

J.5 Generating the Diagnostic Dump Using RDA

In addition to generating Service Bus diagnostic dumps using WSLT, you can also use Oracle Remote Diagnostic Agent (RDA). Before performing the following steps, make sure RDA is installed on your system.

Tip:

For more information about using RDA for Service Bus, refer to the knowledge base article, "How to Collect Analysis Information using RDA for Oracle Service Bus (OSB)," on Oracle support. The ID for this document is 1352549.1.

To generate a diagnostic dump using RDA

  1. From a command line, run the following command:

    For Windows:

    rda.cmd -vSCRP OSB
    

    For UNIX or LINUX:

    rda.sh -vSCRP OSB
    
  2. Enter information as prompted on the command line. When asked whether you want RDA to collect Oracle Service Bus information, accept the default (Y).

    Note:

    For more information about running the RDA tool and the options, see the readme file in the RDA directory in your Fusion Middleware home directory.
  3. You can display the results in your web browser. Access the file from the output directory you specified.

    The name of the file is prefix__start.htm, where prefix is the prefix you specified.