Skip to content

JMS Destination

The JMS destination publishes messages to a Java Message Service queue, providing reliable delivery to enterprise messaging brokers such as Apache ActiveMQ and IBM MQ.

JMS is a common backbone in healthcare enterprises for connecting legacy systems, EHR middleware, and back-office applications with guaranteed, transactional delivery.

destination:
type: jms
jms:
provider: activemq
url: tcp://activemq.internal:61616
queue: LAB.RESULTS.OUT
auth:
username: ${JMS_USER}
password: ${JMS_PASSWORD}
persistent: true
priority: 4
ttl_ms: 86400000
timeout_ms: 30000
PropertyTypeRequiredDefaultDescription
providerstringYesJMS broker type: activemq or ibmmq.
urlstringYesBroker connection URL.
queuestringYesTarget queue name to publish messages to.
persistentboolNotrueUse persistent delivery mode. Messages survive broker restarts.
priorityintNo4JMS message priority (09). Higher values are delivered first.
ttl_msintNoMessage time-to-live in milliseconds. Messages are discarded after expiry.
timeout_msintNo30000Connection and send timeout in milliseconds.
authobjectNoBroker authentication credentials.

When provider is ibmmq, the following additional properties are available:

PropertyTypeRequiredDefaultDescription
queue_managerstringYesIBM MQ queue manager name.
channel_namestringYesIBM MQ server-connection channel name.
jms:
provider: ibmmq
url: mqhost.internal(1414)
queue: HL7.ADT.OUT
queue_manager: QM_PROD
channel_name: SVRCONN.INTUWARE
auth:
username: ${MQ_USER}
password: ${MQ_PASSWORD}

Publish lab results to an ActiveMQ queue with high priority for time-sensitive messages:

channels/lab-results-jms/channel.yaml
id: lab-results-jms
enabled: true
group: laboratory
source:
type: tcp
port: 6662
content_type: hl7v2
mllp: true
transformer: lab-to-json.ts
destinations:
- type: jms
jms:
provider: activemq
url: ssl://activemq.internal:61617
queue: LAB.RESULTS.CRITICAL
auth:
username: ${JMS_USER}
password: ${JMS_PASSWORD}
persistent: true
priority: 8
ttl_ms: 3600000
timeout_ms: 15000