Author |
Message
|
anhnt |
Posted: Tue Oct 21, 2003 11:21 pm Post subject: helme about ServerConnection |
|
|
Acolyte
Joined: 03 Aug 2003 Posts: 54
|
Hi all,
My application use 2 QueueManager,QM1 and QM2.
- I Created a ServerConnection Channel SVR_CONNECTION_QM1 on QM1.
- I Connect to QM1 over SVR_CONNECTION_MQ1,I Put message on Remote queue on MQ1(define of Remote queue on QM2),No problem.
My problem is:
When I disable NetWork,then I put Message,I get a ReasonCode(2009),My Connection was broken. Also I only connect to QM1 which don't concern NetWork.
anyone show me about my problem
Thanks in advance
anhnt |
|
Back to top |
|
 |
dgolding |
Posted: Thu Oct 23, 2003 5:10 am Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
Hi Ahnt
Well, I'm assuming you're on a Wintel platform, and you're trying to make a client connection to a Queue Manager (using a SRVRCONN channel), and I'm assuming you are doing something like disabling TCP on your box. Also, I assume both queue managers are on the same box. You don't supply a lot of details to go on with.
AFAIK, with a client and certainly with a server-server connection, even if it is on the same box (perhaps with a host name of "localhost") you still need to make a socket connection, which is part of the IP stack, which it sounds like you've disabled.
If you are using the same box to simulate a network outage, this is in no way a valid test. |
|
Back to top |
|
 |
anhnt |
Posted: Thu Oct 23, 2003 8:48 pm Post subject: |
|
|
Acolyte
Joined: 03 Aug 2003 Posts: 54
|
Thanks dgolding,
Ok.My system linclude:
- Two Queuemanager in deferent machine. And Them comunicate each other over network(i use TCP/IP protocol).
I read logEvent in logfile.My Connection was broken by TCP/IP call.
OK,I agree it.But When I connect to QM1 over ServerConnection,then put message And while MCA in QM1 pass message to MCA in QM2,I disable network,no problem happened.some message in XMit Queue of QM1. Then I put message continuously,no problem occur.
Can you show me?
thanks inavance
anhnt |
|
Back to top |
|
 |
dgolding |
Posted: Thu Oct 23, 2003 10:40 pm Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
How are you disabling the network - do you pull the plug out of the back of the box? |
|
Back to top |
|
 |
anhnt |
Posted: Fri Oct 24, 2003 1:41 am Post subject: |
|
|
Acolyte
Joined: 03 Aug 2003 Posts: 54
|
yes.and some time I disable network by click mouse's righbutton,click dissable.the same.
anhnt |
|
Back to top |
|
 |
anhnt |
Posted: Fri Oct 24, 2003 1:51 am Post subject: |
|
|
Acolyte
Joined: 03 Aug 2003 Posts: 54
|
yes.and some time I disable network by click mouse's righbutton,click dissable.the same.
Of course,my messages are in XMit Queue.
anhnt |
|
Back to top |
|
 |
dgolding |
Posted: Fri Oct 24, 2003 2:03 am Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
Ahnt,
I really don't understand what you are testing. Are you trying to simulate a network failure?
If you disable TCP/IP ON THE BOX ITSELF then of course you will have a lot of problems. A lot of things will stop working within MQ.
TCP/IP has to be fully configured on the box for MQ to work - including things like local host name and IP Address. IMHO, the only way to simulate a network failure properly is to do it OUTSIDE THE BOX - pull the plug, or switch off the router, oor something....in other words, make it a REAL failure... |
|
Back to top |
|
 |
anhnt |
Posted: Fri Oct 24, 2003 6:24 pm Post subject: |
|
|
Acolyte
Joined: 03 Aug 2003 Posts: 54
|
Hi dgolding,
My application use 2 QueueManager,QM1 and QM2 on 2 different machine(OS:WINDOWS 2000 pro).
- I Created a ServerConnection Channel SVR_CONNECTION_QM1 on QM1.
- I Created a queue named QOUTBOX_TO_QM2 on QM1(define of remote queue on QM2)
- My two QueueManager commuticate each other over SENDER CHANNEL and RECEIVER CHANNEL
I tried some circumstance:
THE FIRST CASE:
- I pull the plug.Then Connect to QM1 over SVR_CONNECTION_QM1(connect successful).
- I put message on QOUTBOX_TO_QM2.My message is passed to XMITQ.
This case is true.
THE SECOND CASE:
- I connect to QM1 over SVR_CONNECTION_QM1(connect successful). Then I pull the plug.
- I put message on QOUTBOX_TO_QM2
This case is failure.
I read logfile,Its content is:
Quote: |
10/25/2003 09:01:03
AMQ9206: Error sending data to host 192.168.131.201.
EXPLANATION:
An error occurred sending data over TCP/IP to 192.168.131.201. This may be due
to a communications failure.
ACTION:
The return code from the TCP/IP(send) call was 10054 X('2746'). Record these
values and tell your systems administrator.
----- amqccita.c : 2052 ------------------------------------------------------- |
- THE THIRD CASE:
- I connect to QM1 over SVR_CONNECTION_QM1 (Connect successful).
- I put a batch of message on QOUTBOX_TO_QM2
- while MCA is passing messages to QM2,I pull the plug.Then I put a batch of messages coninuously,my messages are in XMITQ.
This case is normal.
My problem is:
Quote: |
I don't undertand:
in the second case:if failure's reason TCP/IP send To Queuemanager then why in the third case no failure: |
can you sho me?
Thanks in advance
Anhnt |
|
Back to top |
|
 |
dgolding |
Posted: Mon Oct 27, 2003 5:19 am Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
Ahnt,
Sorry, but it's still not clear. Can you tell me, what you mean by:
- I connect to QM1 over SVR_CONNECTION_QM1(connect successful). Then I pull the plug.
- I put message on QOUTBOX_TO_QM2
are you making a CLIENT connection to QM1? If you are, it's not surprising you're getting a "connection reset". AFAIK if you specify an IP address in your MQ environment variable it's probably not clever enough to see this is the local host, and in this case it will leave your box and return.
Or is this connect using MQCONN - because you don't use channels to connect a "server" queue manager - this is what is confusing me.. |
|
Back to top |
|
 |
anhnt |
Posted: Mon Oct 27, 2003 8:29 pm Post subject: |
|
|
Acolyte
Joined: 03 Aug 2003 Posts: 54
|
dgolding,
- I connect to QM1 over SVR_CONNECTION_QM1 type:ServerConnection). Then I pull the plug.
- I put message on QOUTBOX_TO_QM2(define Remote Queue wich was named "QOUTBOX_TO_QM2" in QM2(the second Queue Manager ).
My application was written in VB.NET.IF I have CONNECTION_NAME(hostAddress(port)),CHANNEL_NAME,QMGR_NAME then I can connect to QueueManager.
Note: I don't connect derect to QM1. But i Connect to QM1 over ServerConnection Channel(use Client Library in VB.Net).
My code in VB.Net is:
dim mqQMgr = New MQQueueManager(strqmgrName,strChannelName, strConnectionName).
anhnt |
|
Back to top |
|
 |
dgolding |
Posted: Mon Oct 27, 2003 11:15 pm Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
Ahnt,
Client connection is a socket connection over TCP/IP. If the network is down, connection is down. Client connections are not reliable. Use direct ("server" ) connection (MQCONN).
Ther is no point in making a client connection to a queue manager on the same box. Connect directly. If a queue manager is on a different box, and you use a client connection, expect unreliability.
The client code is free - and you get what you pay for.
HTH |
|
Back to top |
|
 |
anhnt |
Posted: Tue Oct 28, 2003 3:08 am Post subject: |
|
|
Acolyte
Joined: 03 Aug 2003 Posts: 54
|
Thanks dgolding very much
anhnt |
|
Back to top |
|
 |
|