Troubleshoot performance in Siebel EAI

The following steps can be used to debug and increase EAI Siebel Adapter performance related issues:

1. To improve the performance of integration objects:

  • Select only the desired Business Components to create Integration Object, as it will help to reduce the amount of work done by the EAI Siebel Adapter for each operation.
  • Inactivate all unnecessary fields and components in integration objects.
  • Re-examine any fields in the underlying business component that are
    force-active. Such fields are processed during integration even if they are not
    included in the integration component. Please consider removing the
    force-active specification from such fields, unless absolutely needed.


2. QueryPage is another performance feature.

The QueryPage method returns a subset of records for a query request, as specified by the PageSize and the StartRowNum method arguments. Use additional parameters such as SearchSpec, SortSpec, and ViewMode respectively to modify the SearchSpecification, SortSpecification and visibility mode used by the method.

Use the QueryPage method to limit the number of the records returned by the query to improve performance. Even though the QueryPage returns a limited number of records, it keeps all the data in the cache, which can then be retrieved by calling the EAI Siebel Adapter with the same PageSize, SearchSpecification, and SortSpecification and Visibility mode.

3. If this behavior can be reproduced, users can also enable EAI Siebel Adapter performance component events to determine which specific operations are slow.

To set tracing on the dedicated Client: -

a. Set the SIEBEL_LOG_EVENTS environment variable:
set SIEBEL_LOG_EVENTS=detail

OR only related events to Siebel Adapter can be set as follows: -

set SIEBEL_LOG_EVENTS=EAISiebelWizard=5,EAISiebAdptSvcArgTrc=5,EAISiebAdpt=2,
GenericLog=5,EAISiebAdptPerf=3,SqlParseandExecute=3

Set SIEBEL_LOG_DIR=d:\sea80\client\log (or any directory of your choice)

b. Run the application from command prompt:
c:\sea\bin\siebel.exe /c siebel.cfg /d server /u sadmin /p sadmin /s sql.out

4. If the zero-foot print client or thin client is used, enable component event tracing on the object manager being used. For example, if testing using the Call Center Object Manager, enable tracing for the Call Center Object manager (SCCObjMgr_enu). If testing with HTTP inbound request, enable tracing for the EAI Object Manager:

a. Navigate to Site Administration > Administration - Server Configuration > Servers
b. In the "Components" applet, select the relevant server component.
c. In the lower applet, select "Events" and set the following component events to 4:

  • EAI Siebel Adapter
  • EAI Siebel Adapter Performance
  • EAI Transport Performance
  • General Event
  • Performance Event
  • SQL Parse and Execute
  • Workflow Performance

OR Set the component events tracing in Command line (srvrmgr).
For each one of these events, run the following command and specify the event:

Change evtloglvl <event>=4 for comp <eaiobjmgr_enu>

Example: - Change evtloglvl EAISiebAdpt = 4 for comp sccobjmgr_enu

Here are the events' aliases:

  • EAISiebAdpt
  • EAISiebAdptPerf
  • EAITransportPerf
  • GenericLog
  • Performance
  • SQLParseAndExecute
  • WfPerf

Note: the events to be trace will be different depending upon which step needs to be traced.

Also note that setting the logging at level 4 or 5 can have significant performance overhead itself. So, it should be used only after a performance problem has been identified, and the minimum amount necessary to reproduce the problem. For example, if tracking a performance problem, skip the other events (such as Workflow Step). To get the SQL, avoid using both SQLParseAndExecute and ObjMgrSQLLog as that duplicates the amount of SQL being logged.

Other performance events that may be helpful depending on the EAI implementation:

  • EAIOrclRcvr - EAI Oracle Receiver Performance Event
  • EAISAPIdocAdpt - EAI SAP IDOC Adapter Performance Events
  • EAISqlAdpt - Performance Statistics Event Types for the SQL Adapter
  • WebSvcPerf - Web Service Performance Event Type

5. Interpreting the data with performance events.

The EAISiebAdptPerf and EAITransportPerf can provide more information for about the transport performance.

Below is example that demonstrates how to interpret the results.5. All times are in milliseconds,

Example 1:

EAISiebAdptPerf     EAISiebAdptPerfStat     3     2002-10-11 15:41:31     Perf Account|UpdateRecord|1|1

The way to read this output is: Business Component| Operation| number of record processed during this Siebel Adapter invocation| number of milliseconds this Siebel Adapter invocation processing took (gross number, including any waiting time).

So for above example Account Business Component is been updated and it took 1 millisecond to process 1 records.

Example 2:

EAISiebAdptPerf     EAISiebAdptPerfStat     3     2002-10-11 15:41:31     Perf Account|Execute|1|17
In the above example, executing a query on Account Business Component and it took 17ms to retrieve 1 record.

Example 3:

EAISiebAdptPerf     EAISiebAdptPerfStat     3     2002-10-11 15:41:31     Perf Action|NewRecord|1|75

In this example, it took 75 milliseconds to create one new record for Perf Action.

Example 4:

WfPerf     Proc     4     2002-10-11 15:41:31     ProcessName|NumProcessed|TotalTimeForProcess
WfPerf     Proc     4     2002-10-11 15:41:31     Perf EAI MQReceive Process|1|189

These two lines together indicate the amount of time it took to run a workflow process. The workflow process name is "Perf EAI MQReceive Process" and it took it 189 seconds to run the entire process.

Example 5:

EAITransportPerf     EAITransportPerf     5     2002-10-11 15:41:31     Dispatched Request successfully|191

EAITransportPerf     EAITransportPerf     5     2002-10-11 15:41:31     Committed Siebel Transaction|0

EAITransportPerf     EAITransportPerf     5     2002-10-11 15:41:31     Sent Response|38

These three lines above record the amount of time the transport layer (MQSeries Transport in this example) took to dispatch the workflow process, commit the transaction and send the response to another queue.

Tags
Recent content