1

Please help me with what is happening

I have a client, calling an ejb method - doSomething() String result = session.doSomething(long p1, int p2) ;

Inside that doSomething method we create and send JMS message to the jms queue This is done by method doMessageSend (..) and that method looks like this

     SomeMessage msg = new SomeMessage();
      msg.setBillId(lBillId);
      msg.setBaseOutputPath(sBaseOutputPath);
         // some more sets fields
         //...
     msgSender.sendBillOutputMsg(msg);

There is a component - java console application, running on the server (same OR different machine from where ejb is ran) . The component process messages from the queue and writes some records to the database. The task is:

  • Before doSomething() method returns, I have to make it 'wait' for the database records written by the component that reads the JMS queue. However, that component does NOT start processing the queue before doSomething() returns. When doSomething()returns, that queue processing component starts its work.

How can I make queue processing component start before 'doSomething()' returns ? The message object that is sent is not referenced anywhere anymore ...

Dmitriy Ryabin
  • 363
  • 3
  • 16

0 Answers0