Author |
Message
|
Aman_05 |
Posted: Wed Jun 12, 2019 8:37 am Post subject: Unable to connect to MQ in client mode using Dotnet |
|
|
Newbie
Joined: 12 Jun 2019 Posts: 3
|
Hi All,
Receiving below error while executing command ,could someone please help on the same ,using mqserver variable and i am able to connect to queue manager via amqsputc without issues but receiving 2059 with dotnet command.
SimplePut.exe -q LCP.INITIATE -k *SYSTEM -s TLS_RSA_WITH_AES_256_CBC_SHA256 -h testsvr -l CH.LLY.LCP.DMQMC005 -p 1420
00000117 10:35:17.234510 7808.1 : Constructing IBM.WMQ.Nmqi.NmqiEnvironment#0378734A MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/nmqi/NmqiEnvironment.cs
00000118 10:35:17.249629 7808.1 : Constructing IBM.WMQ.MQClientCfg#02004EEE MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/nmqi/NmqiObject.cs
00000119 10:35:17.249711 7808.1 : Constructing IBM.WMQ.MQClientCfg#02004EEE MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/nmqi/MQIniFile.cs
0000011A 10:35:17.249731 7808.1 : Constructing IBM.WMQ.MQClientCfg#02004EEE MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/nmqi/MQClientCfg.cs
000001AE 10:35:17.298328 7808.1 : Constructing IBM.WMQ.MQQueueManager#0218F99C MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/baseclasses/MQManagedObject.cs
000001AF 10:35:17.298361 7808.1 : Constructing IBM.WMQ.MQQueueManager#0218F99C MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/baseclasses/MQQueueManager.cs
000001B0 10:35:17.343949 7808.1 : ---{ MQQueueManager.Connect()
000001B1 10:35:17.345582 7808.1 : SCCSID: '@(#) MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/baseclasses/MQQueueManager.cs'
000001B2 10:35:17.346946 7808.1 : MQQueueManager.IsConnected False HConn: (null)
000001B3 10:35:17.346978 7808.1 : ConnectOptions: QMgr = '', ConnName = '', Channel = ''
000001B4 10:35:17.349374 7808.1 : -----{ MQQueueManager.OverrideConnectionProperties()
000001B5 10:35:17.352662 7808.1 : ------{ xcsGetEnvironmentString
000001B6 10:35:17.352702 7808.1 : xcsGetEnvironmentString[overrideConnectionDetails] = NULL
000001B7 10:35:17.352715 7808.1 : ------}! xcsGetEnvironmentString (rc=xecE_E_ENV_VAR_NOT_FOUND)
000001B8 10:35:17.352748 7808.1 : ----} MQQueueManager.OverrideConnectionProperties() (rc=OK)
000001B9 10:35:17.354690 7808.1 : Connection Name: testsvr(1420)
000001BA 10:35:17.354716 7808.1 : Channel: CH.LLY.LCP.DMQMC005
000001BB 10:35:17.354733 7808.1 : SSLCipherSpec: TLS_RSA_WITH_AES_128_SHA
000001BC 10:35:17.354762 7808.1 : SSLKeyRepository: *SYSTEM
000001BD 10:35:17.354811 7808.1 : MQCNO.options: 0x00000040
000001BE 10:35:17.356428 7808.1 : BindingType from property (MQSeries Managed Client)
000001BF 10:35:17.356458 7808.1 : BindingType = 'MANAGEDCLIENT' connectionType = 6
000001C0 10:35:17.359684 7808.1 : -----{ NmqiEnvironment.GetMQI(int)
000001C1 10:35:17.360569 7808.1 : Component ID Supplied -> 2
000001C2 10:35:17.360585 7808.1 : Component Name -> IBM.WMQ.Nmqi.MQFAP
000001C3 10:35:17.370326 7808.1 : Constructing IBM.WMQ.MQCommsBufferPool#02E0C681 MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/nmqi/MQCommsBufferPool.cs
000001C4 10:35:17.371123 7808.1 : Constructing IBM.WMQ.MQCommsBufferImpl#01E6FA8E MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/nmqi/MQCommsBufferImpl.cs
00000221 10:35:17.420724 7808.1 : Constructing IBM.WMQ.MQSSLConfigOptions#0232467A MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/nmqi/MQSslConfigOptions.cs
00000222 10:35:17.422993 7808.1 : Constructing IBM.WMQ.Nmqi.NmqiStructureFormatter#03C47A4F MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/nmqi/NmqiStructureFormatter.cs
00000339 10:35:17.841256 7808.1 : Constructing IBM.WMQ.MQERD#0189441B MQMBID sn=p800-004-151017 su=_KvDdkHSxEeW7tayg2YKGHQ pn=lib/dotnet/pc/winnt/nmqi/MQERD.cs
0000033A 10:35:17.842062 7808.1 : -------------------------{ MQERD.ReadStruct(Byte [ ],int)
0000033B 10:35:17.843354 7808.1 : ------------------------} MQERD.ReadStruct(Byte [ ],int) (rc=OK)
0000033C 10:35:17.844348 7808.1 : -------------------------{ MQERD.GetReasonCode()
0000033D 10:35:17.846599 7808.1 : ------------------------} MQERD.GetReasonCode() (rc=OK)
0000033E 10:35:17.850055 7808.1 : New MQException CompCode: 2 Reason: 2059
0000033F 10:35:17.850085 7808.1 : New NmqiException CompCode: 2 Reason: 2059
00000340 10:35:17.850173 7808.1 : ----------------------} MQFAPConnection.AnalyseErrorSegment(MQTSH) (rc=OK)
00000341 10:35:17.850190 7808.1 : --------------------} MQFAPConnection.ReceiveTSH(MQTSH) (rc=OK)
00000342 10:35:17.850957 7808.1 : Exception received
IBM.WMQ.Nmqi.NmqiException
Message: MQRC_Q_MGR_NOT_AVAILABLE
StackTrace:
at IBM.WMQ.Nmqi.MQFAPConnection.AnalyseErrorSegment(MQTSH rTSH)
at IBM.WMQ.Nmqi.MQFAPConnection.ReceiveTSH(MQTSH rTSHP)
at IBM.WMQ.Nmqi.MQFAPConnection.InitialiseSession()
00000343 10:35:17.851069 7808.1 : ------------------} MQFAPConnection.InitialiseSession() (rc=OK)
00000344 10:35:17.851186 7808.1 : Exception received
IBM.WMQ.Nmqi.NmqiException
Message: MQRC_Q_MGR_NOT_AVAILABLE
StackTrace:
at IBM.WMQ.Nmqi.MQFAPConnection.InitialiseSession()
at IBM.WMQ.Nmqi.MQFAPConnection.Connect(MQConnectionSecurityParameters securityParms)
Also tried adding below in mqclient.ini
ServerConnectionParms=CH.LLY.LCP.DMQMC005/TCP/testsvr(1420)
Last edited by Aman_05 on Wed Jun 12, 2019 8:42 am; edited 1 time in total |
|
Back to top |
|
 |
exerk |
Posted: Wed Jun 12, 2019 8:41 am Post subject: Re: Unable to connect to MQ in client mode using Dotnet |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
Aman_05 wrote: |
...using mqserver variable and i am able to connect to queue manager via amqsputc without issues but receiving 2059 with dotnet command.
SimplePut.exe -q LCP.INITIATE -k *SYSTEM -s TLS_RSA_WITH_AES_256_CBC_SHA256 -h testsvr -l CH.LLY.LCP.DMQMC005 -p 1420 |
First mistake highlighted above. I suggest you read the Knowledge Centre (KC) in regard to TLS and use of the MQSERVER variable.
Aman_05 wrote: |
...Also tried adding below in mqclient.ini... |
Second mistake. Again, read the KC in regard to the precedence of MQSERVER, other related variables, and an mqclient.ini file. _________________ 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.
Last edited by exerk on Wed Jun 12, 2019 8:43 am; edited 1 time in total |
|
Back to top |
|
 |
Vitor |
Posted: Wed Jun 12, 2019 8:43 am Post subject: Re: Unable to connect to MQ in client mode using Dotnet |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Aman_05 wrote: |
Receiving below error while executing command ,could someone please help on the same ,using mqserver variable and i am able to connect to queue manager via amqsputc without issues but receiving 2059 with dotnet command. |
There are any number of reasons for a 2059 error and they've all been discussed in this forum at one time or another. You'll find a search box at the top right of this page.
Do not lose sight of the fact that you can get a 2059 from environmental problems. There could be nothing wrong with your code or your configuration. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
hughson |
Posted: Wed Jun 12, 2019 2:39 pm Post subject: Re: Unable to connect to MQ in client mode using Dotnet |
|
|
 Padawan
Joined: 09 May 2013 Posts: 1959 Location: Bay of Plenty, New Zealand
|
I don't think you will pick up the MQSERVER environment variable or the string you put in mqclient.ini with ServerConnectionParms because you have specifed all the parameters on the invocation of the program, and this will over-ride all those other ways.
When using SSL with a managed .NET client as you are doing, remember that the SSLCipherSpec names might be different, although TLS_RSA_WITH_AES_256_CBC_SHA256 is one of the very few that has the same name in MQ as in .NET (see CipherSpec mappings for the managed .NET client).
You provided the following parms:
Aman_05 wrote: |
SimplePut.exe -q LCP.INITIATE -k *SYSTEM -s TLS_RSA_WITH_AES_256_CBC_SHA256 -h testsvr -l CH.LLY.LCP.DMQMC005 -p 1420 |
but when you look at the output you provided to us, the SSLCipherSpec that it is using is different, which would result in a failure to complete the handshake because it wouldn't match the other end.
Aman_05 wrote: |
000001B9 10:35:17.354690 7808.1 : Connection Name: testsvr(1420)
000001BA 10:35:17.354716 7808.1 : Channel: CH.LLY.LCP.DMQMC005
000001BB 10:35:17.354733 7808.1 : SSLCipherSpec: TLS_RSA_WITH_AES_128_SHA
000001BC 10:35:17.354762 7808.1 : SSLKeyRepository: *SYSTEM
000001BD 10:35:17.354811 7808.1 : MQCNO.options: 0x00000040
000001BE 10:35:17.356428 7808.1 : BindingType from property (MQSeries Managed Client)
000001BF 10:35:17.356458 7808.1 : BindingType = 'MANAGEDCLIENT' connectionType = 6
000001C0 10:35:17.359684 7808.1 : -----{ NmqiEnvironment.GetMQI(int)
000001C1 10:35:17.360569 7808.1 : Component ID Supplied -> 2
000001C2 10:35:17.360585 7808.1 : Component Name -> IBM.WMQ.Nmqi.MQFAP |
Oddly, "TLS_RSA_WITH_AES_128_SHA" is not a cipher spec in either MQ or .NET, so I don't know what is going on there, but it's an area to investigate.
Cheers,
Morag _________________ Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software |
|
Back to top |
|
 |
Aman_05 |
Posted: Thu Jun 13, 2019 3:27 am Post subject: |
|
|
Newbie
Joined: 12 Jun 2019 Posts: 3
|
Thanks for the inputs Morag, vitor and exerk
just used the MQserver or mqclient file variables to check the connectivity to queue manager if i use simple amqsputc to check connectivity.
i was aware of mqserver precedence over mqclient files values but wasn't quite aware of that the other sample programs while directly passes the arguments takes precedence over MQSERVER variable.
@Morag :
I am not sure if the command needs some variables to be defined as same setup is working on different machine, already comparing variables on both servers
E:\Program Files\IBM\WebSphere MQ\Tools\dotnet\samples\cs\base\bin>Simpleput -q LCP.INITIATE -k *SYSTEM -s TLS_RSA_WITH_AES_256_CBC_SHA256 -h testsvr -p 1420 -l CH.LLY.LCP.DMQMC005
Start of SimplePut Application
MQ Parameters
1) queueName = LCP.INITIATE
2) keyRepository = *SYSTEM
3) cipherSpec = TLS_RSA_WITH_AES_256_CBC_SHA256
4) host = testsvr
5) port = 1420
6) channel = CH.LLY.LCP.DMQMC005
7) numberOfMsgs = 1
sslPeerName =
9) keyResetCount = 0
10) sslCertRevocationCheck = False
Connecting to queue manager..
MQException caught: 2538 - MQRC_HOST_NOT_AVAILABLE
at IBM.WMQ.MQQueueManager.Connect(String queueManagerName)
at SimplePut.SimplePut.PutMessages()
End of SimplePut Application |
|
Back to top |
|
 |
exerk |
Posted: Thu Jun 13, 2019 3:29 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
Check the queue manager logs for any entries, although this has the suspicious smell of a firewall in the way... _________________ 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: Thu Jun 13, 2019 2:36 pm Post subject: |
|
|
 Padawan
Joined: 09 May 2013 Posts: 1959 Location: Bay of Plenty, New Zealand
|
Aman_05 wrote: |
Connecting to queue manager..
MQException caught: 2538 - MQRC_HOST_NOT_AVAILABLE
at IBM.WMQ.MQQueueManager.Connect(String queueManagerName)
at SimplePut.SimplePut.PutMessages()
End of SimplePut Application |
Interestingly, your symptoms appear to have changed. To start with you were receiving a 2059 (MQRC_Q_MGR_NOT_AVAILABLE) but now you are getting a 2538 (MQRC_HOST_NOT_AVAILABLE).
Can you check that the listener is running on your machine at testsvr and that it is definitely using post 1420.
Cheers,
Morag _________________ Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software |
|
Back to top |
|
 |
Aman_05 |
Posted: Fri Jun 21, 2019 4:58 pm Post subject: |
|
|
Newbie
Joined: 12 Jun 2019 Posts: 3
|
Hi Exerk,Morag,
After some testing done at our end, it was identified that application team was using incorrect certificate details and caused 2538 ,failing the ssl handshake.
The same was identified when we tested the connection with another channel with empty values for sslciph
Thansk again for your inputs.[/quote] |
|
Back to top |
|
 |
hughson |
Posted: Fri Jun 21, 2019 7:24 pm Post subject: |
|
|
 Padawan
Joined: 09 May 2013 Posts: 1959 Location: Bay of Plenty, New Zealand
|
Aman_05 wrote: |
Hi Exerk,Morag,
After some testing done at our end, it was identified that application team was using incorrect certificate details and caused 2538 ,failing the ssl handshake.
The same was identified when we tested the connection with another channel with empty values for sslciph
Thansk again for your inputs. |
Well that is very interesting. You should report his to IBM. A client connection which fails a handshake should not be returning an MQRC of 2538 (MQRC_HOST_NOT_AVAILABLE), it should be reporting something like MQRC_SSL_INITIALIZATION_ERROR (2393) or one of the other MQRC_SSL_* reason codes (depending on the reason the handshake failed). That would have sped up your diagnosis of the problem if it had pointed you in the right direction!!
Cheers,
Morag _________________ Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sat Jun 22, 2019 4:36 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Perhaps the version of MQ in use predates the more helpful MQRC_SSL* Reason Codes. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
|