Deploy two MDB for MQ JMS provider - Weblogic

This is a discussion on Deploy two MDB for MQ JMS provider - Weblogic ; Hi, I got a strange error while deployment MDBs. We hava a MQ 5.3 on solaris and a WLS7.0.1 on the same box. We defined two Queue managers each one has a local Queue defined. What we are going to ...

+ Reply to Thread
Results 1 to 7 of 7

Thread: Deploy two MDB for MQ JMS provider

  1. Deploy two MDB for MQ JMS provider


    Hi,

    I got a strange error while deployment MDBs.

    We hava a MQ 5.3 on solaris and a WLS7.0.1 on the same box. We defined two Queue
    managers each one has a local Queue defined. What we are going to implement is
    that we wanna a MDB listenning to the one queue on one Queue Manager, and another
    MDB listenning to another Queue within another QueueManager.

    The deployment appoarch is that we follow the using JMS with foreign JMS provider
    document.
    1. using JMSAdmin tool with com.sun.jndi.fscontext.RefFSContextFactory and "/opt/mqm/java/jndi"
    setting to define
    def XAQCF(QMGR1_JNDI) QMGR(QMGR1)
    def XAQCF(QMGR2_JNDI) QMGR(QMGR2)
    def Q(Q1_JNDI) QMGR(QMGR1) QUEUE(Q1)
    def Q(Q2_JNDI) QMGR(QMGR2) QUEUE(Q2)

    2. modify the 2 MDBs DD likes follow:
    Q1_JNDI
    com.sun.jndi.fscontext.RefFSContextFactory
    file:/opt/mqm/java/jndi
    QMGR1_JNDI

    we set the MDB as transactional.

    3. change LD_LIBRARY_PATH to add /opt/mqm/java/lib; also add all the jars under
    /opt/mqm/java/lib to the CLASSPATH


    The Result is :
    If we only deploy one MDB works fine.
    If we deploy two MDBs, it gave us error:
    javax.jms.JMSException:MQJMS2005: failed to create MQQueueManager for 'QMGR2'
    Linked exception = 'com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason
    2103'


    On NT, we can deploy two MDBs, no problem.

    We tried many times and couldn't figure it out. Really need help...............

    Thanks in advance

    Peter


  2. Re: Deploy two MDB for MQ JMS provider

    Hi Peter,

    My first impression is that this is an MQ
    issue and not a WL issue, since the exception is an IBM exception,
    and the problem seems to be O/S specific.

    I recommend looking up the exception's "reason code"
    on IBM's support web-site - it might
    explain the problem.

    To narrow down the problem,
    you might try to create a simple reproducer by writing
    a very simple JMS client that doesn't use WL classes
    in the CLASSPATH (only MQ classes), and uses both CF's
    and both QMGRs to create JMS connections.

    Tom

    Peter Wang wrote:

    > Hi,
    >
    > I got a strange error while deployment MDBs.
    >
    > We hava a MQ 5.3 on solaris and a WLS7.0.1 on the same box. We defined two Queue
    > managers each one has a local Queue defined. What we are going to implement is
    > that we wanna a MDB listenning to the one queue on one Queue Manager, and another
    > MDB listenning to another Queue within another QueueManager.
    >
    > The deployment appoarch is that we follow the using JMS with foreign JMS provider
    > document.
    > 1. using JMSAdmin tool with com.sun.jndi.fscontext.RefFSContextFactory and "/opt/mqm/java/jndi"
    > setting to define
    > def XAQCF(QMGR1_JNDI) QMGR(QMGR1)
    > def XAQCF(QMGR2_JNDI) QMGR(QMGR2)
    > def Q(Q1_JNDI) QMGR(QMGR1) QUEUE(Q1)
    > def Q(Q2_JNDI) QMGR(QMGR2) QUEUE(Q2)
    >
    > 2. modify the 2 MDBs DD likes follow:
    > Q1_JNDI
    > com.sun.jndi.fscontext.RefFSContextFactory
    > file:/opt/mqm/java/jndi
    > QMGR1_JNDI
    >
    > we set the MDB as transactional.
    >
    > 3. change LD_LIBRARY_PATH to add /opt/mqm/java/lib; also add all the jars under
    > /opt/mqm/java/lib to the CLASSPATH
    >
    >
    > The Result is :
    > If we only deploy one MDB works fine.
    > If we deploy two MDBs, it gave us error:
    > javax.jms.JMSException:MQJMS2005: failed to create MQQueueManager for 'QMGR2'
    > Linked exception = 'com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason
    > 2103'
    >
    >
    > On NT, we can deploy two MDBs, no problem.
    >
    > We tried many times and couldn't figure it out. Really need help...............
    >
    > Thanks in advance
    >
    > Peter
    >



  3. Re: Deploy two MDB for MQ JMS provider


    Hi Tom,

    I tried to create a simple JMS client and I could get binding object via lookup.


    The MQ linked exception error code 2103 means:
    MQRC_ANOTHER_Q_MGR_CONNECTED X'837' Another queue manager already connected.

    An MQCONN call was issued, but the thread or process is already connected to a
    different queue manager. The thread or process can connect to only one queue manager
    at a time.

    On MVS/ESA and OS/400, this reason code does not occur.

    Corrective action: Use the MQDISC call to disconnect from the queue manager which
    is already connected, and then issue the MQCONN call to connect to the new queue
    manager. Note: Disconnecting from the existing queue manager will close any queues
    which are currently open; it is recommended that any uncommitted units of work
    should be committed or backed out before the MQDISC call is used.


    Also I tried to contact IBM MQ but could not find a good source so far.

    Do you have further idea? Thanks

    Tom Barnes wrote:
    >Hi Peter,
    >
    >My first impression is that this is an MQ
    >issue and not a WL issue, since the exception is an IBM exception,
    >and the problem seems to be O/S specific.
    >
    >I recommend looking up the exception's "reason code"
    >on IBM's support web-site - it might
    >explain the problem.
    >
    >To narrow down the problem,
    >you might try to create a simple reproducer by writing
    >a very simple JMS client that doesn't use WL classes
    >in the CLASSPATH (only MQ classes), and uses both CF's
    >and both QMGRs to create JMS connections.
    >
    >Tom
    >
    >Peter Wang wrote:
    >
    >> Hi,
    >>
    >> I got a strange error while deployment MDBs.
    >>
    >> We hava a MQ 5.3 on solaris and a WLS7.0.1 on the same box. We defined

    >two Queue
    >> managers each one has a local Queue defined. What we are going to implement

    >is
    >> that we wanna a MDB listenning to the one queue on one Queue Manager,

    >and another
    >> MDB listenning to another Queue within another QueueManager.
    >>
    >> The deployment appoarch is that we follow the using JMS with foreign

    >JMS provider
    >> document.
    >> 1. using JMSAdmin tool with com.sun.jndi.fscontext.RefFSContextFactory

    >and "/opt/mqm/java/jndi"
    >> setting to define
    >> def XAQCF(QMGR1_JNDI) QMGR(QMGR1)
    >> def XAQCF(QMGR2_JNDI) QMGR(QMGR2)
    >> def Q(Q1_JNDI) QMGR(QMGR1) QUEUE(Q1)
    >> def Q(Q2_JNDI) QMGR(QMGR2) QUEUE(Q2)
    >>
    >> 2. modify the 2 MDBs DD likes follow:
    >> Q1_JNDI
    >> com.sun.jndi.fscontext.RefFSContextFactory
    >> file:/opt/mqm/java/jndi
    >> QMGR1_JNDI
    >>
    >> we set the MDB as transactional.
    >>
    >> 3. change LD_LIBRARY_PATH to add /opt/mqm/java/lib; also add all the

    >jars under
    >> /opt/mqm/java/lib to the CLASSPATH
    >>
    >>
    >> The Result is :
    >> If we only deploy one MDB works fine.
    >> If we deploy two MDBs, it gave us error:
    >> javax.jms.JMSException:MQJMS2005: failed to create MQQueueManager for

    >'QMGR2'
    >> Linked exception = 'com.ibm.mq.MQException: MQJE001: Completion Code

    >2, Reason
    >> 2103'
    >>
    >>
    >> On NT, we can deploy two MDBs, no problem.
    >>
    >> We tried many times and couldn't figure it out. Really need help...............
    >>
    >> Thanks in advance
    >>
    >> Peter
    >>

    >



  4. Re: Deploy two MDB for MQ JMS provider


    Hi Tom,

    We changed the JMSAdmin object by using QCF instead of XAQCF, and removed the
    transaction requied from MDB DD. Then, we can deploy both MDB.

    Do you think what kind of reason caused that? Is this a bug or something?

    Thanks.

    Tom Barnes wrote:
    >Hi Peter,
    >
    >My first impression is that this is an MQ
    >issue and not a WL issue, since the exception is an IBM exception,
    >and the problem seems to be O/S specific.
    >
    >I recommend looking up the exception's "reason code"
    >on IBM's support web-site - it might
    >explain the problem.
    >
    >To narrow down the problem,
    >you might try to create a simple reproducer by writing
    >a very simple JMS client that doesn't use WL classes
    >in the CLASSPATH (only MQ classes), and uses both CF's
    >and both QMGRs to create JMS connections.
    >
    >Tom
    >
    >Peter Wang wrote:
    >
    >> Hi,
    >>
    >> I got a strange error while deployment MDBs.
    >>
    >> We hava a MQ 5.3 on solaris and a WLS7.0.1 on the same box. We defined

    >two Queue
    >> managers each one has a local Queue defined. What we are going to implement

    >is
    >> that we wanna a MDB listenning to the one queue on one Queue Manager,

    >and another
    >> MDB listenning to another Queue within another QueueManager.
    >>
    >> The deployment appoarch is that we follow the using JMS with foreign

    >JMS provider
    >> document.
    >> 1. using JMSAdmin tool with com.sun.jndi.fscontext.RefFSContextFactory

    >and "/opt/mqm/java/jndi"
    >> setting to define
    >> def XAQCF(QMGR1_JNDI) QMGR(QMGR1)
    >> def XAQCF(QMGR2_JNDI) QMGR(QMGR2)
    >> def Q(Q1_JNDI) QMGR(QMGR1) QUEUE(Q1)
    >> def Q(Q2_JNDI) QMGR(QMGR2) QUEUE(Q2)
    >>
    >> 2. modify the 2 MDBs DD likes follow:
    >> Q1_JNDI
    >> com.sun.jndi.fscontext.RefFSContextFactory
    >> file:/opt/mqm/java/jndi
    >> QMGR1_JNDI
    >>
    >> we set the MDB as transactional.
    >>
    >> 3. change LD_LIBRARY_PATH to add /opt/mqm/java/lib; also add all the

    >jars under
    >> /opt/mqm/java/lib to the CLASSPATH
    >>
    >>
    >> The Result is :
    >> If we only deploy one MDB works fine.
    >> If we deploy two MDBs, it gave us error:
    >> javax.jms.JMSException:MQJMS2005: failed to create MQQueueManager for

    >'QMGR2'
    >> Linked exception = 'com.ibm.mq.MQException: MQJE001: Completion Code

    >2, Reason
    >> 2103'
    >>
    >>
    >> On NT, we can deploy two MDBs, no problem.
    >>
    >> We tried many times and couldn't figure it out. Really need help...............
    >>
    >> Thanks in advance
    >>
    >> Peter
    >>

    >



  5. Re: Deploy two MDB for MQ JMS provider

    Hi Peter,

    This may be a limitation of IBM. IBM's XAQCF must use
    shared memory to communicated with its QM, and my guess
    is that there may be a limitation that a single
    process (in this case a JVM) can only interact with a single
    QM via shared memory at a time. If this is true, I can
    only think of two possible work-arounds:

    (1) configure 1 QM to forward its messages to a queue on
    the other, or perhaps to transparently make its
    queues seem locally available on the other QM
    (I'm not familiar enough with MQ to know the correct
    terminology, but I know one or the other should
    be possible.)

    (2) Use MQs new remote capable XA JMS client
    "Extended Transactional Client" rather
    than the shared memory XA client:
    http://publibfp.boulder.ibm.com/epubs/pdf/csqzar00.pdf

    If you come up with a work-around (or one of the above
    two suggestions work), please post the answer. I imagine
    this same problem will occur with other customers.

    Tom

    peter.wang wrote:

    > Hi Tom,
    >
    > We changed the JMSAdmin object by using QCF instead of XAQCF, and removed the
    > transaction requied from MDB DD. Then, we can deploy both MDB.
    >
    > Do you think what kind of reason caused that? Is this a bug or something?
    >
    > Thanks.
    >
    > Tom Barnes wrote:
    >
    >>Hi Peter,
    >>
    >>My first impression is that this is an MQ
    >>issue and not a WL issue, since the exception is an IBM exception,
    >>and the problem seems to be O/S specific.
    >>
    >>I recommend looking up the exception's "reason code"
    >>on IBM's support web-site - it might
    >>explain the problem.
    >>
    >>To narrow down the problem,
    >>you might try to create a simple reproducer by writing
    >>a very simple JMS client that doesn't use WL classes
    >>in the CLASSPATH (only MQ classes), and uses both CF's
    >>and both QMGRs to create JMS connections.
    >>
    >>Tom
    >>
    >>Peter Wang wrote:
    >>
    >>
    >>>Hi,
    >>>
    >>>I got a strange error while deployment MDBs.
    >>>
    >>>We hava a MQ 5.3 on solaris and a WLS7.0.1 on the same box. We defined

    >>
    >>two Queue
    >>
    >>>managers each one has a local Queue defined. What we are going to implement

    >>
    >>is
    >>
    >>>that we wanna a MDB listenning to the one queue on one Queue Manager,

    >>
    >>and another
    >>
    >>>MDB listenning to another Queue within another QueueManager.
    >>>
    >>>The deployment appoarch is that we follow the using JMS with foreign

    >>
    >>JMS provider
    >>
    >>>document.
    >>>1. using JMSAdmin tool with com.sun.jndi.fscontext.RefFSContextFactory

    >>
    >>and "/opt/mqm/java/jndi"
    >>
    >>>setting to define
    >>>def XAQCF(QMGR1_JNDI) QMGR(QMGR1)
    >>>def XAQCF(QMGR2_JNDI) QMGR(QMGR2)
    >>>def Q(Q1_JNDI) QMGR(QMGR1) QUEUE(Q1)
    >>>def Q(Q2_JNDI) QMGR(QMGR2) QUEUE(Q2)
    >>>
    >>>2. modify the 2 MDBs DD likes follow:
    >>>Q1_JNDI
    >>> com.sun.jndi.fscontext.RefFSContextFactory
    >>> file:/opt/mqm/java/jndi
    >>> QMGR1_JNDI
    >>>
    >>>we set the MDB as transactional.
    >>>
    >>>3. change LD_LIBRARY_PATH to add /opt/mqm/java/lib; also add all the

    >>
    >>jars under
    >>
    >>>/opt/mqm/java/lib to the CLASSPATH
    >>>
    >>>
    >>>The Result is :
    >>>If we only deploy one MDB works fine.
    >>>If we deploy two MDBs, it gave us error:
    >>>javax.jms.JMSException:MQJMS2005: failed to create MQQueueManager for

    >>
    >>'QMGR2'
    >>
    >>>Linked exception = 'com.ibm.mq.MQException: MQJE001: Completion Code

    >>
    >>2, Reason
    >>
    >>>2103'
    >>>
    >>>
    >>>On NT, we can deploy two MDBs, no problem.
    >>>
    >>>We tried many times and couldn't figure it out. Really need help...............
    >>>
    >>>Thanks in advance
    >>>
    >>>Peter
    >>>

    >>

    >



  6. Re: Deploy two MDB for MQ JMS provider


    Hi Tom,

    Really thank you for your input.

    Right now, our business scenario is we want a MDB listen to a MQ Queue and do
    some logic and send an another message to a different MQ Queue. The only thing
    we are concerning for is if the destination is not available or unable delieve
    the message, we want to roll back not to consume the incoming message.

    I am not so sure in such a case, if we use QCF instead of XAQCF and we make MDB
    not trancated, but in program, if there is exception throw out during sending
    message process, we throw an EJBException to ask the EJB Container roll back.
    Is this ok?

    For security reason, we can use option 1. I don't know much about option 2. If
    it's not free, then it might out of our budget.

    Thanks.


    Tom Barnes wrote:
    >Hi Peter,
    >
    >This may be a limitation of IBM. IBM's XAQCF must use
    >shared memory to communicated with its QM, and my guess
    >is that there may be a limitation that a single
    >process (in this case a JVM) can only interact with a single
    >QM via shared memory at a time. If this is true, I can
    >only think of two possible work-arounds:
    >
    > (1) configure 1 QM to forward its messages to a queue on
    > the other, or perhaps to transparently make its
    > queues seem locally available on the other QM
    > (I'm not familiar enough with MQ to know the correct
    > terminology, but I know one or the other should
    > be possible.)
    >
    > (2) Use MQs new remote capable XA JMS client
    > "Extended Transactional Client" rather
    > than the shared memory XA client:
    > http://publibfp.boulder.ibm.com/epubs/pdf/csqzar00.pdf
    >
    >If you come up with a work-around (or one of the above
    >two suggestions work), please post the answer. I imagine
    >this same problem will occur with other customers.
    >
    >Tom
    >
    >peter.wang wrote:
    >
    >> Hi Tom,
    >>
    >> We changed the JMSAdmin object by using QCF instead of XAQCF, and removed

    >the
    >> transaction requied from MDB DD. Then, we can deploy both MDB.
    >>
    >> Do you think what kind of reason caused that? Is this a bug or something?
    >>
    >> Thanks.
    >>
    >> Tom Barnes wrote:
    >>
    >>>Hi Peter,
    >>>
    >>>My first impression is that this is an MQ
    >>>issue and not a WL issue, since the exception is an IBM exception,
    >>>and the problem seems to be O/S specific.
    >>>
    >>>I recommend looking up the exception's "reason code"
    >>>on IBM's support web-site - it might
    >>>explain the problem.
    >>>
    >>>To narrow down the problem,
    >>>you might try to create a simple reproducer by writing
    >>>a very simple JMS client that doesn't use WL classes
    >>>in the CLASSPATH (only MQ classes), and uses both CF's
    >>>and both QMGRs to create JMS connections.
    >>>
    >>>Tom
    >>>
    >>>Peter Wang wrote:
    >>>
    >>>
    >>>>Hi,
    >>>>
    >>>>I got a strange error while deployment MDBs.
    >>>>
    >>>>We hava a MQ 5.3 on solaris and a WLS7.0.1 on the same box. We defined
    >>>
    >>>two Queue
    >>>
    >>>>managers each one has a local Queue defined. What we are going to

    >implement
    >>>
    >>>is
    >>>
    >>>>that we wanna a MDB listenning to the one queue on one Queue Manager,
    >>>
    >>>and another
    >>>
    >>>>MDB listenning to another Queue within another QueueManager.
    >>>>
    >>>>The deployment appoarch is that we follow the using JMS with foreign
    >>>
    >>>JMS provider
    >>>
    >>>>document.
    >>>>1. using JMSAdmin tool with com.sun.jndi.fscontext.RefFSContextFactory
    >>>
    >>>and "/opt/mqm/java/jndi"
    >>>
    >>>>setting to define
    >>>>def XAQCF(QMGR1_JNDI) QMGR(QMGR1)
    >>>>def XAQCF(QMGR2_JNDI) QMGR(QMGR2)
    >>>>def Q(Q1_JNDI) QMGR(QMGR1) QUEUE(Q1)
    >>>>def Q(Q2_JNDI) QMGR(QMGR2) QUEUE(Q2)
    >>>>
    >>>>2. modify the 2 MDBs DD likes follow:
    >>>>Q1_JNDI
    >>>> com.sun.jndi.fscontext.RefFSContextFactory
    >>>> file:/opt/mqm/java/jndi
    >>>> QMGR1_JNDI
    >>>>
    >>>>we set the MDB as transactional.
    >>>>
    >>>>3. change LD_LIBRARY_PATH to add /opt/mqm/java/lib; also add all the
    >>>
    >>>jars under
    >>>
    >>>>/opt/mqm/java/lib to the CLASSPATH
    >>>>
    >>>>
    >>>>The Result is :
    >>>>If we only deploy one MDB works fine.
    >>>>If we deploy two MDBs, it gave us error:
    >>>>javax.jms.JMSException:MQJMS2005: failed to create MQQueueManager

    >for
    >>>
    >>>'QMGR2'
    >>>
    >>>>Linked exception = 'com.ibm.mq.MQException: MQJE001: Completion Code
    >>>
    >>>2, Reason
    >>>
    >>>>2103'
    >>>>
    >>>>
    >>>>On NT, we can deploy two MDBs, no problem.
    >>>>
    >>>>We tried many times and couldn't figure it out. Really need help...............
    >>>>
    >>>>Thanks in advance
    >>>>
    >>>>Peter
    >>>>
    >>>

    >>

    >



  7. Re: Deploy two MDB for MQ JMS provider



    Peter.wang wrote:

    > Hi Tom,
    >
    > Really thank you for your input.
    >
    > Right now, our business scenario is we want a MDB listen to a MQ Queue and do
    > some logic and send an another message to a different MQ Queue. The only thing
    > we are concerning for is if the destination is not available or unable delieve
    > the message, we want to roll back not to consume the incoming message.
    >
    > I am not so sure in such a case, if we use QCF instead of XAQCF and we make MDB
    > not trancated, but in program, if there is exception throw out during sending
    > message process, we throw an EJBException to ask the EJB Container roll back.
    > Is this ok?


    Transactions are the only simple way to guarantee exactly-once.
    For example:
    If the send fails, your MDB app really can't tell if the failure was
    due to the remote queue being down, or if the failure was due
    to the send actually succeeding, but the response failing to
    get back to the MDB.
    If your application can be designed to tolerate lost and/or
    duplicate work, then you don't need transactions.

    >
    > For security reason, we can use option 1. I don't know much about option 2. If
    > it's not free, then it might out of our budget.
    >
    > Thanks.


    I'm no MQ expert. I still advise trying to create a simple reproducer
    of the problem without weblogic involved. If the reproducer
    works, then the problem is with WL, if it doesn't, then the problem is
    with MQ. In either case, you might want to file a support
    case with BEA customer support - this newsgroup is not a formal
    support forum.

    >
    >
    > Tom Barnes wrote:
    >
    >>Hi Peter,
    >>
    >>This may be a limitation of IBM. IBM's XAQCF must use
    >>shared memory to communicated with its QM, and my guess
    >>is that there may be a limitation that a single
    >>process (in this case a JVM) can only interact with a single
    >>QM via shared memory at a time. If this is true, I can
    >>only think of two possible work-arounds:
    >>
    >> (1) configure 1 QM to forward its messages to a queue on
    >> the other, or perhaps to transparently make its
    >> queues seem locally available on the other QM
    >> (I'm not familiar enough with MQ to know the correct
    >> terminology, but I know one or the other should
    >> be possible.)
    >>
    >> (2) Use MQs new remote capable XA JMS client
    >> "Extended Transactional Client" rather
    >> than the shared memory XA client:
    >> http://publibfp.boulder.ibm.com/epubs/pdf/csqzar00.pdf
    >>
    >>If you come up with a work-around (or one of the above
    >>two suggestions work), please post the answer. I imagine
    >>this same problem will occur with other customers.
    >>
    >>Tom
    >>
    >>peter.wang wrote:
    >>
    >>
    >>>Hi Tom,
    >>>
    >>>We changed the JMSAdmin object by using QCF instead of XAQCF, and removed

    >>
    >>the
    >>
    >>>transaction requied from MDB DD. Then, we can deploy both MDB.
    >>>
    >>>Do you think what kind of reason caused that? Is this a bug or something?
    >>>
    >>>Thanks.
    >>>
    >>>Tom Barnes wrote:
    >>>
    >>>
    >>>>Hi Peter,
    >>>>
    >>>>My first impression is that this is an MQ
    >>>>issue and not a WL issue, since the exception is an IBM exception,
    >>>>and the problem seems to be O/S specific.
    >>>>
    >>>>I recommend looking up the exception's "reason code"
    >>>>on IBM's support web-site - it might
    >>>>explain the problem.
    >>>>
    >>>>To narrow down the problem,
    >>>>you might try to create a simple reproducer by writing
    >>>>a very simple JMS client that doesn't use WL classes
    >>>>in the CLASSPATH (only MQ classes), and uses both CF's
    >>>>and both QMGRs to create JMS connections.
    >>>>
    >>>>Tom
    >>>>
    >>>>Peter Wang wrote:
    >>>>
    >>>>
    >>>>
    >>>>>Hi,
    >>>>>
    >>>>>I got a strange error while deployment MDBs.
    >>>>>
    >>>>>We hava a MQ 5.3 on solaris and a WLS7.0.1 on the same box. We defined
    >>>>
    >>>>two Queue
    >>>>
    >>>>
    >>>>>managers each one has a local Queue defined. What we are going to

    >>
    >>implement
    >>
    >>>>is
    >>>>
    >>>>
    >>>>>that we wanna a MDB listenning to the one queue on one Queue Manager,
    >>>>
    >>>>and another
    >>>>
    >>>>
    >>>>>MDB listenning to another Queue within another QueueManager.
    >>>>>
    >>>>>The deployment appoarch is that we follow the using JMS with foreign
    >>>>
    >>>>JMS provider
    >>>>
    >>>>
    >>>>>document.
    >>>>>1. using JMSAdmin tool with com.sun.jndi.fscontext.RefFSContextFactory
    >>>>
    >>>>and "/opt/mqm/java/jndi"
    >>>>
    >>>>
    >>>>>setting to define
    >>>>>def XAQCF(QMGR1_JNDI) QMGR(QMGR1)
    >>>>>def XAQCF(QMGR2_JNDI) QMGR(QMGR2)
    >>>>>def Q(Q1_JNDI) QMGR(QMGR1) QUEUE(Q1)
    >>>>>def Q(Q2_JNDI) QMGR(QMGR2) QUEUE(Q2)
    >>>>>
    >>>>>2. modify the 2 MDBs DD likes follow:
    >>>>>Q1_JNDI
    >>>>> com.sun.jndi.fscontext.RefFSContextFactory
    >>>>> file:/opt/mqm/java/jndi
    >>>>> QMGR1_JNDI
    >>>>>
    >>>>>we set the MDB as transactional.
    >>>>>
    >>>>>3. change LD_LIBRARY_PATH to add /opt/mqm/java/lib; also add all the
    >>>>
    >>>>jars under
    >>>>
    >>>>
    >>>>>/opt/mqm/java/lib to the CLASSPATH
    >>>>>
    >>>>>
    >>>>>The Result is :
    >>>>>If we only deploy one MDB works fine.
    >>>>>If we deploy two MDBs, it gave us error:
    >>>>>javax.jms.JMSException:MQJMS2005: failed to create MQQueueManager

    >>
    >>for
    >>
    >>>>'QMGR2'
    >>>>
    >>>>
    >>>>>Linked exception = 'com.ibm.mq.MQException: MQJE001: Completion Code
    >>>>
    >>>>2, Reason
    >>>>
    >>>>
    >>>>>2103'
    >>>>>
    >>>>>
    >>>>>On NT, we can deploy two MDBs, no problem.
    >>>>>
    >>>>>We tried many times and couldn't figure it out. Really need help...............
    >>>>>
    >>>>>Thanks in advance
    >>>>>
    >>>>>Peter
    >>>>>
    >>>>

    >



+ Reply to Thread