Friday, July 08, 2011

SOA Suite 11g: AQ a tuning tip

When you use AQ to dequeue message to the SOA Suite, keep in mind the maximum number of connections to your database.

A 4 node OSB cluster the does the dequeue and sends the messages to a 4 node SOA11g Cluster could lead that the SOA11g server will get stucked.

The server can get overloaded in the following situation:
  • When there are a lot of messages in the queue, for example 8000+ messages.
  • You stopped the SOA11g for maintaince 
  • You disabled the AQ-Proxy service in OSB.
When you start the SOA11g environment, you will notice that alle servers and their services/processes are running normally. But...

The issue is when you want to enable the AQ-Proxy service in OSB. This will lead that all OSB servers in the cluster will dequeue the messages and sends them to SOA11g.  SOA11g is trying to process all the services, but will fail at the end.

This is because it reach the maximum number of session in the database. This is not shown in the log files. The SOA11g log file says that the database "SOALocalTxDataSource" is suspended. This is not the case if you look in the Weblogic console (!). While the database alert log file says it reach the maximum session to the database.

This overloading can be solved by setting the maximum connections to the database for the datasources "SOALocalTxDataSource" and "SOADataSource".

In our case we have a 4-node cluster. This results in:
SUM(
    ("SOALocalTxDataSource" -> Maximum Capacity * 4)
   +
    ("SOADataSource" -> Maximum Capacity * 4)
)
If max capacity is 40, the total connections reach 320 sessions (!), when you enable the proxy service on OSB.

Make sure you can create enough sessions to your database.

Post a Comment