Author |
Message
|
muzipok |
Posted: Tue Apr 06, 2010 6:50 am Post subject: Error 2538 with XMS |
|
|
Novice
Joined: 26 Mar 2010 Posts: 11
|
Hi,
following scenario:
Machine with MQClient installed wants to connect to a queue manager with a queue and a topic on a remote machine, where mq server is installed.
I created a .bindings file on the server and copied it to the client.
when starting the client, the initialcontext for XMS is initialized with the url to the bindings file.
but when the connectionFactory ist constructed i get an Error 2538 MQRC_HOST_NOT_AVAILABLE.
Did I forget anything to do?
Thanks!
Alex |
|
Back to top |
|
 |
mvic |
Posted: Tue Apr 06, 2010 9:22 am Post subject: Re: Error 2538 with XMS |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
I suggest using the supplied sample programs to check the basic setup is working - is that what you are doing, in fact? |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Apr 06, 2010 8:28 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Copying the bindings file is not sufficient. Did you set up the QCF/TCF for client connection when you created the bindings file? (I expect the answer to be yes here).
Did you try telnet qmgrhostname qmgrport ? Might be just as simple that you have no network connectivity to the qmgr host. (Firewall, routing problem etc...)
 _________________ MQ & Broker admin |
|
Back to top |
|
 |
muzipok |
Posted: Wed Apr 07, 2010 12:01 am Post subject: |
|
|
Novice
Joined: 26 Mar 2010 Posts: 11
|
fjb_saper wrote: |
Copying the bindings file is not sufficient. Did you set up the QCF/TCF for client connection when you created the bindings file? (I expect the answer to be yes here).
Did you try telnet qmgrhostname qmgrport ? Might be just as simple that you have no network connectivity to the qmgr host. (Firewall, routing problem etc...)
 |
I created the bindings file with a ConnectionFactory and the appropriate Queues and Topics.
Telnet brings up an empty screen. Connection seems to work.
I set the MQSERVER environment variable (btw - do i really need this variable for xms?).
Do I need to create client-channels or server-connections within the queue manager for xms with anything special? CCDT?
BTW - The connection works fine, when i have a local MQ Server installed (but still the client connects to the remote mq server). |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Apr 07, 2010 5:01 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You should not need a CCDT. However you may well need to pass all the connection information to the QCF/TCF like
- hostname
- channel
- port
- transport type
- qmgr name (optional?)
Using a CCDT would abstract you from creating it in the bindings file as you would just point to the CCDT.
Can you show us how you set up the .bindings file?
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
muzipok |
Posted: Wed Apr 07, 2010 5:06 am Post subject: |
|
|
Novice
Joined: 26 Mar 2010 Posts: 11
|
fjb_saper wrote: |
You should not need a CCDT. However you may well need to pass all the connection information to the QCF/TCF like
- hostname
- channel
- port
- transport type
- qmgr name (optional?)
Using a CCDT would abstract you from creating it in the bindings file as you would just point to the CCDT.
Can you show us how you set up the .bindings file?
Have fun  |
The .bindings file was created with the MQ Explorer on the MQServer.
So I do not have a script for it at the moment. Can I reverse engineer the .bindings-file? (Other than to view it in an editor *g*)
What do you mean by "pass the information to the ConnectionFactory"?
You meant, passing the information when creating the connectionFactory, right? Or can I adjust the settings for the connectionFactory from my application?(Of course I could also create a connectionFactory from source, but that is not my intention). |
|
Back to top |
|
 |
mvic |
Posted: Wed Apr 07, 2010 5:13 am Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
muzipok wrote: |
What do you mean by "pass the information to the ConnectionFactory"?
You meant, passing the information when creating the connectionFactory, right? Or can I adjust the settings for the connectionFactory from my application?(Of course I could also create a connectionFactory from source, but that is not my intention). |
Does the sample source code provide what you need? If no, then what is it missing? |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Apr 07, 2010 5:15 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
No... but having retrieved the connection factory from JNDI you could check the type, cast it and output the properties into the log.
This would give more insight into what is going on.
I still like the old (command line with input file) method for creating the .bindings file...
Lets you correct mistakes sometimes faster than the interactive gui oriented mode...
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
muzipok |
Posted: Wed Apr 07, 2010 5:28 am Post subject: |
|
|
Novice
Joined: 26 Mar 2010 Posts: 11
|
fjb_saper wrote: |
No... but having retrieved the connection factory from JNDI you could check the type, cast it and output the properties into the log.
This would give more insight into what is going on.
I still like the old (command line with input file) method for creating the .bindings file...
Lets you correct mistakes sometimes faster than the interactive gui oriented mode...
Have fun  |
I think I found it.
I debugged it from within VS2008 and got the properties:
Code: |
{XMSC_ASYNC_EXCEPTIONS : -1
XMSC_WMQ_BROKER_CONTROLQ : SYSTEM.BROKER.CONTROL.QUEUE
XMSC_WMQ_HOST_NAME : localhost
XMSC_WMQ_CONNECTION_TAG : System.Byte[]
XMSC_WMQ_TEMP_Q_PREFIX :
version : 7
XMSC_WMQ_SHARE_CONV_ALLOWED : 1
XMSC_WMQ_CLEANUP_LEVEL : 1
XMSC_CONNECTION_TYPE_NAME : IBM.XMS.Client.WMQ
XMSC_WMQ_USE_CONNECTION_POOLING : true
XMSC_WMQ_TEMPORARY_MODEL : SYSTEM.DEFAULT.MODEL.QUEUE
XMSC_WMQ_RESCAN_INTERVAL : 5000
XMSC_WMQ_STATUS_REFRESH_INTERVAL : 60000
XMSC_WMQ_QMGR_CCSID : 1208
XMSC_WMQ_SSL_KEY_RESETCOUNT : 0
XMSC_PASSWORD : ********
XMSC_WMQ_CONNECTION_MODE : 1
XMSC_WMQ_MESSAGE_RETENTION : 1
XMSC_WMQ_SYNCPOINT_ALL_GETS : false
failIfQuiesce : 1
XMSC_WMQ_BROKER_DUR_SUBQ : SYSTEM.JMS.D.SUBSCRIBER.QUEUE
multicast : 0
XMSC_WMQ_SPARSE_SUBSCRIPTIONS : false
XMSC_WMQ_PUB_ACK_INTERVAL : 25
XMSC_WMQ_SSL_FIPS_REQUIRED : false
wildcardFormat : 0
XMSC_WMQ_PROVIDER_VERSION : unspecified
XMSC_WMQ_BROKER_SUBQ : SYSTEM.JMS.ND.SUBSCRIBER.QUEUE
XMSC_WMQ_BROKER_QMGR : MQ7MQ7MQ7
encoding : 546
XMSC_WMQ_QUEUE_MANAGER : MQ7MQ7MQ7
brokerVersion : 0
XMSC_WMQ_MESSAGE_SELECTION : 1
XMSC_WMQ_MAX_BUFFER_SIZE : 1000
XMSC_CONNECTION_TYPE : 1
XMSC_WMQ_CHANNEL : MQ7MQ7MQ7.SRV.CHANNEL
XMSC_WMQ_CONNECT_OPTIONS : 0
XMSC_WMQ_MAP_NAME_STYLE : True
targetClient : 0
XMSC_WMQ_BROKER_PUBQ_QMGR :
XMSC_WMQ_SUBSCRIPTION_STORE : 1
XMSC_WMQ_CLEANUP_INTERVAL : 3600000
XMSC_WMQ_LOCAL_ADDRESS :
XMSC_ADMIN_OBJECT_TYPE : 20
XMSC_WMQ_POLLING_INTERVAL : 5000
XMSC_WMQ_BROKER_PUBQ : SYSTEM.BROKER.DEFAULT.STREAM
CCSID : 1208
XMSC_WMQ_MSG_BATCH_SIZE : 10
XMSC_WMQ_PORT : 1414
} |
As
Code: |
XMSC_WMQ_HOST_NAME : localhost |
is set to localhost it cannot work. But the question is: why is there still localhost when i put in an IP address when creating the connectionFactory from within MQ Explorer?
When editing the properties of the connectionFactory in MQExplorer i select "Connection" and fillin 12.12.12.12(1414) on the ConnectionList property. Is this the wrong place to set the host?
Last edited by muzipok on Wed Apr 07, 2010 5:49 am; edited 1 time in total |
|
Back to top |
|
 |
muzipok |
Posted: Wed Apr 07, 2010 5:47 am Post subject: |
|
|
Novice
Joined: 26 Mar 2010 Posts: 11
|
too fast.
now i get an 2278 Reason Code MQRC_CLIENT_CONN_ERROR
What does that mean? |
|
Back to top |
|
 |
mvic |
Posted: Wed Apr 07, 2010 6:25 am Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
muzipok wrote: |
too fast.
now i get an 2278 Reason Code MQRC_CLIENT_CONN_ERROR
What does that mean? |
Go to the Information Center http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp , type MQRC_CLIENT_CONN_ERROR in the search box (top left of the page). Read the first few search result pages. Then you should know the answer.
Did you use the supplied samples to check they work/don't work? This is my 3rd time asking this question. |
|
Back to top |
|
 |
muzipok |
Posted: Wed Apr 07, 2010 6:34 am Post subject: |
|
|
Novice
Joined: 26 Mar 2010 Posts: 11
|
mvic wrote: |
muzipok wrote: |
too fast.
now i get an 2278 Reason Code MQRC_CLIENT_CONN_ERROR
What does that mean? |
Go to the Information Center http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp , type MQRC_CLIENT_CONN_ERROR in the search box (top left of the page). Read the first few search result pages. Then you should know the answer.
Did you use the supplied samples to check they work/don't work? This is my 3rd time asking this question. |
I read already the information center. But the text isn't very helpful for me. Could you give me some insight, what I should do from XMS to eliminate that error.
How can I set these params? MQSERVER variable was already supplied to the environment...
And no, the code from the samples doesn't work either. Same error.
Code: |
2278 (08E6) (RC2278): MQRC_CLIENT_CONN_ERROR
Explanation
An MQCONNX call was issued to connect to a queue manager, but the MQCD channel definition structure is not specified correctly. One of the following applies:
* ClientConnOffset is not zero and ClientConnPtr is not zero and not the null pointer.
* ClientConnPtr is not a valid pointer.
* ClientConnPtr or ClientConnOffset points to storage that is not accessible.
This reason code occurs in the following environments: AIX®, HP-UX, i5/OS®, Solaris, Windows®, plus WebSphere® MQ clients connected to these systems. It also occurs in Java™ applications when a client channel definition table is specified to determine the name of the channel, but the table itself cannot be found.
Completion Code
MQCC_FAILED
Programmer response
Ensure that at least one of ClientConnOffset and ClientConnPtr is zero. Ensure that the field used points to accessible storage. Ensure that the URL of the client channel definition table is correct.
|
Thanks! |
|
Back to top |
|
 |
mvic |
Posted: Wed Apr 07, 2010 6:56 am Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
muzipok wrote: |
And no, the code from the samples doesn't work either. Same error. |
Thank you for confirming this. The samples should not fail with MQRC_CLIENT_CONN_ERROR and so I'm afraid you might have to raise a PMR and get IBM support to help.
Are you using the latest fix pack? 6.0.2.9 was released yesterday. 7.0.1.1 is the most recent on v7. |
|
Back to top |
|
 |
muzipok |
Posted: Wed Apr 07, 2010 6:59 am Post subject: |
|
|
Novice
Joined: 26 Mar 2010 Posts: 11
|
mvic wrote: |
muzipok wrote: |
And no, the code from the samples doesn't work either. Same error. |
Thank you for confirming this. The samples should not fail with MQRC_CLIENT_CONN_ERROR and so I'm afraid you might have to raise a PMR and get IBM support to help.
Are you using the latest fix pack? 6.0.2.9 was released yesterday. 7.0.1.1 is the most recent on v7. |
Yes, we are using 7.0.1.1.
I hope I do not have to contact the IBM support. I'm already waiting for eight weeks for a bugfix in MessageBroker v7... |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Apr 07, 2010 7:01 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Also please remember that use of MQSERVER environment variable prevents you from using a client channel table.
You need to set the other MQ variables and unset MQSERVER. MQSERVER provides a default client channel definition. |
|
Back to top |
|
 |
|