more info:
The JMS implementation in WebLogic—which requires manual intervention when a server goes down—can cause issues when used within WebLogic Feature Pack's dynamic environment. I'll detail three options for you after I describe the issues: pick the option that best meets your needs for each of your WebLogic applications.
The JMS implementation in WebLogic requires that each JMS server that uses persistent storage have its own backing store. Consequently, no other JMS server can access messages in a particular JMS server's store. Should a JMS server go off line, any messages in its store are trapped there until the server is restarted or you manually migrate the JMS server to another application node.
Meanwhile, WebLogic Feature Pack's dynamic deployment engine removes services automatically when capacity exceeds the SLA threshold. WebLogic Feature Pack selects a service randomly for removal, and may remove a service that's running a JMS server. Any messages in the JMS server's store at that moment are then unreachable.
The same trapped message issue can occur if an application node that is running a JMS server fails and Cassatt Active Response replaces the node: Cassatt Active Response might start the replacement node with a different image instance—again, leaving any messages inaccessible.
To put the messages back in circulation, you can manually migrate the JMS server to another application node—but this approach is tedious and counter to WebLogic Feature Pack automation. If your setup can use singleton or pinned JMS servers, WebLogic Feature Pack can automatically migrate the JMS server for you. Or you can wait for WebLogic Feature Pack to restart the service on a node running the original image instance—which is hit-or-miss: when capacity falls below the SLA threshold, WebLogic Feature Pack starts a service using any available image instance, and may or may not start a service using the image instance that contains the trapped messages.
WebLogic provides three options for using JMS, each of which has pros and cons:
| Pros | Cons | |
|---|---|---|
| Foreign |
|
|
| Singleton or pinned |
|
|
| Distributed |
|
|
Follow these steps to set up a foreign domain for JMS:
When you use pinned JMS servers, WebLogic Feature Pack runs the same number of JMS servers as were in your original domain.
WebLogic 8.1 only - You need to set JNDINameReplicated to "true" so that all managed servers can use the JMS servers, and all managed servers in your tier are migration targets. Your domain must be clustered to support JMS server migration and JNDI name replication.
Also, make sure that each JMS persistent store is available from every managed server.
WebLogic Feature Pack also migrates JTA within clustered WebLogic domains. For a JTA migration to succeed, the transaction log files must be written to a shared location that all managed servers can access. To configure this shared location on each server, go to Configuration > Services and set the Default Store parameter.
Set up distributed destinations on every managed server and a JMS server targeted to every managed server. For more information, see: