Solace PubSub+ logo Solace PubSub+ agent

Target Solace PubSub+

Prerequisites

To have Gluesync working on your Solace PubSub+ instance you will need:

  • One topic namespace per entity collection you want Gluesync to publish to;

  • Valid broker credentials with permission to publish to the destination topics;

  • A trust store or certificate path if your deployment requires TLS verification;

  • Solace-side routing already prepared if you plan to use persisted messages.

Setup via Web UI

On-premises deployment

  • Hostname / IP Address: The host address of your PubSub+ cluster;

  • Port: Optional, defaults to 55555;

  • Username: Username with read & write access role to the cluster;

  • Password: Password belonging to the given username;

  • Message VPN: The Message VPN name;

  • Certificate Path: Optional, needed when TLS trust-store verification is enabled;

  • Certificate Password: Optional, password for the configured certificate store;

  • SASL Mechanism: The SASL mechanism to use (e.g., PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, EXTERNAL, GSSAPI);

  • Security Protocol: The security protocol to use (e.g., PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL);

PubSub+ Cloud deployment

  • Hostname / IP Address: The host address provided by the Solace cloud console, including the protocol (e.g., tcps://xyz-abc.solace.cloud);

  • Port: Optional, defaults to 55443;

  • Username: Username with read & write access role to the cluster;

  • Password: Password belonging to the given username;

  • Message VPN: The Message VPN name;

  • Certificate Path: Optional, needed when TLS trust-store verification is enabled;

  • Certificate Password: Optional, password for the configured certificate store;

  • SASL Mechanism: The SASL mechanism to use, usually SCRAM-SHA-256 (e.g., PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, EXTERNAL, GSSAPI);

  • Security Protocol: The security protocol to use, usually SASL_SSL (e.g., PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL);

Custom properties

  • usePersistedMessages: (optional, defaults to false) If set to true, Gluesync uses the Solace persistent message publisher for the entity.

  • messagePriority: (optional, defaults to 4) Priority assigned to each published Solace message.

  • ttlValue: (optional, defaults to 0) Message TTL in milliseconds. A value of 0 means no TTL is applied.

Message routing

Gluesync publishes every entity change to a topic derived from the entity collection and the CRUD action:

  • <collection>/insert

  • <collection>/update

  • <collection>/delete

Every message payload is JSON encoded and carries the entity key in the key message property. When a delete event is processed, Gluesync publishes the delete payload and then a tombstone message with an empty body.

Setup via Rest APIs

Here following an example of calling the Core Hub’s Rest API via curl to setup the connection for this Agent.

Connect the agent

curl --location --request PUT 'http://core-hub-ip-address/pipelines/{pipelineId}/agents/{agentId}/config/credentials' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--data '{
        "hostCredentials": {
        "connectionName": "myAgentNickName",
        "host": "XYZ-123.solacecloud.com",
        "port": 55555,
        "username": "",
        "password": "",
        "maxConnectionsCount": 100,
        "enableTls": true,
        "certificatePath": "/myPath/cert.p8"
      },
      "customHostCredentials": {
        "messageVpn": "myMessageVpn"
      }
}'

Security

Gluesync uses the Solace Java SDK over SMF. In v2.2, the target agent is documented around basic authentication and optional TLS trust-store configuration. For production use, prefer TLS and grant the broker account only the publish permissions it needs for the destination topics.

Troubleshooting

Here following the list of common errors.

  • Can’t see data published to my topics: If you’re looking to find your data published to the topics, make sure you have configured the correct topic namespace and that the topics are not filtered out by your subscription rules.

The most common error are usually as follow:

  • Topic name mismatch: make sure the topic name is correctly configured and matches the expected pattern. As an example, if you have configured the topic name as myTopic, make sure you’re looking for messages in the myTopic topic.

  • Missing permissions: make sure the broker account has the necessary permissions to publish to the configured topic.

  • Incorrect topic subscription when debugging from the PubSub+ Web UI: as Gluesync publishes messages with a specific topic pattern, make sure you’re subscribing to the correct topic pattern. For example, start by listening to every action on the topic namespace you’re interested in by subscribing to # or > (foo/> will listen to all actions on the foo topic namespace, INSERT, UPDATE and DELETE).