Topic
  • 4 replies
  • Latest Post - ‏2006-11-03T12:56:35Z by seventieskid
seventieskid
seventieskid
6 Posts

Pinned topic JMS/MQ and Assured Delivery

‏2006-11-03T10:31:35Z |
Folks,

Apologies if this is and oft repeated question.

I'm from a C/C++ programming background in the MQ API where you have to choose whether to connect to MQ using the MQ client API or the MQ server API.

Now I'm advising on a JMS/MQ/Java app development and I don't know for sure whether the JMS/MQ app is connecting via MQ client or MQ server libraries to the local MQ server or whether the paradigm even applies in this instance.

The "need to know" is to gauge the level of assured delivery between the app and MQ. I know JMS brings something to the table but does it bring assured delivery in the truest sense as if I was using the MQ server API in C/C++ ?

Any help appreciated,

seventieskid
Updated on 2006-11-03T12:56:35Z at 2006-11-03T12:56:35Z by seventieskid
  • SystemAdmin
    SystemAdmin
    8523 Posts

    Re: JMS/MQ and Assured Delivery

    ‏2006-11-03T11:20:28Z  
    grees@azuron.co.uk wrote:
    > Now I'm advising on a JMS/MQ/Java app development and I don't know
    > for sure whether the JMS/MQ app is connecting via MQ client or MQ
    > server libraries to the local MQ server or whether the paradigm even
    > applies in this instance.

    It's controlled by a property of the ConnectionFactory you use to create
    the Connection. Details are in the WebSphere MQ Using Java manual.

    Regards,

    Phil Willoughby
    Software Engineer (Development)
    IBM WebSphere MQ
  • seventieskid
    seventieskid
    6 Posts

    Re: JMS/MQ and Assured Delivery

    ‏2006-11-03T12:22:23Z  
    grees@azuron.co.uk wrote:
    > Now I'm advising on a JMS/MQ/Java app development and I don't know
    > for sure whether the JMS/MQ app is connecting via MQ client or MQ
    > server libraries to the local MQ server or whether the paradigm even
    > applies in this instance.

    It's controlled by a property of the ConnectionFactory you use to create
    the Connection. Details are in the WebSphere MQ Using Java manual.

    Regards,

    Phil Willoughby
    Software Engineer (Development)
    IBM WebSphere MQ
    Phil,

    Thanks for the response. I've had a look at the doc, csqzaw12.pdf.

    Chapter 10, Choosing client or transport bindings

    That provided the answer.

    Cheers,

    Gareth
  • SystemAdmin
    SystemAdmin
    8523 Posts

    Re: JMS/MQ and Assured Delivery

    ‏2006-11-03T12:26:14Z  
    > The "need to know" is to gauge the level of assured
    > delivery between the app and MQ. I know JMS
    > brings something to the table but does it bring assured
    > delivery in the truest sense as if I was using the MQ
    > server API in C/C++ ?

    It depends on what is meant by "assured delivery in the truest sense".

    When using a JMS (or any MQ/Java) app in server-bound mode, your calls to
    producer.send, consumer.receive etc. will result in MQPUT and MQGET calls
    from within a piece of JNI C code in the JVM.

    When using a JMS (or any MQ/Java) app in client-bound mode, your calls to
    producer.send, consumer.receive etc. will result in data flows over TCP/IP
    in the same way as the C MQI client, but the code to compose the data
    packets etc. is written in pure Java.

    Calls to session.recover, msg.acknowledge, session.commit and so on have to
    be enacted using MQCMIT and MQBACK as appropriate.

    In summary, when you use an MQ/Java or JMS app to talk to the queue manager,
    you are using MQI mechanisms under the covers, but some interpretation of
    the JMS spec has been necessary in order to map the functionality onto MQI
    functionality. Does this answer the question you had?

    Martin

  • seventieskid
    seventieskid
    6 Posts

    Re: JMS/MQ and Assured Delivery

    ‏2006-11-03T12:56:35Z  
    > The "need to know" is to gauge the level of assured
    > delivery between the app and MQ. I know JMS
    > brings something to the table but does it bring assured
    > delivery in the truest sense as if I was using the MQ
    > server API in C/C++ ?

    It depends on what is meant by "assured delivery in the truest sense".

    When using a JMS (or any MQ/Java) app in server-bound mode, your calls to
    producer.send, consumer.receive etc. will result in MQPUT and MQGET calls
    from within a piece of JNI C code in the JVM.

    When using a JMS (or any MQ/Java) app in client-bound mode, your calls to
    producer.send, consumer.receive etc. will result in data flows over TCP/IP
    in the same way as the C MQI client, but the code to compose the data
    packets etc. is written in pure Java.

    Calls to session.recover, msg.acknowledge, session.commit and so on have to
    be enacted using MQCMIT and MQBACK as appropriate.

    In summary, when you use an MQ/Java or JMS app to talk to the queue manager,
    you are using MQI mechanisms under the covers, but some interpretation of
    the JMS spec has been necessary in order to map the functionality onto MQI
    functionality. Does this answer the question you had?

    Martin

    Martin,

    Indeed it does, many thanks.

    Gareth