4 Replies Latest reply on Jul 2, 2002 4:53 AM by crypto

    JBoss and MQSeries on different machines

    crypto

      Hello All,

      i've seen the messages on using IBM MQSeries with JBoss and i would like to know if any of you has managed to get the combination of JBoss and MQSeries running when on different servers.

      I'm currently using a development station running Win2000 at my employer and am trying to connect to the MQSeries test server on the Mainframe.
      It's not working due to a :

      java.lang.UnsatisfiedLinkError: no mqjbnd04 in java.library.path

      Start server side stack trace:
      java.rmi.ServerError: A error occurred the server; nested exception is:
      java.lang.UnsatisfiedLinkError: no mqjbnd04 in java.library.path
      java.lang.UnsatisfiedLinkError: no mqjbnd04 in java.library.path
      at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1312)

      Does anybody have JBoss using MQSeries that is running on a different server ?

      Werner

        • 1. Re: JBoss and MQSeries on different machines
          aanchalm

          Hi,

          Which version of Jboss are you using . I too am trying desperately to get MQseries to work with Jboss 2.2 . Could u give me all details which you use for configuring Jboss with MQSeries . I am able to connect to the MQSeries currently on same m/c , but it still either says queue manager not found or an JMSMQ 1010 error . I'm confused and need help . If you can give me the info of the configuration details that you used for MQSeries with Jboss , please let me know .

          Thanx,
          aanchal.

          • 2. Re: JBoss and MQSeries on different machines
            janek
            • 3. Re: JBoss and MQSeries on different machines
              crypto

              I know what the problem is i am encountering :
              the Mainframe uses EBCDIC and the development workstation running Win2000 uses Unicode :
              i'm trying to find what i need to change in the configuration to get this conversion automatically
              ...
              /Werner

              • 4. Re: JBoss and MQSeries on different machines
                crypto

                Hello,
                This is some info for people that may run into the same issue :
                when using your JBoss application server to contact an MQSeries running on a mainframe you need to make sure that the conversion to EBCDIC format takes place in the background.
                I did this by specifying the following parameters when creating the JNDI context for the IBM JMS client implementation classes :

                1. Start the JMSAdmin tool in trace mode in the
                MQSERIES_ROOT_INSTALL/bin folder

                JMSAdmin -t

                2. Create an entry for the QueueConnectionFactory in the JNDI namespace :
                (MF = mainframe)

                InitCtx> def qcf(QueueConnectionFactory)
                qmanager(NAME_OF_THE_QUEUEMANAGER_ON_THE_MF)
                host(MF_IP_ADRESS)
                port(MF_MQSERIES_PORT) transport(CLIENT) CCSID(500) channel(MF_MQSERIES_CHANNEL_NAME)

                the CLIENT setting sets the transport between JMS client and mainframe to TCP/IP
                and the CCSID(500) defines that the target system uses IBM-500 file format (=EBCDIC)

                3. Define a 'queue' context
                InitCtx> def ctx(queue)

                4. Change to the 'queue' context

                InitCtx> change ctx(queue)

                5. define the name for the queue you want to use :

                InitCtx/queue> def q(testQueue)
                qmanager(NAME_OF_THE_QUEUEMANAGER_ON_THE_MF)
                queue(NAME_OF_THE_QUEUE_ON_THE_MF) TARGCLIENT(MQ)

                6. display the contents for the JNDI context

                InitCtx> dis ctx

                Contents of InitCtx

                .bindings java.io.File
                [D] queue javax.naming.Context
                a QueueConnectionFactory com.ibm.mq.jms.MQQueueConnectionFactory

                3 Object(s)
                1 Context(s)
                2 Binding(s), 1 Administered

                7. leave the JMSAdmin tool

                InitCtx/queue> end

                That should do it ;-)

                /Werner Ramaekers