webMethods 4.6 broker document order mode

We are having problems with not getting enough concurrent processing from shared state clients.

The situation is as follows. There are 5 Oracle adapter processes. Each adapter is single-threaded. “Broker Document Order Mode” is “None”. “Max number of documents to receive” is 1, and “Multi-Publish size” is 10.

Component A in the XML adapter publishes a message to component B in the Oracle adapter, which publishes another message to component C in the Oracle adapter:

Component A (in XML adapter) ------> Component B (in Oracle adapter) -------> Component C (in Oracle adapter)

Component C has a Thread.wait() call so processing stops there for a while. At this point, there is 1 message in the Oracle adapter queue. Other queues are empty.

Now, another message comes to component A. Again, it publishes a message to component B. This message is processed immediately, which indicates that there are multiple Oracle adapters running, as configured.

The problems start when component B publishes a message to component C. This message is published, but its processing does not start! There are now 2 messages in the Oracle adapter queue. The 4 free Oracle adapters ignore the new message until the first message is processed. Only then is the second message processed.

This is totally unexpected, from reading the documentation. In my understanding, this should happen only if “Broker Document Order Mode” were “Publisher”. It is not: it is “None”, in which case there should be no restrictions on document order. One of the 4 free Oracle adapters should process the second message to component C as soon as it is published.

Any ideas how this could have happened?

Hi Pietari,

Often the actual ordering mode on the Broker Client for the adapters can still be ‘publisher’ even if you think you’ve changed it - Adapter Manager won’t have deleted the current client ordering setting if there’s another connected client when you changed it. The default is to order by publisher. Check the Broker Client properties through Enterprise Manager or WmBrokerAdmin package.

Regards,
Adrian

This seems to be correct. When I open Enterprise Manager, double click client “Oracle” and go to the Sessions tab, I see that State Sharing is Enabled and Shared Document Order Mode is Publisher. This despite the fact that Adapter Configurator has Broker Document Order Mode = None.

The question is: how do you change the setting? I’ve tried stopping the adapter process, and even the ActiveWorks Adapters 4.0 service, and then changing Broker Document Order Mode in Adapter Configurator, but nothing seems to work. Shared Document Order Mode stays as Publisher in Enterprise Manager.

Has anyone here managed to configure multiple instances of an adapter with the “None” broker document order mode?

Hi Pietra,

You need to delete the BrokerClient on the Broker. Make certain there are no queued documents and then:

  1. Stop the adapters

  2. Delete the BrokerClient (which currently has ‘order by publisher’)

  3. Start the adapters

In the current platform Developer and Integration Server do this for you.

Regards,
Adrian

That was it. Many thanks!