Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

msg not reaching Queue?

Status
Not open for further replies.

lecmns

Programmer
Sep 11, 2001
19
IN
folks..

help me out..
I am thoroughly confused..

let me explain my set up..

I have two machines 'A' and 'B'.
'A' is an application server (Weblogic 6.1 on NT)
'B' is an NT machine with MQSeries 5.2

I have an stateless session bean in 'A' who uses a class that extends the JMS APIs and sends messages to 'B'. I have a few classes in 'B' which listens to the queue in 'B' and it picks up, process it and puts it back in the same queue with different properties. The API call in 'A' which has put the request message to 'B' had alread ystarted a listener to pick up the response message put from 'B' after processing. So, this listener in 'A' should pick the response back and leave it to the EJB from where the request was initiated.

This is working but not always.

Sometimes in 'B', the response message is made and put into the queue which I can see from the logs but it looks like it is not reaching the Queue in 'B'. For this reason, my listener in 'A' times out and ends abnormally. I will not get to see the response message put into the queue in 'B' through the MQExplorer even then.. But after sometime, it will appear in the queue in 'B' as if it was stuck somewhere for some reason.

What do you think the reason could be?

I am using MQ JMS APIs

Machine 'B' has 192 MB of RAM and 10 GB HDD.
Machine 'A' has nearly 400 MB of RAM and 10 GB HDD.

Since I have seen it working many times, I don't think there's a technical error in the code. But still, now that it is not consistent, I am doubtful. But am confused too.

In between, I heard that EJB 2.0 does not support creation of a listener as now it starts supporting Message Driven Beans. Is that the case? Will that be the reason?

Guys, help me out..
am stuck!!

MNS lecMns
B'lore
 
You can't do multithreading in an EJB and a listener is a separate thread. I'm surprised it ever works. If you're doing request/response, you need to do a blocking get with wait -- you can use the receive method with timeout on a message consumer to get the response.
 
hey,

the multi thread implementation is in the machine 'B' which is not an application server. so, there is no restriction. Yes, listener is a separate trhead for sure.

Since I have a synchronous call imeplementation, I send a message from 'A' and wait for a response in 'A' with this QueueReceiver.receive(timeout). But my prob is "there is a delay in the response data that comes to the queue".

But it looks like a transaction commit problem. I am looking into that now.

Anyway, thankx for the suggestions.. am sure, they'll help ..

MNS lecMns
B'lore
 
Hi i have come across this problem many times. I think in this case the problem is the following. When your program is issuing its mqconn it is set at (DFBIND) not fixed. So what is happening is that the message is being passed around until it can finally find an opening .. In this case i assume port 1414. I have seen this problem a lot recently and am convinced this is where you problem is lying ... so look at the word DFBIND 'not fixed' and 'on open' in the mqseries help files. They will help you here.

Secoundly you need to read up on things called heart beat interval, distnct interval, in the channeels section of mqseries intercommunication guide. Read this and it will explain clearly to you why your channels are going down.
regards
petehanbury@yahoo.com
 
I have a problem creating a new object using the MQ manager. The error occurs when connecting to MQSeries manager. Please let me know what needs to be done.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top