I am working on an application, Ap1, which uses Toplink as an ORM layer and also makes use of Toplink cache. The problem is that the database that this application uses
is also used by another app, Ap2. So I need somehow to refresh Toplink cache of Ap1 when a database update is triggered by Ap2, otherwhise Ap1 will work with out of date data.
The solution that I found is to use JMS for the communication between the 2 aps and it should work like this:
- when Ap2 make a database update, it will add a message in a JMS topic that a MDB deployed on Ap1 listens to. And so the MDB will remove the entity from the cache.
The thing is that A1 and A2 are deployed on different Weblogic servers so I need to have a remote JMS communication between the 2 servers.
Ap1 is deployed on WLS1 (Weblogic 12C).
Ap2 is deployed on WLS2 (Weblogic 11C).
As solutions I tried to use a JMS bridge.
on the WLS1 side I have created:
- a JMS server, JmsServer-0
- a JMS module, JmsModule
- a local topic included in JmsModule and targeted to JmsServer-0
- a ConnectionFactory included in JmsModule and targeted to JmsServer-0 (not sure if it is needed)
- a JMS bridge with source and target configured OK (Bridge is in Active state)
The outcome is that when Ap2 updates the database, I can see the message in Ap2 JMS server, but I can't see it in Ap1 JMS server even if the JMS bridge appears to be created OK, has state Active.
I don't know why the message doesn't reach A1 JMS server and I don't know how to debug this problem. I am looking in the Jms Server, monitorring tab. Is there any other place Where I can get some useful info?
I also tried using a JMS foreign server, but I had the same problem.
First of all, you can configure the MDB on WLS server1 to receive messages from a JMS destination that is running on WLS server2. You just need to provide the URL of the remote server.
If you prefer using the messaging bridge, you can debug your bridge by turning on the bridge debugging flags.
As you are dealing with Topic I hope you either have an active subscriber or a durable subscriber mapped with WLS-1 topic at time App2 pushes messages in it's topic. If there are no active subscribers weblogic will not persist messages only it will show in "message received" tag and nothing will be there in "message current" tab for subscriber to consume.