This content has been marked as final. Show 3 replies
You should measure/monitor the time taken in processing at each level. There are two ways to do it -
1. Performance test, each and every part, separately
2. Use below mechanisms for finding the processing time at all layers -
a) At OSB, you may enable the action level monitoring and at OSB Dashboard, you may find out the average processing time of each service and action.
b) At B2B layer, you may query b2b_instancemessage view(column PROCESSING_TIME) for each and every transaction and calculate the average processing time. Alternatively, you may use the B2B Metrics -
c) At SOA layer, again use the runtime tables (composite_instance and cube_instance) to calculate the average processing time or use the EM console.
Thanks for the reply. After following your approach, I see that the JMS part is working fine, but the messages are being batched in B2BEventQueue. Based on information from other blogs i found that b2b.inboundthreadCount, b2b.outboundThreadCount, b2b.defaultThreadCount values have to be set to improve the performance. I have set these thread counts to 4,4,2 respectively and ran some load testing. I see that message processing time in B2B has now come down to 2-4 seconds. Is it still possible to refine this processing by tuning some other parameters? I am executing the tests with a 6 KB EDIFACT message.
You may refer -
Few basic recommendations -
1. Domain must be running in production mode
2. Both server and component level logging should be set to error/warning to avoid excessive logging
3. Monitor DB and make sure that SQL's are performing good (You will need AWR and ASH reports of DB for this. You may take help from any DBA in your org)
4. SOA must be running in a cluster and all the servers of the cluster must be up and running
5. Monitor the data-sources (specially SOA datasource) and make sure that enough connections are available to handle the load
6. Make sure that JTA timeout and XA transaction timeout (set in data-source) are set to a proper value (Weblogic JTA timeout< DataSource XA Transaction Timeout < DB distributed_lock_timeout)
7. It is recommended to use Exalogic and Oracle RAC DB for high volume production deployments
I believe that if all above points are taken care of then B2B should be able to process small messages (like 6KB in your case) within few milliseconds. If still you hit a performance issue then better log a SR with support and after screening your system, they may suggest more fine tuning at pain points. Remember that each and every production deployment may be unique because of the requirements and resources available so generic recommendations may not solve the issue completely and hence screening of the specific system will be required to find the pain-points.