Message driven bean not responding until client method is complete

Posted by poijoi on Stack Overflow See other posts from Stack Overflow or by poijoi
Published on 2010-04-27T00:00:26Z Indexed on 2010/04/27 0:03 UTC
Read the original article Hit count: 243

Filed under:
|
|
|

Hi,

I have a MDB deployed on Jboss 4.2.2 and a client on the same server that produces messages and expects a reply from the MDB via a temporary queue created before the message is sent.

When I run the client, I see that it creates the message, puts it in the queue and waits for the reply (no problem so far) ... but when I check in the logs I see that the timeout is reached and no response is received. When the timeout occurs and the client's method is complete the MDB starts processing the message that should have been processed the moment the client put it in the queue. As a consequence of this timing issue, when the MDB tries to reply to the temp queue, it fails since the client is already gone.

If I run the same client from a remote server, I have no problem... The MDB picks up the message from the queue right away and the client receives its response right after the processing is complete.

I'm using container managed transactions. I suspect it has something to do with that... I think the client's "send message/receive reply" might be all be considered a transaction before it commits to put the message in the queue... but I'm not sure if this is correct. If this is the case, why did I not see the same behavior from the remote client? is client managed transaction the default setting and that's what my remote server was using?

Any idea how to fix this?

Thanks in advance! PJ

© Stack Overflow or respective owner

Related posts about jboss

Related posts about jboss-mdb