We're having problems with content based routing. We have a scenario in which AppA publishes a bunch of messages with an "applicationname" field and AppB and AppC are both subscribers. There are no transformations, just object copies. AppA is a custom built adapter, AppB and AppC are both database adapters.
The problem is that messages do arrive at the hub, but are not picked up by the subscribing adapters. If I disable CBR, both AppB and AppC get all messages and then I emulate CBR on the receiving end, in PL/SQL. But I want to use CBR.
AFAIK the publishing adapter takes care of the routing, is that true? It reads the CBR tables and sets the correct headers before writing it to the hub queue. We now have to find out exactly where it goes wrong. Does the publishing adapter publishes corrupt messages with CBR enabled? Or is there a problem with the subscribing adapters?
Yes, I modelled CBR in the repository, stopped all adapters, deleted cache and persistance folders and started all adapters. I'll increase the log level to 3. Might be a while though, I'm not at that customers location very often.
Actually this is not true the agent of the publishing adapter performs the CBR lookup and adds a recipient list to the message as it goes onto the OAI_HUB_QUEUE, it is not done by the repository.
The agent code is standard. So if you are having problems with CBR it is generally a problem with the way you have defined the rules within iStudio. However since you have a custom adapter, just be sure that the message being passed to the agent is exactly what you think it is.
Did you find the solution to your problem? I am trying to configure CBR (Content Based Routing) and the message gets routed to the OAI_HUB_QUEUE. The consumer_name contains the name of the receiving adapter but this adapter does not process the message. It seems to be the same issue as you had.
If you solved this issue could you please inform me about your solution?