Author |
Message
|
ghoshly |
Posted: Mon Apr 12, 2021 1:35 pm Post subject: IBM B2Bi can not connect to Multi instance Queue Manager |
|
|
Partisan
Joined: 10 Jan 2008 Posts: 333
|
We have Multi instance Queue Manager (v8.0.0.14) running on AIX 7.2.
We have created Server Connection channel and Client connection channel with the same name and client connection channel has both the host names and port in CONNAME property. When the queue manager is active on host1, B2Bi can put message to designated queue, as well as get message from other queue as required. However, when our queue manager fails over to alternate host / node, B2Bi is not able to connect.
We have shared AMQCLCHL.TAB file from MQ server to B2Bi server and set the environment variables MQCHLLIB and MQCHLTAB in B2Bi machine. We tried MQ Server environment variable in B2Bi server as well
Code: |
export MQSERVER=EDI.SVRCONN/TCP/host1(1415), host2(1415) |
If they are using host1 in B2Bi config, they are getting RC 2538 (MQRC_HOST_NOT_AVAILABLE), if they are using host2 value, they are getting RC 2540 (MQRC_UNKNOWN_CHANNEL_NAME). B2Bi application is running on Linux and is on v6.0.3. Would you please help to identify what we are missing or how we can take proper trace to identify the issue?
Channel definition as followed :
Code: |
display channel(EDI.SVRCONN)
1 : display channel(EDI.SVRCONN)
AMQ8414: Display Channel details.
CHANNEL(EDI.SVRCONN) CHLTYPE(SVRCONN)ALTDATE(2021-04-07) ALTTIME(09.28.45)CERTLABL( ) COMPHDR(NONE)COMPMSG(NONE) DESCR( )DISCINT(0) HBINT(300)KAINT(AUTO) MAXINST(999999999)MAXINSTC(999999999) MAXMSGL(4194304)MCAUSER( ) MONCHL(QMGR)RCVDATA( ) RCVEXIT( )SCYDATA( ) SCYEXIT( )SENDDATA( ) SENDEXIT( )SHARECNV(10) SSLCAUTH(REQUIRED)SSLCIPH( ) SSLPEER( )TRPTYPE(TCP)
AMQ8414: Display Channel details.
CHANNEL(EDI.SVRCONN) CHLTYPE(CLNTCONN)AFFINITY(PREFERRED) ALTDATE(2021-04-07)ALTTIME(17.49.50) CERTLABL( )CLNTWGHT(0) COMPHDR(NONE)COMPMSG(NONE)CONNAME( host1(1415), host2(1415))DEFRECON(NO) DESCR( )HBINT(300) KAINT(AUTO)LOCLADDR( ) MAXMSGL(4194304)MODENAME( ) PASSWORD( )QMNAME( ) RCVDATA( )RCVEXIT( ) SCYDATA( )SCYEXIT( ) SENDDATA( )SENDEXIT( ) SHARECNV(10)SSLCIPH( ) SSLPEER( )TPNAME( ) TRPTYPE(TCP)USERID( )
|
|
|
Back to top |
|
 |
exerk |
Posted: Mon Apr 12, 2021 11:52 pm Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
The MQSERVER variable will over-ride the MQCHLLIB/MQCHLTAB variables (due to order of precedence), so you need to unset the MQSERVER variable.
And I suggest you remove the leading and trailing spaces from your channel definition:
Current: CONNAME(' host1(1415), host2(1415)')
Preferred: CONNAME('host1(1415),host2(1415)') _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Apr 13, 2021 9:34 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
exerk wrote: |
The MQSERVER variable will over-ride the MQCHLLIB/MQCHLTAB variables (due to order of precedence), so you need to unset the MQSERVER variable.
And I suggest you remove the leading and trailing spaces from your channel definition:
Current: CONNAME(' host1(1415), host2(1415)')
Preferred: CONNAME('host1(1415),host2(1415)') |
And you should verify, because if your client is on MQ version 6.x, I believe the host(port),host(port) notation for conname was introduced in MQ Version 7?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
exerk |
Posted: Tue Apr 13, 2021 9:36 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
fjb_saper wrote: |
exerk wrote: |
The MQSERVER variable will over-ride the MQCHLLIB/MQCHLTAB variables (due to order of precedence), so you need to unset the MQSERVER variable.
And I suggest you remove the leading and trailing spaces from your channel definition:
Current: CONNAME(' host1(1415), host2(1415)')
Preferred: CONNAME('host1(1415),host2(1415)') |
And you should verify, because if your client is on MQ version 6.x, I believe the host(port),host(port) notation for conname was introduced in MQ Version 7?  |
Good spot, as usual  _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
hughson |
Posted: Tue Apr 13, 2021 3:25 pm Post subject: Re: IBM B2Bi can not connect to Multi instance Queue Manager |
|
|
 Padawan
Joined: 09 May 2013 Posts: 1959 Location: Bay of Plenty, New Zealand
|
ghoshly wrote: |
We have Multi instance Queue Manager (v8.0.0.14) running on AIX 7.2.
When our queue manager fails over to alternate host / node, B2Bi is not able to connect.
If they are using host1 in B2Bi config, they are getting RC 2538 (MQRC_HOST_NOT_AVAILABLE), if they are using host2 value, they are getting RC 2540 (MQRC_UNKNOWN_CHANNEL_NAME). |
When the queue manager fails over to host2, getting RC 2538 (MQRC_HOST_NOT_AVAILABLE) if you try to connect to host1 seems fair enough.
When the queue manager fails over to host2, getting RC 2540 (MQRC_UNKNOWN_CHANNEL_NAME) sounds like an issue.
You have told us that this is a Multi-instance Queue Manager, so it should not be possible for the channel in question to exist when the queue manager is running on host1 but not exist when the queue manager is running on host2, since both instances of the queue manager should be using the same persistent state and should therefore both have the channel definition.
This suggests to me that either you don't have a Multi-instance queue manager, or the host2 address (and port) that you are using is pointing to a different queue manager.
Do you have another queue manager running on host2 as well? Is it possible that this other queue manager is using the port number you want to use?
Cheers,
Morag _________________ Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software |
|
Back to top |
|
 |
ghoshly |
Posted: Wed Apr 14, 2021 6:24 am Post subject: |
|
|
Partisan
Joined: 10 Jan 2008 Posts: 333
|
Thanks All for your responses.. We re-created the channels without any space in between, but still getting error when I switch over the queue manager to host 2 which is m24n4..
Code: |
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2540;AMQ9204: Connection to host 'xxx-m24n4.na.xxxcorp.net(1415)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2540;AMQ9520: Channel not defined remotely. [3=EDI.SVRCONN ]],3=xxx-m24n4.na.xxxcorp.net(1415),5=RemoteConnection.analyseErrorSegment]
at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:2275)
|
@morag - Yes we do have other queue manager in the server which is similar to the one in question, I am shutting that queue manager and give it a try because it also has the same listener with same port. |
|
Back to top |
|
 |
ghoshly |
Posted: Wed Apr 14, 2021 12:08 pm Post subject: MQ v9 jar used |
|
|
Partisan
Joined: 10 Jan 2008 Posts: 333
|
Still B2Bi team is experiencing rejection to connect to MQ queue manager
Code: |
[2021-04-14 11:01:30.98] ALL <WSMQAsyncRcv-SDX_ESB_ASYNC_RCV_Adapter-xxxxx-b2bxxxx1:53959375:178d0736f80:3ac6-72718915> ##[DEBUG]## Attempting to open a connection with the following values:
MQEnvironment version_notice=IBM MQ classes for Java v9.0.0.7
hostname=xxxxx-m24n4.na.xxxcorp.net
port=1415
qManager=QMIIB01
channel=EDI.SVRCONN
userid=bidb2bcc
password provided
CCSID=1208
[2021-04-14 11:01:30.986] ERROR <WSMQAsyncRcv-SDX_ESB_ASYNC_RCV_Adapter-72718915> MQException during MQCONN: CC=2 RC=2538
[2021-04-14 11:01:30.986] ERROR [1618412490986] MQJE001: Completion Code '2', Reason '2538'.
[2021-04-14 11:01:30.986] ERRORDTL [1618412490986]com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2538'.
at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:251)
|
|
|
Back to top |
|
 |
hughson |
Posted: Wed Apr 14, 2021 12:58 pm Post subject: |
|
|
 Padawan
Joined: 09 May 2013 Posts: 1959 Location: Bay of Plenty, New Zealand
|
ghoshly wrote: |
@morag - Yes we do have other queue manager in the server which is similar to the one in question, I am shutting that queue manager and give it a try because it also has the same listener with same port. |
You must make sure that these queue managers on the same host have a unique listener port.
Your application has been connecting to the wrong queue manager and that is why the channel definition didn't exist.
Cheers,
Morag _________________ Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software |
|
Back to top |
|
 |
PeterPotkay |
Posted: Thu Apr 15, 2021 7:31 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
In the last screen shot they show MQRC 2538 MQRC_HOST_NOT_AVAILABLE
They are not connecting to any queue manager it seems for that last use case
If they were connecting to the wrong queue manager that did not have their channel, it would have been 2540 MQRC_UNKNOWN_CHANNEL_NAME.
Notice they are also specifying the queue manager name in their config. Assuming that is used on the connect call I thought we would have first seen the MQRC 2058 MQRC_Q_MGR_NAME_ERROR, but my testing connecting to QM2 specifying QM1 on the connect using a channel name that does not exist on QM2 shows that QM2 throws MQRC 2540 for the bad channel name instead of the MQRC 2058 for the bad QM name. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
ghoshly |
Posted: Thu Apr 15, 2021 9:52 am Post subject: Big Thanks .. |
|
|
Partisan
Joined: 10 Jan 2008 Posts: 333
|
Thanks a lot Morag and others for helping to identify the issue.
For now I have disabled CONNAUTH property of Queue Manager and client application is able to put message via client connection channel and able to get message from queue using Virtual IP between the servers.
In case of multi instance queue manager, client application should always use Virtual IP in their adapter configuration? I guess this question would go more to IBM Sterling B2B Integrator team. |
|
Back to top |
|
 |
|