ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Java / JMS » JBoss and Multi-instance queue manager

Post new topic  Reply to topic Goto page 1, 2  Next
 JBoss and Multi-instance queue manager « View previous topic :: View next topic » 
Author Message
LouML
PostPosted: Tue Oct 11, 2011 7:15 am    Post subject: JBoss and Multi-instance queue manager Reply with quote

Partisan

Joined: 10 Nov 2005
Posts: 305
Location: Jersey City, NJ / Bethpage, NY

We’ve built a Multi-instance Queue Manager environment using two Solaris SPARC 10 servers (server1 & server2) running MQ Server 7.0.1.6 in development.

Most of our applications have successfully tested automated failover, with either the MQSERVER variable or AMQCLCHL.TAB file containing the multiple hostnames as - server1(1414),server2(1414)

However, some of our Java apps do not seem to be able to specify the multiple hostnames. One application developer said that Jboss does not support Multi-instance Queue Manager.

Does anyone know if this is true?

Another Java app uses connection factories. I used JMSAdmin on his MQ Client server to create the connection factory with the multiple hosts, however, he does not want to have to manage connection factories on all of his MQ Client boxes. He wants to have it centralized to a JNDI server.

Can anyone offer any tips as to how to set this up?
_________________
Yeah, well, you know, that's just, like, your opinion, man. - The Dude
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Oct 11, 2011 11:25 am    Post subject: Re: JBoss and Multi-instance queue manager Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

LouML wrote:
We’ve built a Multi-instance Queue Manager environment using two Solaris SPARC 10 servers (server1 & server2) running MQ Server 7.0.1.6 in development.

Most of our applications have successfully tested automated failover, with either the MQSERVER variable or AMQCLCHL.TAB file containing the multiple hostnames as - server1(1414),server2(1414)

However, some of our Java apps do not seem to be able to specify the multiple hostnames. One application developer said that Jboss does not support Multi-instance Queue Manager.

Does anyone know if this is true?

Another Java app uses connection factories. I used JMSAdmin on his MQ Client server to create the connection factory with the multiple hosts, however, he does not want to have to manage connection factories on all of his MQ Client boxes. He wants to have it centralized to a JNDI server.

Can anyone offer any tips as to how to set this up?


I'd suggest you use a file based JNDI.
However using one JNDI with MI qmgrs can be a problem if you still have V6 code hanging around. The same for JBOSS. If all your MQ code there is V7 I do not see why it should not support multi-instance qmgr (that is if you are using a client connection). You do not expect JBoss to support an MI qmgr on a "bindings" connection now do you?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
LouML
PostPosted: Tue Oct 18, 2011 8:56 am    Post subject: Reply with quote

Partisan

Joined: 10 Nov 2005
Posts: 305
Location: Jersey City, NJ / Bethpage, NY

Using ./JMSAdmin, how do I define the QCF to connect to the multi-instance QM?

When I do the following, the app owner says his app can connect:

def qcf(aQCF_SERVER) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) host(server1) port(1414)

when I try these, it does not work:

def qcf(aQCF_SERVER) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) host(server1,server2)) port(1414)
def qcf(aQCF_SERVER) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) connectionnamelist('server1(1414),server2(1414)'))
_________________
Yeah, well, you know, that's just, like, your opinion, man. - The Dude
Back to top
View user's profile Send private message
mqjeff
PostPosted: Tue Oct 18, 2011 9:33 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

I would try moving the quotes.
LouML wrote:
def qcf(aQCF_SERVER) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) connectionnamelist('server1(1414)','server2(1414)'))
Back to top
View user's profile Send private message
LouML
PostPosted: Wed Oct 19, 2011 2:07 am    Post subject: Reply with quote

Partisan

Joined: 10 Nov 2005
Posts: 305
Location: Jersey City, NJ / Bethpage, NY

Yeah, I tried a bunch of variations. I guess my main issue is, do I use the HOST and PORT or CONNECTIONNAMELIST in my DEF QCF command?

I tried using HOST and PORT on aQCF_SERVER and CONNECTIONNAMELIST on aQCF_SERVER1 below.

Note the HOSTNAME and CONNECTIONNAMELIST values on the defined QCF's

Basically, I want to wind up with CONNECTIONNAMELIST('server1(1414),server2(1414)')

bash-2.05$ ./JMSAdmin

Licensed Materials - Property of IBM
5724-H72, 5655-R36, 5724-L26, 5655-L82
(c) Copyright IBM Corp. 2008 All Rights Reserved.
US Government Users Restricted Rights - Use, duplication or
disclosure restricted by GSA ADP Schedule Contract with
IBM Corp.
Starting Websphere MQ classes for Java(tm) Message Service Administration

InitCtx> def qcf(aQCF_SERVER1) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) connectionnamelist('server1(1414),server2(1414)')

InitCtx> def qcf(aQCF_SERVER) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) host(server1,server2) port(1414)

InitCtx> dis qcf(*)
QCF(aQCF_SERVER1)
ASYNCEXCEPTION(ALL)
CCSID(819)
CHANNEL(CH.SERVER.CLIENT)
CLIENTRECONNECTOPTIONS(ASDEF)
CLIENTRECONNECTTIMEOUT(1800)
COMPHDR(NONE )
COMPMSG(NONE )
CONNECTIONNAMELIST('server1(1414))
CONNOPT(STANDARD)
FAILIFQUIESCE(YES)
HOSTNAME('server1)
LOCALADDRESS()
MAPNAMESTYLE(STANDARD)
MSGBATCHSZ(10)
MSGRETENTION(YES)
POLLINGINT(5000)
PORT(1414)
PROVIDERVERSION(UNSPECIFIED)
QMANAGER(QM.SERVER.01)
RESCANINT(5000)
SENDCHECKCOUNT(0)
SHARECONVALLOWED(YES)
SSLFIPSREQUIRED(NO)
SSLRESETCOUNT(0)
SYNCPOINTALLGETS(NO)
TARGCLIENTMATCHING(YES)
TEMPMODEL(SYSTEM.DEFAULT.MODEL.QUEUE)
TEMPQPREFIX()
TRANSPORT(CLIENT)
USECONNPOOLING(YES)
VERSION(7)
WILDCARDFORMAT(TOPIC_ONLY)

QCF(aQCF_SERVER)
ASYNCEXCEPTION(ALL)
CCSID(819)
CHANNEL(CH.SERVER.CLIENT)
CLIENTRECONNECTOPTIONS(ASDEF)
CLIENTRECONNECTTIMEOUT(1800)
COMPHDR(NONE )
COMPMSG(NONE )
CONNECTIONNAMELIST(server1,server2(1414),server2(1414))
CONNOPT(STANDARD)
FAILIFQUIESCE(YES)
HOSTNAME(server1,server2)
LOCALADDRESS()
MAPNAMESTYLE(STANDARD)
MSGBATCHSZ(10)
MSGRETENTION(YES)
POLLINGINT(5000)
PORT(1414)
PROVIDERVERSION(UNSPECIFIED)
QMANAGER(QM.SERVER.01)
RESCANINT(5000)
SENDCHECKCOUNT(0)
SHARECONVALLOWED(YES)
SSLFIPSREQUIRED(NO)
SSLRESETCOUNT(0)
SYNCPOINTALLGETS(NO)
TARGCLIENTMATCHING(YES)
TEMPMODEL(SYSTEM.DEFAULT.MODEL.QUEUE)
TEMPQPREFIX()
TRANSPORT(CLIENT)
USECONNPOOLING(YES)
VERSION(7)
WILDCARDFORMAT(TOPIC_ONLY)


InitCtx>
_________________
Yeah, well, you know, that's just, like, your opinion, man. - The Dude
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Oct 19, 2011 2:14 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

I don't think you specify both host and connamelist.

But I'm kind of guessing here.
Back to top
View user's profile Send private message
LouML
PostPosted: Wed Oct 19, 2011 2:19 am    Post subject: Reply with quote

Partisan

Joined: 10 Nov 2005
Posts: 305
Location: Jersey City, NJ / Bethpage, NY

mqjeff wrote:
I don't think you specify both host and connamelist.

But I'm kind of guessing here.


I agree.

On my first def (aQCF_SERVER), I specified only HOST and PORT.

def qcf(aQCF_SERVER) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) host(server1,server2) port(1414)

On my next def (aQCF_SERVER1) I specified only CONNECTIONNAMELIST

def qcf(aQCF_SERVER1) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) connectionnamelist('server1(1414),server2(1414)')
_________________
Yeah, well, you know, that's just, like, your opinion, man. - The Dude
Back to top
View user's profile Send private message
LouML
PostPosted: Wed Oct 19, 2011 3:25 am    Post subject: Reply with quote

Partisan

Joined: 10 Nov 2005
Posts: 305
Location: Jersey City, NJ / Bethpage, NY

I was able to change CONNECTIONNAMELIST using MQExplorer.

I am waiting for the app owner to test it out.

QCF(aQCF_SERVER)
ASYNCEXCEPTION(ALL)
CCSID(819)
CHANNEL(CH.SERVER.CLIENT)
CLIENTRECONNECTOPTIONS(ASDEF)
CLIENTRECONNECTTIMEOUT(1800)
COMPHDR(NONE )
COMPMSG(NONE )
CONNECTIONNAMELIST(server1(1414),server2(1414))
CONNOPT(STANDARD)
FAILIFQUIESCE(YES)
LOCALADDRESS()
MAPNAMESTYLE(STANDARD)
MSGBATCHSZ(10)
MSGRETENTION(YES)
POLLINGINT(5000)
PROVIDERVERSION(UNSPECIFIED)
QMANAGER(QM.SERVER.01)
RESCANINT(5000)
SENDCHECKCOUNT(0)
SHARECONVALLOWED(YES)
SSLFIPSREQUIRED(NO)
SSLRESETCOUNT(0)
SYNCPOINTALLGETS(NO)
TARGCLIENTMATCHING(YES)
TEMPMODEL(SYSTEM.DEFAULT.MODEL.QUEUE)
TEMPQPREFIX()
TRANSPORT(CLIENT)
USECONNPOOLING(YES)
VERSION(7)
WILDCARDFORMAT(TOPIC_ONLY)
_________________
Yeah, well, you know, that's just, like, your opinion, man. - The Dude
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Oct 19, 2011 3:27 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

no quotes at all.... okay.
Back to top
View user's profile Send private message
LouML
PostPosted: Wed Oct 19, 2011 3:29 am    Post subject: Reply with quote

Partisan

Joined: 10 Nov 2005
Posts: 305
Location: Jersey City, NJ / Bethpage, NY

mqjeff wrote:
no quotes at all.... okay.


Well, it took it using MQExplorer. Until now, I've been using JMSAdmin command line.

Doesn't mean it's going to work. Once the app owner tests, I'll know.

If it fails, I'll try quotes.
_________________
Yeah, well, you know, that's just, like, your opinion, man. - The Dude
Back to top
View user's profile Send private message
LouML
PostPosted: Wed Oct 19, 2011 6:09 am    Post subject: Reply with quote

Partisan

Joined: 10 Nov 2005
Posts: 305
Location: Jersey City, NJ / Bethpage, NY

Okay, got it working. App owners confirmed the connection to the first server and the ability to fail over to the second successfully.

Modifying it with MQExplorer worked. For some reason, using the JMSAdmin command line method, would not work for me.

Anyway, thanks all
_________________
Yeah, well, you know, that's just, like, your opinion, man. - The Dude
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Oct 19, 2011 6:16 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

LouML wrote:
Okay, got it working. App owners confirmed the connection to the first server and the ability to fail over to the second successfully.

Modifying it with MQExplorer worked. For some reason, using the JMSAdmin command line method, would not work for me.

Anyway, thanks all


So if it works without quotes, and you can't get JMSAdmin to accept it without quotes, then you can try escaping the ( and ) in the JMSAdmin command line.

i.e.
Code:
def qcf(aQCF_SERVER1) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) connectionnamelist(server1\(1414\),server2\(1414\))
Back to top
View user's profile Send private message
LouML
PostPosted: Wed Oct 19, 2011 6:22 am    Post subject: Reply with quote

Partisan

Joined: 10 Nov 2005
Posts: 305
Location: Jersey City, NJ / Bethpage, NY

mqjeff wrote:
LouML wrote:
Okay, got it working. App owners confirmed the connection to the first server and the ability to fail over to the second successfully.

Modifying it with MQExplorer worked. For some reason, using the JMSAdmin command line method, would not work for me.

Anyway, thanks all


So if it works without quotes, and you can't get JMSAdmin to accept it without quotes, then you can try escaping the ( and ) in the JMSAdmin command line.

i.e.
Code:
def qcf(aQCF_SERVER1) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) connectionnamelist(server1\(1414\),server2\(1414\))


No good.

InitCtx> def qcf(aQCF_SERVER1) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) connectionnamelist(server1\(1414\),server2\(1414\))
Unable to create a valid object, please check the parameters supplied
JMSADM4128 CNLIST server1\(1414\),server2\(1414\)

InitCtx> def qcf(aQCF_SERVER1) qmgr(QM.SERVER.01) tran(client) chan(CH.SERVER.CLIENT) connectionnamelist('server1\(1414\),server2\(1414\)')
Unable to create a valid object, please check the parameters supplied
JMSADM4128 CNLIST 'server1\(1414\),server2\(1414\)'

InitCtx> end

Stopping Websphere MQ classes for Java(tm) Message Service Administration
_________________
Yeah, well, you know, that's just, like, your opinion, man. - The Dude
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Oct 19, 2011 6:27 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

hrm.

Well, maybe it's a forward slash or something else... might be worth a PMR if you were in the mood.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Oct 19, 2011 6:55 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

have you tried
Code:


connamelist('server1(1414)', 'server2(1414)')

?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » IBM MQ Java / JMS » JBoss and Multi-instance queue manager
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.