Author |
Message
|
vivica12 |
Posted: Mon Oct 27, 2008 7:12 am Post subject: CCDT and Failover in WAS6.1 |
|
|
Acolyte
Joined: 13 Jul 2007 Posts: 58
|
We are trying to configure our JMS Connection Factories to utilize a CCDT file for failover when connecting to MQ. I am following a doc provided by IBM to accomplish this. We keep running into the same errors.
This is what we've done.
QM1, QM2 - CCDT file created with 2 CLNTCONN's configured with teh QMNAME='dev_grp', for the qmgr group name.
The queue conn factory on WAS has the CCDTURL property set to the file location, and the QMANAGER property set to dev_grp.
The error we get it:
2278 (X'08E6')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.
The exact cmds to create the CCDT file are below:
define channel(CHL1) CHLTYPE(CLNTCONN) TRPTYPE(TCP) CONNAME('server(port)') DESCR('Client conn app description') QMNAME(dev_grp)
That was run twice with CHL2 as well.
any thoughts? we can't seem to find what we're missing, and it's rather new to us. The error talks about ClientConnOffset, clientConnPtr etc.
Any guidance you can provide would be great. I realize we're missing soemthing, but so far, can't figure out what.
I am wondering about the qmgr group name, i hadn't used that before and the QMGR doesn't have setting for it, so I only have that configured on the client conn. _________________ Vivica - signing off |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Oct 27, 2008 8:14 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Take a copy of the channel table and put it on a machine with MQCLient installed. Assuming its called VIVICA.TAB and you stuck it on the C:\drive on a Windows server with MQ Client, then do this from the command line:
SET MQCHHLIB=C:\
SET MQCHLTAB=VIVICA.TAB
Then execute the amqscnxc sample app as follows:
amqscnxc DEV_GRP
If it works, the table is good. If it fails, get it working before you go to your app with it.
dev_grp will get folded to uppercase unless you wrap it in quotes. You should always use UPPERCASE for MQ Objects names to avoid this confusion.
I would not specify the QM name in the channel definition or in my app's MQCONNX call. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
vivica12 |
Posted: Mon Oct 27, 2008 12:13 pm Post subject: |
|
|
Acolyte
Joined: 13 Jul 2007 Posts: 58
|
So I did that, and it errored with a 2058.
On an MQCONN or MQCONNX call, the value specified for the QMgrName parameter is not valid or not known. This reason also occurs if the parameter pointer is not valid. (It is not always possible to detect parameter pointers that are not valid; if not detected, unpredictable results occur.) On z/OS for CICS applications, this reason can occur on any call if the original connect specified an incorrect or unrecognized name. This reason code can also occur if a WebSphere MQ client application attempts to connect to a queue manager within a WebSphere MQ-client queue-manager group (see the QMgrName parameter of MQCONN), and either:
* Queue-manager groups are not supported.
* There is no queue-manager group with the specified name.
Corrective action: Use an all-blank name if possible, or verify that the name used is valid.
I"ve been previously able to use a CCDT file with an amqsputc command, using the SET options to set the table, and it works jsut fine. I created the table in the same way (but without the QMNAME field).
I"m not sure what I'm doing wrong, if I leave QMNAME/QMGROUP empty on the clntconn/CCDT creation, the app still errors wtih the same thing - 2058. so with our without a group identified, it doens't know how to connect. What am I missing? _________________ Vivica - signing off |
|
Back to top |
|
 |
vivica12 |
Posted: Mon Oct 27, 2008 12:14 pm Post subject: |
|
|
Acolyte
Joined: 13 Jul 2007 Posts: 58
|
Is there somewhere at the qmgr level that I have to set it's group to be DEV_GRP, it doesn't seem to be an option...but the error seems to tell me it doesn't know this group. _________________ Vivica - signing off |
|
Back to top |
|
 |
vivica12 |
Posted: Mon Oct 27, 2008 12:18 pm Post subject: |
|
|
Acolyte
Joined: 13 Jul 2007 Posts: 58
|
Just to clarify, here is what i've done:
Creat the CCDT file using the following 2 commands:
define channel(CHL1) CHLTYPE(CLNTCONN) TRPTYPE(TCP) CONNAME('server1(port)') DESCR('Client conn app description') QMNAME(DEV_GRP)
ddefine channel(CHL2) CHLTYPE(CLNTCONN) TRPTYPE(TCP) CONNAME('server2(port)') DESCR('Client conn app description') QMNAME(DEV_GRP)
copied that CCDT file to the windows server to test with the client
Ran the 2 set commands above. Got the response below.
C:\>amqscnxc DEV_GRP
Sample AMQSCNXC start
Connecting to queue manager DEV_GRP
with no client connection information specified.
MQCONNX ended with reason code 2058
Repeated the test with the CCDT file with NOTHING in the QMNAME field, same error, added the actual QM1 or QM2 to teh QMNAME field on the clntcoonn..same error. _________________ Vivica - signing off |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Oct 27, 2008 2:09 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Create a channel table with nothing in the QM name field.
Then post the complete output of you setting the MQCHLLIB and MQCHLTAB variables, and how you execute amqscnxc.
I would not mess with the Java app or DEV_GRP until you get this working first. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Oct 27, 2008 2:59 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Do not connect to 'DEV_GROUP' but to '*DEV_GROUP'. In the definition you still use 'DEV_GROUP'. If you omit the leading star the system will try to check that the qmgr's name is 'DEV_GROUP', hence the 2058....
This is all described in the client and programmer manuals.  _________________ MQ & Broker admin |
|
Back to top |
|
 |
vivica12 |
Posted: Tue Oct 28, 2008 5:34 am Post subject: |
|
|
Acolyte
Joined: 13 Jul 2007 Posts: 58
|
I am an administrator, so i don't generally dive deep into programming manuals, (i have read lots of admin manuals) but i'm happy to read the programmers if it helps solve this issue.
I think the * worked when doing the following:
set MQCHLLIB=c:\
set MQCHLTAB=GWD_GRP.TAB
C:\>amqscnxc *GWD_GRP
Sample AMQSCNXC start
Connecting to queue manager *GWD_GRP
with no client connection information specified.
Connection established to queue manager MQGWD2
Sample AMQSCNXC end
so I assume that from a java perspective, we could make the same change with the *, and it should work? _________________ Vivica - signing off |
|
Back to top |
|
 |
vivica12 |
Posted: Tue Oct 28, 2008 8:10 am Post subject: |
|
|
Acolyte
Joined: 13 Jul 2007 Posts: 58
|
Update on Solution - for future reference:
After validating the file worked using the amqscnxc, we went back to teh ConnFactory.
The updates to the ConnFactory were:
remove the channel name from the actual channel field
Add custom property of QMANAGER=*GWD_GRP
update path to CCDT to have 3 slashes - /// - instead of 2, as 2 can cause a runtime error (which i found on IBM's webside with lots of good info on the combo of error - MQJMS2005 and 2423)
Exciting, it's working now!!!!!
thanks for the guidance, and yes we've got the programmers manual now, and reading it! _________________ Vivica - signing off |
|
Back to top |
|
 |
vivica12 |
Posted: Tue Oct 28, 2008 8:50 am Post subject: |
|
|
Acolyte
Joined: 13 Jul 2007 Posts: 58
|
Question. I'm going through the MQ programmers guide, and it doesn't refer to anything with seting up Connection factories using a CCDT file or a * etc.
Do I need the JMS programmers guide or something? I also got the client guide for MQ, and also no reference to this. Can you link me to the guide you mention above? _________________ Vivica - signing off |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Oct 28, 2008 9:02 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
They're all in the Info Center, linked at the top of this page. |
|
Back to top |
|
 |
vivica12 |
Posted: Tue Oct 28, 2008 9:14 am Post subject: |
|
|
Acolyte
Joined: 13 Jul 2007 Posts: 58
|
I was trying to get teh actual guide to read, Info Center is sooo huge. I was hoping he was referring to an actual guide that myself and the programmers can read -- rather then info center which is mostly search and find stuff, unless you have a TON of time to just read everything. _________________ Vivica - signing off |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Oct 28, 2008 1:49 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You can search the info center for channel table, see where the hit takes you, synch back to the tree and use that as a guide as to what section to read....  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|