JMS header properties

Naga
Naga Member Posts: 58
edited January 2020 in Connectors & Integrations #1

Hi Everyone,
I am sending data from Solace to Boomi using JMS connector.
Can someone help me with appropriate header properties for JMS like we have for REST as shown below ?

Solace-Time-To-Live-In-ms:
Solace-DMQ-Eligible: [true|false]
Solace-Delivery-Mode: [Direct | Non-Persistent | Persistent]
Destination:
Solace-Correlation-ID:
Solace-Reply-To-Destination: /(QUEUE |TOPIC)/

Tagged:

Answers

  • marc
    marc Member, Administrator, Moderator, Employee Posts: 898 admin

    Hi Naga,
    The table at this link will give you info about how JMS Header fields map to their Solace equivalents. Most of your items are covered there.
    https://docs.solace.com/Solace-JMS-API/Message-Components.htm#Header

    And TTL & DMQ Eligibility can be found at the link below.
    https://docs.solace.com/Solace-JMS-API/Setting-Message-Properties.htm#Time-to-

  • Naga
    Naga Member Posts: 58

    Hi Marc,
    When i set this SOLACE_JMS_PROP_DEAD_MSG_QUEUE_ELIGIBLE in boomi process property and pushed messages to Solace I am not seeing this property in messages when browsed from solace queue.
    What is the correct way to add this property in Boomi ? Could you please help ?

  • Aaron
    Aaron Member, Administrator, Moderator, Employee Posts: 497 admin

    Does Boomi JMS connection use a Solace JMS Connection Factory? If so, you can set "default-dmq-eligible" to true in the connection factory, using SolAdmin or CLI:

    0021f5c91477> show jndi connection-factory * detail
    Connection Factory : /jms/cf/default
    Message VPN : default
    messaging-properties : 6
    default-delivery-mode : persistent
    text-msg-xml-payload : true
    default-dmq-eligible : false <-----------
    default-eliding-eligible : false
    xa : true
    jmsx-user-id-enabled : false
    transport-properties : 17
    connect-timeout : 30000
    read-timeout : 10000
    ...

  • Naga
    Naga Member Posts: 58

    Hi Aaron,
    I am suing Boomi JMS connector and selecting the server as solace. We need not enter connection factory name in the JMS connection. I am not sure which connection factory it refers.

  • Naga
    Naga Member Posts: 58

    For How long messages will be stored in Dead Message Queue

  • Aaron
    Aaron Member, Administrator, Moderator, Employee Posts: 497 admin

    Forever. They do not expire out of the DMQ.

  • Naga
    Naga Member Posts: 58

    Then How do we remove the messages from a Dead message Queue only by consuming ?

  • TomF
    TomF Member, Employee Posts: 405 Solace Employee

    Hi Naga, yes, as a matter of best practice, you should create a consumer for every DMQ. If you've configured a DMQ the expectation is that you want to keep the messages. Having a DMQ over-flowing because no-one is doing anything with the messages breaks this model. If you don't want to consume the messages, do you need a DMQ in the first place?

  • sjaak
    sjaak Member Posts: 103 ✭✭✭
    edited December 2019 #10

    Hi @TomF, for your info. You can set a custom connection factory on the Boomi side when using the JMS Server Type "Generic JNDI". The strange thing is that, if you choose Solace as JMS server type, you can't. I assume Boomi is then using "/jms/cf/default". See screenshots


  • swenhelge
    swenhelge Member, Employee Posts: 77 Solace Employee

    @sjaak said:
    Hi @TomF, for your info. You can set a custom connection factory on the Boomi side when using the JMS Server Type "Generic JNDI". The strange thing is that, if you choose Solace as JMS server type, you can't. I assume Boomi is then using "/jms/cf/default".

    The Solace branded JMS connector does not use JNDI.
    I have added a comment that explains the difference between the connectors - https://solace.community/discussion/comment/312#Comment_312

  • Naga
    Naga Member Posts: 58

    Hi Marc,
    I referred to that guide and added the headers in Boomi JMS connector custom properties and also tried Boomi process properties but none of them really worked for me.