Configuring Connection Details
Solace PubSub+ Connection Details
The Spring Cloud Stream Binder for PubSub+ uses Spring Boot Auto-Configuration for the Solace Java API to configure its session. In the application.yml
, this typically is configured as follows:
solace: java: host: tcp://localhost:55555 msg-vpn: default client-username: default client-password: default
For more information and options to configure the PubSub+ session, see Spring Boot Auto-Configuration for the Solace Java API.
Preventing Message Loss when Publishing to Topic-to-Queue Mappings
If the connector is publishing to a topic that is subscribed to by a queue, messages may be lost if they are rejected (for example, if queue ingress is shut down).
To prevent message loss, configure the reject-msg-to-sender-on-discard option with the including-when-shutdown
flag.
Snowflake Connection Details
Manual Configuration
To manually configure the application.yml
file:
snowflake-binder: url: <locator>.<region>.snowflakecomputing.com:443 username: snowflake_user role: <role> private-key-path: <private-key-path> private-key-password: <password>
Where:
-
<role>
: Snowflake role, for example:ACCOUNTADMIN
,SECURITYADMIN
,USERADMIN
,SYSADMIN
,PUBLIC
.For more information, see: Create Role and Overview of Access Control in the Snowflake documentation.
-
<private-key-path>
: The file protocol path to the private key file, for example,'file:///C:/Users/admin/Documents/privateKeyPEM.p8'
.For more information, see Key-pair authentication and key-pair rotation in the Snowflake documentation.
-
<password>
: The password for the encrypted private key, if applicable.
Connecting to Multiple Systems
To connect to multiple systems of a same type, use the Spring Cloud Stream multiple binder syntax.
For example:
spring: cloud: stream: binders: solace1: # 1st solace binder in this example type: solace environment: solace: java: host: tcp://localhost:55555 solace2: # 2nd solace binder in this example type: solace environment: solace: java: host: tcp://other-host:55555 snowflake1: # The only snowflake binder type: snowflake environment: snowflake-binder: # Add connection and binder properties here to customize behavior. # Required for internal use undefined: type: undefined bindings: input-0: destination: <input-destination> binder: solace1 # Reference 1st solace binder output-0: destination: <output-destination> binder: snowflake1 input-1: destination: <input-destination> binder: solace2 # Reference 2nd solace binder output-1: destination: <output-destination> binder: snowflake1
The configuration above defines two binders of type solace
and one binder of type snowflake
, 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 your application.yml
) while using the multiple binder syntax.