Configuring Connection Details
This section provides instructions for configuring the connection details required to establish communication between the Micro-Integration and your third-party system.
For information about configuring the connection to the event broker, see Connecting to Your Event Broker.
This Micro-Integration supports workflows in the following directions:
-
Solace to MQTT
-
MQTT to Solace
The name of the binder for MQTT is mqtt.
Workflow Configuration Options
The default values for the options in the following table differ from the common settings listed in Enabling Workflows.
These options are defined under the following prefixes:
solace.connector.workflows.<workflow-id>.: If the options support per-workflow configuration and the default prefixes.solace.connector.default.workflow.: If the options support default workflow configuration.
| Config Option | Applicable Scopes | Type | Valid Values | Default Value | Description |
|---|---|---|---|---|---|
|
|
Per-Workflow Default |
|
|
|
If The workflow’s consumer and producer bindings must support this mode, otherwise the publisher acknowledgments are processed synchronously regardless of this setting. |
MQTT Connection Details
The Spring Cloud Stream Binder for MQTT uses the following configuration to configure Micro-Integration for MQTT connection.
spring:
cloud:
stream:
bindings:
input-0:
destination: # configure MQTT subscribe topic
binder: mqtt
output-0:
destination: # configure solace topic where MQTT events are published
binder: solace
mqtt:
java:
url: # MQTT Host
version: # v3 or v5(default is set to v3)
username: # username to connect to MQTT broker
password: # password to connect to MQTT broker
cleanSession: # default is set to true
connectionTimeout: # default is set to 30
keepAliveInterval: # default is set to 60
persistence: # default is memory
persistenceDirectory: # default is /tmp/mqtt
automaticReconnect: # default is false
automaticReconnectDelay: # default is 0
sessionExpiryInterval: # default is null
receiveMaximum: # default is null
maximumPacketSize: # default is null
topicAliasMaximum: # default is null
requestResponse: # default is false
requestProblemInfo: # default is false
userProperties: # key-value pair
property-1 : # value
property-2 : # value
ssl:
caFile: # absolute path to file. default is empty
clientCertificateFile: # absolute path to file. default is empty
clientKeyFile: # absolute path to file. default is empty
password: # client key file password if set. default is empty
sslHostNameVerification: # default is false
willAndTestament:
lastWillTopic: # default is null
lastWillQos: # default is 0
lastWillRetain: # default is false
payload: # default is null
payloadFormatIndicator: # default is false
willDelayInterval: # default is null
messageExpiryInterval: # default is null
contentType: # default is empty
responseTopic: # default is empty
correlationData: # default is empty
MQTT Producer Configuration Options
The following configuration options are all prefixed by spring.cloud.stream.mqtt.bindings.<channelname>.producer.
If these properties need to be applied by default to all producers, use the spring.cloud.stream.mqtt.default.producer prefix.
| Config Option | Type | Valid Values | Default Value | Description |
|---|---|---|---|---|
|
|
|
|
Randomly generated Universal Unique Identifier (UUID) |
The property to set the client identifier for the producer. |
|
|
|
|
|
The property to set the level of the quality of service for the published event. |
|
|
|
|
false
|
The property to retain published messages. |
|
|
|
|
|
The property to use asynchronous publishing. |
|
|
|
|
|
For MQTT V5, the list of headers to be included in or excluded from the user properties. To exclude a header, prefix it with |
MQTT Consumer Configuration Options
The following configuration options are all prefixed by spring.cloud.stream.mqtt.bindings.<channelname>.consumer.
If these properties need to be applied by default to all producers, use the spring.cloud.stream.mqtt.default.consumer prefix.
| Config Option | Type | Valid Values | Default Value | Description |
|---|---|---|---|---|
|
|
|
|
Randomly generated Universal Unique Identifier ( |
The property to set the client identifier for the producer. |
|
|
|
|
|
The property to set the level of the quality of service for the subscribed event. |
|
|
|
|
|
The property to convert the size units of the payload to bytes. |
|
|
|
|
|
For MQTT V5, the list of headers to be included in or excluded from the user properties. To exclude a header, prefix it with |
|
|
|
|
|
The property to enable dead-letter topics (DLT) for failed consumer messages.
If |
|
|
|
|
|
The name of the DLT. If |
Connecting to Multiple Systems
To connect to multiple systems of the same type, use the multiple binder syntax.
For example:
spring:
cloud:
stream:
binders:
# 1st solace binder in this example
solace1:
type: solace
environment:
solace:
java:
host: tcp://localhost:55555
# 2nd solace binder in this example
solace2:
type: solace
environment:
solace:
java:
host: tcp://other-host:55555
# The only mqtt binder
mqtt1:
type: mqtt
# Add `environment` property map here if you need to customize this binder.
# But for this example, we'll assume that defaults are used.
# Required for internal use
undefined:
type: undefined
bindings:
input-0:
destination: <input-destination>
binder: mqtt1
output-0:
destination: <output-destination>
binder: solace1 # Reference 1st solace binder
input-1:
destination: <input-destination>
binder: mqtt1
output-1:
destination: <output-destination>
binder: solace2 # Reference 2st solace binder
The configuration above defines two binders of type solace and one binder of type mqtt, which are then referenced within the bindings.
Each binder above is configured independently under spring.cloud.stream.binders.<bindername>.environment..
-
When connecting to multiple systems, all binder configuration must be specified using the multiple binder syntax for all binders. For example, under the
spring.cloud.stream.binders.<binder-name>.environment. -
Do not use single-binder configuration (for example,
solace.java.*at the root of yourapplication.yml) while using the multiple binder syntax.