The Issue
Recently we experienced a strange issue on one of our clients’ Weblogic Integration domain. From Weblogic Integration console, when we were trying to purge process data, it was always showing a RUNNING state and didn’t allow us to trigger the purge process. After observing the phenomenon for several weeks, we realised the issue. The root cause for the change in behaviour is a deployment change for MDBs between 8.1 and 9.x. Since 9.x a MDB deployed to a cluster connects to a physical queue that resides on a remote server in the cluster. This was different in 8.1. Here the MDB connected to local queues only.
To implement the same behavior as in 8.1, the target for the queues should be set to a MIGRATABLE target. Define a subdeployment with a migratable target definition. Change the target information for the following queues:
wli.internal.scheduling.queue
wli.internal.scheduling.queue_error
Purging is a service configured on a single managed server in the cluster only. The recommendation is to configure a migratable target for it so that it can be moved to another server in case the first one fails.
Follow these steps to change the configuration in the WebLogic Servers Admin Console:
1. Create a new JMS Server say “MyJMSServer”
2. Create a File Store as “FileStore1” and target to MS1 (Migratable)
3. Target MyJMSServer to MS1 (Migratable)
4. Select JMS Modules => Select “configwiz-jms”
5. Select SubDeployments
6. Create New Subdeployment as “MyNewSubDeployment”
7. Select “MyJMSServe” as target for MyNewSubDeployment
8. Select the queue “wli.internal.scheduling.queue_error”
9. Select SubDeployment tab and select as “MyNewSubDeployment”
10. Select the queue “wli.internal.scheduling.queue”
11. Select SubDeployment tab and select as “MyNewSubDeployment”
12. Activate the changes
13. Re-start the servers ( Admin and managed servers )