- Whenever possible, set the logging level to warning. You set the logging level in the WebLogic Server Administration Console. For more information, see Servers: Logging: General in the WebLogic Server Administration Console Online Help. The following code displays the output server
config.xml
file when the logging level is set to warning. For more information on logging, see "Log" in Proxy Services: Actions in the Using the AquaLogic Service Bus Console.
<server>
<name>AdminServer</name>
<log>
<file-min-size>5000</file-min-size>
<log-file-severity>Warning</log-file-severity>
<log-file-filter xsi:nil="true"></log-file-filter>
<stdout-severity>Off</stdout-severity>
<stdout-filter xsi:nil="true"></stdout-filter>
<domain-log-broadcast-severity>Error</domain-log-broadcast-severity>
<domain-log-broadcast-filter xsi:nil="true"></domain-log-broadcast-filter>
<memory-buffer-severity>Error</memory-buffer-severity>
<memory-buffer-filter xsi:nil="true"></memory-buffer-filter>
</log>
</server>
- Group JMS queues on different JMS servers based on message loads. Different JMS servers use different file stores, which you can distribute to separate disk volumes. For more information, "Adding a Business Service" in Business Services in the Using the AquaLogic Service Bus Console and pay particular attention to the JMS configuration information.
- If you are using an Oracle database as a JMS persistent store, it is recommended that you use a 10g database and ensure that it has sufficient JDBC connections. Create a JDBC store on a separate schema to use a separate tablespace.
- If you do not require monitoring for a proxy or business service, disable the monitoring capability. For more information, see "Overview of Monitoring" in Monitoring in the Using the AquaLogic Service Bus Console.
- If possible, set the routing data in the JMS message properties. AquaLogic Service Bus does not deserialize message content until the content is explicitly accessed in the pipeline. For example, if the content is an XML document, XML parsing does not happen until an XQuery or XSLT operation happens in the pipeline. For more information about working with the message context in the message flow, see Message Context in the Using the AquaLogic Service Bus Console.
- If you need to extract some of the inbound header elements for processing, you should specify that AquaLogic Service Bus retrieves specific header elements instead of all the elements.
- Where possible, use the insert action instead of the assign action. The insert action uses "in-place" modification semantics making it more performant compared to the assign action. For information on configuring actions, see "Adding an Action" in Proxy Services: Actions in the Using the AquaLogic Service Bus Console.
- Use AquaLogic Service Bus clustering and WebSphere MQ clustering to achieve scalability.
- If a front end application invokes AquaLogic Service Bus synchronously, AquaLogic Service Bus can use the sync-async feature to communicate with WebSphere MQ synchronously. On the WebSphere MQ side, a request and a response queue is set up. AquaLogic Service Bus sends a request to the request queue and waits for a response from the response queue. To achieve improved performance, you can use a dedicate work manager for the response Message Driven Bean. You configure the dedicate work manager in the WebLogic Server Administration Console. For more information, see Work Manager in the WebLogic Server Administration Console Online Help. The following code displays the output server
config.xml
file after the dedicate work manager is configured.
<self-tuning>
<min-threads-constraint>
<name>minThreadsConstraint</name>
<target>AdminServer</target>
<count>20</count>
</min-threads-constraint>
<work-manager>
<name>MQWorkManager</name>
<target>AdminServer</target>
<min-threads-constraint> minThreadsConstraint </min-threads-constraint>
<ignore-stuck-threads>false</ignore-stuck-threads>
</work-manager>
</self-tuning>