Author |
Message
|
objectthinker06 |
Posted: Thu May 21, 2009 4:06 pm Post subject: JMS to WMQ thru CCDT without SYSTEM.DEF.SVRCONN |
|
|
Novice
Joined: 15 Aug 2006 Posts: 15
|
How do you make a JMS program use a specific SVRCONN channel defined for the app and not SYSTEM.DEF.SVRCONN channel ? By JMS, I'm refering to those classes that are in javax.jms.* package and not WMQ's JMS classes in the package: com.ibm.mq.jms.*.
Thanks |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu May 21, 2009 6:52 pm Post subject: Re: JMS to WMQ thru CCDT without SYSTEM.DEF.SVRCONN |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
objectthinker06 wrote: |
How do you make a JMS program use a specific SVRCONN channel defined for the app and not SYSTEM.DEF.SVRCONN channel ? By JMS, I'm refering to those classes that are in javax.jms.* package and not WMQ's JMS classes in the package: com.ibm.mq.jms.*.
Thanks |
By setting up correctly your CCDT and the CCDT URL. Use a dummy qmgr name when setting up the CCDT. For more information the programmer manual and the client manual
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
mqjeff |
Posted: Fri May 22, 2009 4:47 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
While it is a fine idea to use a CCDT and a dummy queue manager name, it is not strictly necessary here.
All one really needs to do is configure the QCF properties in the JNDI to use a different channel name. |
|
Back to top |
|
 |
objectthinker06 |
Posted: Fri May 22, 2009 5:42 am Post subject: |
|
|
Novice
Joined: 15 Aug 2006 Posts: 15
|
The whole CCDT seems to be so complex to get it working. My test environment on WMQ v7 is mentioned below:
I have two qeueue managers QM1 (listening on port # 9001) and QM2 (on port # 9002) and a default queue manager DFQM listening on port 1414 however DFQM is shutdown. There are two SVRCONN channels on each queue manager TO.QM1 and TO.QM2. There are two client connection channels defined on QM2 matching those two SVRCONN channels. I have a TestQ (QLOCAL) on QM1 and Test2Q (QLOCAL) on QM2. I have a CF (called TestCF) defined based on the CCDT of QM2. However when I connect through my JMS App I get the following error:
Destination name is TestJMSQ
com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2423' ('MQRC_CLIENT_CHANNEL_CONFLICT').
What should be the channel value in CF ?
InitCtx> dis CF(TestCF)
CCSID(819)
BROKERSUBQ(SYSTEM.JMS.ND.SUBSCRIBER.QUEUE)
PORT(1414)
SYNCPOINTALLGETS(YES)
PUBACKINT(25)
POLLINGINT(5000)
RECEIVEISOLATION(COMMITTED)
ASYNCEXCEPTION(-1)
MSGSELECTION(CLIENT)
TEMPTOPICPREFIX()
OUTCOMENOTIFICATION(YES)
SHARECONVALLOWED(YES)
CHANNEL(TO.QM2.SVRCONN)
CCDTURL(file:/C:/AMQCLCHL.TAB)
OPTIMISTICPUBLICATION(NO)
BROKERCONQ(SYSTEM.BROKER.CONTROL.QUEUE)
USECONNPOOLING(YES)
COMPHDR(NONE )
HOSTNAME(127.0.0.1)
CLONESUPP(DISABLED)
SPARSESUBS(NO)
LOCALADDRESS()
SENDCHECKCOUNT(0)
VERSION(7)
BROKERCCSUBQ(SYSTEM.JMS.ND.CC.SUBSCRIBER.QUEUE)
PROCESSDURATION(UNKNOWN)
SSLRESETCOUNT(0)
CONNOPT(STANDARD)
BROKERQMGR()
SSLFIPSREQUIRED(NO)
MAPNAMESTYLE(STANDARD)
FAILIFQUIESCE(YES)
CLEANUP(SAFE)
RESCANINT(5000)
WILDCARDFORMAT(TOPIC_ONLY)
TEMPQPREFIX()
PROVIDERVERSION(UNSPECIFIED)
MSGRETENTION(YES)
MSGBATCHSZ(10)
BROKERPUBQ(SYSTEM.BROKER.DEFAULT.STREAM)
QMANAGER(*QM)
TEMPMODEL(SYSTEM.DEFAULT.MODEL.QUEUE)
BROKERVER(UNSPECIFIED)
CLEANUPINT(3600000)
STATREFRESHINT(60000)
SUBSTORE(BROKER)
TRANSPORT(CLIENT)
COMPMSG(NONE )
TARGCLIENTMATCHING(YES)
==============================
InitCtx> dis Q(TestJMSQ)
FAILIFQUIESCE(YES)
QUEUE(LQ)
MDWRITE(NO)
QMANAGER()
MSGBODY(UNSPECIFIED)
MDMSGCTX(DEFAULT)
PUTASYNCALLOWED(AS_DEST)
PERSISTENCE(APP)
CCSID(1208)
READAHEADCLOSEPOLICY(DELIVER_ALL)
TARGCLIENT(JMS)
READAHEADALLOWED(AS_DEST)
ENCODING(NATIVE)
MDREAD(NO)
PRIORITY(APP)
EXPIRY(APP)
VERSION(7)
Thanks |
|
Back to top |
|
 |
mqjeff |
Posted: Fri May 22, 2009 6:01 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
You want the CCDT to tell the JNDI def what the name of the channel is. Leave it blank in the CF. |
|
Back to top |
|
 |
objectthinker06 |
Posted: Fri May 22, 2009 6:28 am Post subject: |
|
|
Novice
Joined: 15 Aug 2006 Posts: 15
|
When I leave the channel blank in the CF I get the following error:
Destination name is TestQ
com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2278' ('MQRC_CLIENT_CONN_ERROR').
|
|
Back to top |
|
 |
mqjeff |
Posted: Fri May 22, 2009 6:46 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
|
Back to top |
|
 |
fjb_saper |
Posted: Fri May 22, 2009 10:43 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Quote: |
CHANNEL(TO.QM2.SVRCONN)
CCDTURL(file:/C:/AMQCLCHL.TAB)
|
Now if I remember the manual correctly the channel entry HAS to be blank when you use a CCDT.
Try
Code: |
CHANNEL(' ')
CCDTURL(file:///C:/AMQCLCHL.TAB)
|
 _________________ MQ & Broker admin |
|
Back to top |
|
 |
|