Nov 07

By default Java CAPS uses the Java Message Service infrastructure as its underlying messaging layer. Occasionally there is a requirement or a temptation to develop synchronous service, for example invoked as web services or as HTTP Request/Response services, that invoke some back-end component over JMS. In request/response scenarios the response must be delivered by the component which received the request, a JCD or a BP. If the request is passed to the nback-end infrastructure through a JMS Queue or Topic there arises an issue of getting the response back to the same instance of the JCD or a BP that sent the original request. The attached extract, JMS RequestReply, from an early draft of the “Java CAPS Basics – Implementing Common EAI Patterns“, discusses and illustrates how the JMS RequestReply() method of the JMS OTD can be used to implement this kind of functionality.

One Response to “Java CAPS 5.1.3 – Using JMS RequestReply() in synchronous messaging”

  1. Simon Borosma says:

    Hello Michael,

    Good example of how to implement the JMS Request Reply mechanism. We have also used this in our current project, but we are now running into some issues. By using the requestReply method, a temporarly queue is being setup. according to the description this queue will only exists if as long as its creator exists, the java-collaboration instance. But in our situation now we are facing a problem that the number of temp.queues in the JMS IQ Manger is increasing. We discovered this behaviour when performing some load-tests.

    Does this sounds familiar to you, and is there a solution?

    thusfur we tried to change some configuration (number of connections to JMS etc.) and setting the queues non-persistent
    JMSClient.setDeliveryMode( jmsRequest.NONPERSISTENT );
    But did doesn’t seems to help, resolving the problem with increasing number of queues on the IQ Manager.

    Hope you can help?

    Simon

Leave a Reply

preload preload preload