Message Headers
Solace and JMS message headers can be created or manipulated using the User-Configured Header Transforms feature.
Solace Headers
Solace headers exposed to the connector are documented in the Spring Cloud Stream Binder for Solace PubSub+ documentation.
JMS Message Headers
You can use the following JMS headers to get and set JMS message properties.
Header Name | Type | Access | Description |
---|---|---|---|
|
|
Read/Write |
The correlation ID for the message. |
|
|
Read |
The delivery mode value specified for this message. |
|
|
Read |
The destination to which the message is being sent. For versions 2.6.4 and later, consumer bindings no longer map you can now remove those expressions.
|
|
|
Read |
The time at which the JMS message is set to expire. |
|
|
Read |
A value that uniquely identifies each message sent by a provider. |
|
|
Read/Write |
Specifies the message’s priority set on the send. When header is absent, JMS message is sent with default priority of 4. |
|
|
Read |
An indication of whether this message is being redelivered. |
|
For version 2.0.0 and later: For versions earlier than 2.0.0: |
Read (Available only ror versions 2.6.3 and earlier) Write (Available only for Outbound messages) |
The Destination object to which a reply to this message should be sent. For versions 2.6.4 and later, consumer bindings no longer map |
|
|
Read |
The time a message was handed off to a provider to be sent. |
|
|
Write |
Specifies the message’s time to live set on the send. When header is absent, JMS message is sent with default timeToLive of 0 (zero means that a message never expires). |
|
|
Read/Write |
The message type identifier supplied by the client when the message was sent. |
JMS Binder Headers
For connector versions 2.0.0 and later, you can use the following header to get and set JMS Binder properties and JMS Binder metadata.
Header Name | Type | Access | Description |
---|---|---|---|
|
|
Read |
Specifies when the JMS message payload is null. Two cases exist:
|
Reserved Message Headers
The following are reserved header spaces:
-
solace_
-
scst_
-
jms_
|JMS_
|JMSX
-
Any headers defined by the core Spring messaging framework. For more information, see Spring Integration: Message Headers.
Any headers with these prefixes (that are not defined by the connector or any technology used by the connector) may not be backwards compatible in future versions of this connector.
User Configured Header Transforms
Generally, the consumed message’s headers are propagated through the connector to the output message. If you want to transform the headers, then you can do so as follows:
# <workflow-id> : The workflow ID ([0-19]) # <header> : The key for the outbound header # <expression> : A SpEL expression which has "headers" as parameters solace.connector.workflows.<workflow-id>.transform-headers.expressions.<header>=<expression>
Example 1: To create a new header, new_header
, for workflow 0
that is derived from the headers foo
& bar
, enter:
solace.connector.workflows.0.transform-headers.expressions.new_header="T(String).format('%s/abc/%s', headers.foo, headers.bar)"
Example 2: To remove the header, delete_me
, for workflow 0
, set the header transform expression to null
, enter:
solace.connector.workflows.0.transform-headers.expressions.delete_me="null"
For more information about Spring Expression Language (SpEL) expressions, see Spring Expression Language (SpEL).