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
providerstringYes—JMS broker type: activemq or ibmmq.
urlstringYes—Broker connection URL.
queuestringYes—Target queue name to publish messages to.
persistentboolNotrueUse persistent delivery mode. Messages survive broker restarts.
priorityintNo4JMS message priority (0–9). Higher values are delivered first.
ttl_msintNo—Message time-to-live in milliseconds. Messages are discarded after expiry.
timeout_msintNo30000Connection and send timeout in milliseconds.
authobjectNo—Broker authentication credentials.

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

PropertyTypeRequiredDefaultDescription
queue_managerstringYes—IBM MQ queue manager name.
channel_namestringYes—IBM 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