Monday, July 11, 2011

Which SOA Suite tool to use when reading a JMS topic

We have been doing a lot of event driven architecture with our clients lately and one question that comes up a lot is which SOA Suite component to use as the consumer. There are a couple of options available: OSB business service and BPEL using the JMS adapter.

Ideally you would like to use the OSB for its performance, statelessness, and low overhead but there is little gotcha that is pretty important when reading from topics. The current version of the OSB (11.1.1.5) doesn't support setting the JMS consumer name. The OSB auto-generates the JMS consumer name that is pretty unreadable and impossible to determine the client it is associated with. When connecting to a topic this is very important because that is the only way to know which consumers are connected to the topic and which ones are missing.

The JMS JCA adapter used by BPEL allows the developer to set a meaningful name to a durable subscriber. This makes it really easy when looking at the list of durable subscribes on a topic to determine which consumers are connected and listening and which consumers are not there. BPEL has some additional overhead (dehydration) but in most cases this can mitigated making the BPEL with JMS JCA adapter the better choice.