Contents

Get Started with Solace Platform
What Is Solace Platform?
What Is Event-Driven Integration?
What Are Events?
What Is Messaging?
Message Exchange Patterns
What Are Event Brokers?
Understanding Topics
Message Delivery Modes
Topic Endpoints and Queues
Message VPNs
Understanding Event Meshes
Dynamic Message Routing
How Do Micro-Integrations Enable Event-Driven Integration?
Try Solace Event Brokers
Step 1: Set Up Your First Event Broker
Step 2: Solace EDA Basics
Step 3: Set Up the Solace Try-Me CLI Tool
Step 4: Try a Publish-Subscribe / Fan-Out Message Exchange Pattern
Step 5: Try a Request-Reply Message Exchange Pattern
Step 6: Explore Consumer Scaling Patterns
Next Steps
Best Practices
Glossary
Quick Links
Additional Learning Resources
Solace Platform Features
Solace Agent Mesh
Managing Agent Meshes in Solace Cloud
Deploying and Managing Agent Mesh Manager
Configuring User Access to Agent Meshes
Creating an Agent Mesh
Working with Agent Meshes
Solace Event Portal
Event Portal Overview
Getting Started With Event Portal
Event Portal Tools
Using the AI Design Assistant
Managing User Access to Event Portal
Connecting Event Portal to Runtime Event Brokers
Understanding Event Portal Connections
Linking a Modeled Event Mesh to Operational Event Brokers
Enabling Event Broker Connections
Connecting Event Broker Services to Event Portal Through Solace Cloud
Connecting External Event Brokers to Event Portal
Setting Up a Connected Event Management Agent
Setting Up an Offline Event Management Agent
Designer
Using the Graph View
Creating and Updating Objects in the Graph View
Customizing Object Appearance
Legal Notices
Associating Shared Events in the Graph View
Object Versions and Lifecycle States
Using Custom Attributes
Setting the Kafka Delimiter
Application Domains
Considerations for Application Domains
Providing User Access to an Application Domain
Creating an Application Domain
Updating an Application Domain
Moving Objects Between Application Domains
Deleting an Application Domain
Exporting and Importing Application Domains
Applications
Considerations for Creating and Managing Applications
Updating and Adding Application Versions
Promoting Applications to Environments
Configuring Event Brokers in Event Portal
Setting Up Event Broker Configuration
How Application Settings are Applied to Event Brokers
Queue Configuration
REST Consumer and Queue Binding Configuration
Creating and Managing Standard Solace Applications
Creating a Standard Solace Application
Updating Standard Solace Applications in the Component View
Adding Runtime Configuration to a Standard Application
Promoting a Standard Application to an Environment
Downloading an AsyncAPI Document for an Application
Customizing the ACL Profile for an Application
Creating and Managing RDPs (Webhooks)
Creating an RDP
Updating an RDP in the Component View
Adding Runtime Configuration to an RDP
Promoting an RDP to an Environment
Creating and Managing Kafka Applications
Creating a Kafka Application
Updating a Kafka Application in the Component View
Promoting a Kafka Application to an Environment
Downloading an AsyncAPI Document for an Application
Events
Creating an Event
Considerations for Kafka Events
Updating and Adding Event Versions
Changing the State of an Event Version
Adding a Kafka Event Version to an Environment
Topic Addresses
Managing Event Data Access
Schemas
Creating a Schema
Updating and Adding Schema Versions
Changing the State of a Schema Version
Enumerations
Creating an Enumeration
Updating and Adding Enumeration Versions
Changing the State of an Enumeration Version
Event APIs
Creating an Event API
Downloading an AsyncAPI Document for an Event API
Updating and Adding Event API Versions
Changing the State of an Event API Version
Event API Products
Providing Event API Products to Developers
Creating an Event API Product
Updating and Adding Event API Product Versions
Changing the State of an Event API Product Version
Adding an Event API Product to an Environment
Deleting an Event API Product
Catalog
Searching for Objects
Editing Objects in Designer
Associating Events with Applications in Catalog
Runtime Event Manager
Modeled Event Meshes
Creating a Modeled Event Mesh
Viewing a Modeled Event Mesh
Deleting a Modeled Event Mesh
Building a Modeled Event Mesh
Adding an Event Broker to a Modeled Event Mesh
Managing Model Event Brokers
Promoting Applications and Events to a Modeled Event Mesh
Removing Applications from a Modeled Event Mesh
Viewing Object Environment Associations
Viewing Objects Added to an Event Broker
Reviewing Promotions to Event Brokers
Discovering Runtime Data
Setting Up Runtime Data Discovery
Setting Up Event Broker Connections
Running Discovery Scans
Auditing and Importing Runtime Data
Viewing Audit Results
Tagging Audit Results
Comparing Partial Matches
Viewing the Runtime Object Configuration
Importing Runtime Objects into Event Portal
Importing Solace Queues
Importing Kafka Consumer Groups
Importing Kafka Topics
Importing Confluent Subjects
Runtime Configuration Templates
Creating Solace Queue Templates
Updating Solace Queue Templates
Creating Client Profile Name Templates
Solace Queue Template Meta-Schema
KPI Dashboard
Event Portal REST API
Pushing Runtime Configuration with Event Portal REST APIs
Solace Insights
Insights Overview
Using the Account Overview Dashboard
Using Service-Level Dashboards for Event Broker Services
Solace Insights Advanced Monitoring
Enabling Solace Insights Advanced Monitoring
Sharing a Dashboard Using a URL
Insights Advanced Manager Role
Single Sign-On for Solace Insights Datadog Accounts
Understanding Solace Insights Dashboards for Advanced Monitoring
Extending Advanced Monitoring
Cloning Existing Solace Insights Dashboards for Datadog for Reuse
Creating Custom Monitors
Cloning and Customizing the Template Monitor
Muting Monitors
Scheduling Downtime
Creating Custom Views
Creating Filters
Solace Insights Monitors for Datadog Reference
Monitor Descriptions
Solace Insights Metrics and Checks
Insights Metric Limits for Event Broker Services
Understanding Insights Notifications
About Email Notifications and Severity Levels
Types of Emails
Severity Levels of Email Notifications
Managing Notifications
Enabling Notifications for Your Account
Changing the Emails for Your Account
Disabling Notifications for Your Account
Viewing the Log Retention Period
Integrating Notifications with Applications
Forwarding Solace Insights Metrics and Logs
Sending Application Traces to Insights
Insights for Self-Managed Event Brokers
Solace Insights for Self-Managed Kubernetes-Based Software Event Broker
Solace Insights for Self-Managed Container-Based Software Event Broker
Solace Insights for Self-Managed Appliance Event Brokers
Micro-Integrations
Micro-Integrations in Solace Cloud
Discovering Micro-Integrations in Solace Cloud
Creating Micro-Integrations in Solace Cloud
Mapping Headers and Payloads
Managing Micro-Integrations in Solace Cloud
Upgrading Micro-Integrations in Solace Cloud
Troubleshooting Micro-Integrations in Solace Cloud
Event Broker Service Configuration
Vendor-Specific Configuration
Amazon S3
Amazon SNS
Amazon SQS
Azure Blob Storage
Azure Cosmos DB
Azure Service Bus
Google Cloud Pub/Sub
Google Cloud Storage
IBM Db2 Bulk CDC
IBM Db2 CDC
IBM MQ
Microsoft SQL Server Bulk CDC
Microsoft SQL Server CDC
MongoDB Bulk CDC
MongoDB CDC
MQTT
MySQL Bulk CDC
MySQL CDC
Oracle AQ
Oracle Bulk CDC
Oracle CDC
PostgreSQL
PostgreSQL Bulk CDC
PostgreSQL CDC
Qdrant (Beta)
Salesforce
SFTP
Snowflake
Solace Transform Processor
Message Header Reference
Amazon S3 Message Headers
Amazon SNS Message Headers
Amazon SQS Message Headers
Azure Blob Storage Message Headers
Azure Cosmos DB Message Headers
Azure Service Bus Message Headers
Google Cloud Pub/Sub Message Headers
Google Cloud Storage Message Headers
IBM Db2 Bulk CDC Message Headers
IBM Db2 CDC Message Headers
IBM MQ Message Headers
Microsoft SQL Server Bulk CDC Message Headers
Microsoft SQL Server CDC Message Headers
MongoDB Bulk CDC Message Headers
MongoDB CDC Message Headers
MQTT Message Headers
MySQL Bulk CDC Message Headers
MySQL CDC Message Headers
Oracle AQ Message Headers
Oracle Bulk CDC Message Headers
Oracle CDC Message Headers
PostgreSQL Bulk CDC Message Headers
PostgreSQL CDC Message Headers
PostgreSQL Message Headers
Salesforce Message Headers
SFTP Message Headers
Snowflake Message Headers
Solace Transform Processor Message Headers
Transformation Function Reference
Self-Managed Micro-Integrations
Micro-Integration Manager
Installing Micro-Integration Manager
Configuring Micro-Integration Manager
Solace Micro-Integration Manager Example
Starting Micro-Integration Manager
Starting Self-Managed Micro-Integrations
Resource Requirements for Self-Managed Micro-Integrations
Getting Started with the Self-Managed Micro-Integrations
Modifying the Container Configuration
Configuring the Datapath for Your Self-Managed Micro-Integration
Connecting to Your Event Broker
Enabling Workflows
Mapping Message Headers and Payloads
Transformation Function Reference
Managing and Deploying Your Self-Managed Micro-Integration
Monitoring the Self-Managed Micro-Integration's State
Self-Managed Micro-Integration Health
Redundancy Configuration
Managing Workflows
Managing Metrics
Self-Managed Micro-Integration Security
Consuming Object Messages
Adding External Libraries
Configuring Self-Managed Micro-Integrations
Vendor-Specific Configuration for Self-Managed Micro-Integrations
Micro-Integration for Amazon S3
Configuring Connection Details
Message Headers
Headers for Amazon S3 as a Source
Reserved Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Amazon SNS
Configuring Connection Details
Message Headers
Amazon SNS Header and Payload Mapping Prior to Version 1.7.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
Amazon SNS Binder Health
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Amazon SQS
Configuring Connection Details
Message Headers
Amazon SQS Header and Payload Mapping Prior to Version 1.6.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
Amazon SQS Binder Health
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Azure Blob Storage
Configuring Connection Details
Message Headers
Headers for Azure Blob Storage as a Source
Reserved Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Azure Cosmos DB
Configuring Connection Details
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Azure Service Bus
Configuring Connection Details
Message Headers
Azure Service Bus Header and Payload Mapping Prior to Version 1.8.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Google Cloud Pub/Sub
Configuring Connection Details
Message Headers
Google Cloud Pub/Sub Header and Payload Mapping Prior to Version 2.7.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
Google Cloud Pub/Sub Binder Health
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Google Cloud Storage
Configuring Connection Details
Message Headers
Headers for Google Cloud Storage as a Source
Reserved Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for IBM Db2 Bulk CDC
Configuring Connection Details
Message Batching
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for IBM Db2 CDC
Configuring Connection Details
Message Batching
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for IBM MQ
Configuring Connection Details
Message Batching
JMS Shared Durable Subscribers
JMS Destination Types
Message Headers
IBM MQ Header and Payload Mapping Prior to Version 2.9.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
JMS Binder Health
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for JMS
Configuring Connection Details
Message Batching
JMS Shared Durable Subscribers
JMS Destination Types
Message Headers
JMS Header and Payload Mapping Prior to Version 2.7.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
JMS Binder Health
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Message Transformations
Configuring Connection Details
Message Batching
Message Headers
Solace Transform Processor Header and Payload Mapping Prior to Version 1.4.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Microsoft SQL Server Bulk CDC
Configuring Connection Details
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Microsoft SQL Server CDC
Configuring Connection Details
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for MongoDB Bulk CDC
Configuring Connection Details
Message Batching
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for MongoDB CDC
Configuring Connection Details
Message Batching
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for MQTT
Configuring Connection Details
Logging
Message Headers
MQTT Header and Payload Mapping Prior to Version 3.15.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for MySQL Bulk CDC
Configuring Connection Details
Message Batching
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for MySQL CDC
Configuring Connection Details
Message Batching
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Oracle AQ
Configuring Connection Details
Message Batching
JMS Shared Durable Subscribers
JMS Destination Types
Message Headers
Dynamic Producer Destinations
JMS Binder Health
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Oracle Bulk CDC
Configuring Connection Details
Message Batching
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Troubleshooting
Micro-Integration for Oracle CDC
Configuring Connection Details
Message Batching
Message Headers
Oracle CDC Source Headers
Solace Target Headers
Reserved Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Troubleshooting
Micro-Integration for PostgreSQL
Configuring Connection Details
Message Batching
Message Headers
Solace Source Headers
PostgreSQL Target Headers
Reserved Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Troubleshooting
Micro-Integration for PostgreSQL Bulk CDC
Configuring Connection Details
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for PostgreSQL CDC
Configuring Connection Details
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Salesforce
Configuring Connection Details
Message Headers
Dynamic Producer Destinations
Platform Event Schema and Payload Format
Adding a Monitoring System
Asynchronous Publishing
Troubleshooting
Micro-Integration for SFTP
Configuring Connection Details
Message Headers
SFTP Header and Payload Mapping Prior to Version 1.1.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
Redundancy Configuration
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for Snowflake
Configuring Connection Details
Message Batching
Message Headers
Snowflake Header and Payload Mapping Prior to Version 3.2.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Micro-Integration for TIBCO EMS
Configuring Connection Details
Message Batching
JMS Shared Durable Subscribers
JMS Destination Types
JMS Binder Health
Message Headers
TIBCO EMS Header and Payload Mapping Prior to Version 2.7.0
User-Configured Header Transforms
User-Configured Payload Transforms
Message Headers
Dynamic Producer Destinations
Adding a Monitoring System
Asynchronous Publishing
Configuring and Managing Event Brokers
Solace Cloud
Getting Started with Solace Cloud
What Is Solace Cloud?
Accessing Solace Cloud
Supported Web Browsers
Creating Your First Event Broker Service
Trying Out Your Event Broker Service
Creating Your First Queue
Consuming Messages from a Queue
Platform Packages and Features in Solace Cloud
Frequently Asked Questions
Logging In to the Solace Cloud Console
Managing Accounts and Users
Managing Users, Groups, Roles, and Permissions
User Management
Roles and Permissions
Group Management
Configuring User Access
Configuring Group Management
Creating User Groups
Managing User Groups
Disabling Group Management
Configuring Single Sign-On with OpenID Connect
Authentication Data Flow
How SSO with OIDC Works
Enabling Single Sign-On for Solace Cloud
Configuring Your OpenID Connect Identity Provider
Receiving Platform Email Notifications
Viewing System Notifications
Using Audit Logs
Private Regions
Self-Serve Private Regions
Understanding Account Limits and Usage
Reviewing Your Drawdown Usage
Requesting Additional Event Broker Services
Requesting Message Spool Expansions
Requesting Additional Micro-Integrations
Event Portal Object Limits
How Objects are Counted
Account Limits
Deleting Your Account
Creating and Managing Environments
Creating an Environment
Setting an Environment as Default
Updating Environment Settings
Setting User Access to Environments
Selecting Environments
Disabling Event Broker Service Creation in Public Clusters for an Environment
Deleting an Environment
Choosing Service Classes and Cloud Providers for Event Broker Services
Service Class Options for Event Broker Services
Choosing the Right Cloud Provider
Choosing the Right Cloud Region
Creating and Managing Event Broker Services
Creating Event Broker Services
Considerations When Creating Event Broker Services
Selecting the Event Broker Release and Version
Setting the Message VPN Name
Setting the Cluster Name
Configuring High Availability Mate-Link Encryption
Configuring Client and Management Ports
Cloning an Event Broker Service
Configuring Event Broker Services
Viewing Event Broker Services
Information Summary on the Service Card
Sorting the List of Event Broker Services
Detailed Event Broker Service Information
Finding Event Broker Service Connection Details
Changing the Name of an Event Broker Service
Changing the Cluster Name for an Event Broker Service
Changing the Port Configuration for Event Broker Services
Configuring Custom Hostnames for an Event Broker Service
Configuring Custom Domain Names for Event Broker Services
Viewing and Managing the Message VPN
Using Client Profiles and Client Usernames
Configuring Message Spool Sizes
High Availability in Solace Cloud
High Availability Switchover for Event Broker Services
Forwarding Logs to an External System
Enabling the Solace Event Broker CLI for Event Broker Services
Enabling SEMP Over the Message Bus
Managing Access and Authentication
Configuring User Access to Event Broker Services
Selecting the Right Credentials to Access Event Broker Services
Rotating Event Broker Service Passwords
Configuring Authentication to Event Broker Services
Configuring Authentication for Messaging Clients
Configuring Basic Authentication
Configuring an LDAP Profile for Basic Authentication
Configuring Client Certificate Authentication
Managing Domain and Client Certificate Authorities
Configuring an Event Broker Service to use Client Certificate Authentication
Controlling When an Event Broker Service Requests a Certificate
Configuring OAuth Provider Authentication
Configuring an Event Broker Service to Use OAuth Identity Provider Authorization
Configuring Authentication for Management Access
Configuring LDAP for Management Access
Configuring OAuth Profiles on Event Broker Services for Direct User and Machine Authentication
Configuring OAuth Profiles for Management Access to Event Broker Services
Configuring Single Sign-On for Event Broker Services
Configuring User Access to Event Broker Services with Role-Based Access Control
Controlling Client Access with ACL Profiles
Considerations for Using ACL Profiles
Client Connection Access Controls
Topic Access Controls
Creating ACL Profiles
Updating ACL Profiles
Associating an ACL Profile with a Client Username
Associating an ACL Profile with an Authorization Group
Installing and Synchronizing Client Certificates for High Availability Event Broker Service in Bridges
Managing Custom TLS Server Certificates for an Event Broker Service
Configuring and Managing Messaging
Configuring Queues
Creating a Queue
Adding a Subscription to a Queue
Configuring Advanced Queue Options
Configuring Dead Message Queues
Configuring Partitioned Queues
Creating a Partitioned Queue
Adding and Removing Partitions in a Queue
Configuring Topic Endpoints
Viewing Client Configuration Information
Creating REST Delivery Points
Configuring and Using Message Replay
Configuring Kafka Bridging
Connecting to Apache Kafka Using the Connector Wizard
Creating a Message VPN Bridge
Enabling Distributed Tracing
Configuring Endpoint Templates
Viewing Endpoint Messaging Data
Updating and Maintaining Your Event Broker Services
Version Adoption in Solace Cloud
Version Adoption for Releases Prior to 10.25.0 in Solace Cloud
Software Event Broker Versions and Support in Solace Cloud
Release and Versioning Scheme for Event Broker Services
Release and Versioning Scheme of Event Broker Services prior to 10.25.0
Upgrading Event Broker Services in Solace Cloud
Upgrading Event Broker Services in Solace Cloud Prior to Version 10.25.0
Self-Serve Event Broker Service Upgrades in Solace Cloud
Upgrading Event Broker Services Using the Cloud Console
Upgrading Event Broker Services Using the REST API for Solace Cloud
Performing an Immediate Upgrade for an Event Broker Service Using the REST API for Solace Cloud
Scheduling Event Broker Service Upgrades Using the REST API for Solace Cloud
Managing Maintenance Activities With the REST API for Solace Cloud
Upscaling Event Broker Services
Backing up Event Broker Services
Using Replication for Disaster Recovery of Event Broker Services
Collecting Core Dumps from an Event Broker Service in a Pod in a Customer-Controlled Cluster
Using Wide Area Network Optimization for Event Broker Services in Kubernetes Clusters
Deleting Event Broker Services
Using Deletion Protection
Creating and Managing Event Meshes
Understanding Event Meshes and Mesh Manager
Creating an Event Mesh
Creating an Event Mesh using Broker Manager (Legacy)
Viewing Event Mesh Details
Checking the Progress of Event Mesh Updates
Discovering New Event Meshes
Refreshing the View for an Event Mesh
Viewing the Event Mesh and Event Broker Service Details
Getting Information From Event Mesh Map View
Running Event Mesh Health Checks
Modifying an Event Mesh
Adding an Event Broker Service to an Existing Event Mesh
Switch the Initiator for a Link on the Event Mesh
Removing an Event Broker Service from an Event Mesh
Changing the Event Mesh Name
Deleting an Event Mesh
Agentic AI (Beta)
Agents (Beta)
Discovering Agents in Solace Cloud
Designing Agents
Configuring Your Event Broker Service
Configuring Authentication for Agent Connectivity to Event Broker Services
Configuring an LLM Agent
Amazon Bedrock (Beta)
OpenAI-Compatible (Beta)
Configuring a RAG Agent
Amazon Bedrock with Qdrant (Beta)
OpenAI-Compatible with Qdrant (Beta)
Cloning Agents
Managing Agents
Troubleshooting Agents
Upgrading Agents
Using the Solace Cloud REST APIs
Managing API Tokens
Managing Services with the Solace Cloud REST API
Managing Authentication with the Solace Cloud REST API
Managing Users with the Solace Cloud REST API
Managing Client Profiles with the Solace Cloud REST API
Managing Certificate Authorities with the Solace Cloud REST API
Managing Audit Logs with the Solace Cloud REST API
Developing Applications with Solace Cloud
Deploying Solace Cloud
Components of Solace Cloud
Deployment Options for Solace Cloud
Solace Cloud Deployment Ownership Models
Solace Cloud Connectivity Requirements
Networking Options for Dedicated Cluster Deployments
Questionnaire: Site-to-Site VPN for Dedicated Cluster Deployments
Static IP Availability for Messaging Connectivity in Public Clusters and Dedicated Clusters
Deployment Options Comparison
Decision Tree: Deployment Ownership Model
Deployment Regions
Deployments in China
Deployment Roles and Responsibilities
Mission Control Agent
Kubernetes Cluster
Networking
Upgrades to Mission Control Agent and Event Broker Services
Questionnaire: Deploying in a Dedicated Cluster
Questionnaire: Deploying in a Customer-Controlled Cluster
Questionnaire: Deploying in a Customer-Controlled Cluster—Common Questions
Questionnaire: Deploying in a Customer-Controlled Cluster—Amazon Elastic Kubernetes Service (EKS) Questions
Questionnaire: Deploying in a Customer-Controlled Cluster—Azure Kubernetes Service (AKS) Questions
Questionnaire: Deploying in a Customer-Controlled Cluster —Google Kubernetes Engine (GKE) Questions
Questionnaire: Deploying in a Customer-Controlled Cluster—Oracle Kubernetes Engine (OKE) Questions
Questionnaire: Deploying in a Customer-Controlled Cluster—Alibaba Cloud Container Service for Kubernetes (ACK) Questions
Questionnaire: Deploying in a Customer-Controlled Cluster—Huawei Cloud Container Engine (CCE) Questions
Questionnaire: Deploying in a Customer-Controlled Cluster—On-Premises Questions
Process to Deploy Solace Cloud in a Dedicated Cluster
Process to Deploy Solace Cloud in a Customer-Controlled Cluster
Monitoring Traffic for Customer-Controlled Clusters
Deploying Solace Cloud with Kubernetes
Deployment Architecture for Kubernetes
Kubernetes Cluster Details
Environment Architecture for Dedicated Cluster and Customer-Controlled Cluster Deployments
Monitoring Kubernetes Cluster Health in a Customer-Controlled Cluster
Supported Kubernetes Versions
Kubernetes Cluster Installation
Common Kubernetes Prerequisites
General Resource Requirements for Kubernetes and Default Port Configuration
Compute Requirements in Customer-Controlled Clusters
Memory Requirements in Customer-Controlled Clusters
Storage Requirements in Customer-Controlled Clusters
Load Balancer Rules per Service (Default Protocols and Port Configuration)
Resource Requirements for Kubernetes for On-Premises Deployments in Customer-Controlled Clusters
Resource Requirements for Additional Solace Service Deployments
Installing Solace Cloud in Alibaba Cloud Container Service for Kubernetes (ACK)
Installing Solace Cloud in Amazon Elastic Kubernetes Service (EKS)
Custom AWS Load Balancer for Solace Cloud
Installing Solace Cloud in AWS Outposts
Installing Solace Cloud in Azure Kubernetes Service (AKS)
Azure Kubernetes Service Deployment Details
Installing Solace Cloud in Google Kubernetes Engine (GKE)
Installing Solace Cloud in Oracle Kubernetes Engine (OKE)
Support for nodeSelector, Labels, Taints, and Tolerations
Using nodeSelector
Use Cases
Connectivity Model for Kubernetes Deployments
Using Proxies
Exposing Event Broker Services to External Traffic
Using an Integrated Load Balancer Solution
Using NodePort
Using NAT with Static IP Addresses for Outbound Connections for Kubernetes-Based Deployments
Kubernetes Cluster Validation
Downloading the Registry Credentials for the Solace Container Registry
Downloading the Validation Tool Manifest
Mission Control Agent Installation
Downloading the Values File for Helm Chart
Installing the Mission Control Agent
Service Accounts in Kubernetes
Upgrading the Mission Control Agent in Kubernetes
Kubernetes Upgrades in Solace Cloud
Viewing and Scheduling Kubernetes Version Upgrades in Dedicated Clusters
Security in Solace Cloud
Security Architecture for Solace Cloud
Deployment Options
Security Considerations
Security Architecture Overview
Customer Roles and Responsibilities for Security
VPC/VNet Isolation
Solace Home Cloud Security
Solace Cloud Console Security
Mission Control Agent Security
Broker Manager Security
Event Management Agent Security
Event Broker Service Security
Central Monitoring Service and Insights Agents
Connection Details for Deployment
Connection Details for Operational Connectivity
S3 Bucket Names for Gathered Diagnostics
Client Application Connectivity and Security
Client Applications for Messaging
Client Authorization for Messaging Access
Authentication and Authorization to Solace Cloud
Data Protection in Solace Cloud
Data Flows within a Customer Environment
Control Plane Data
Messaging Plane Data
Encryption
Data Sovereignty
Using Audit Logs and System Logs
Audit Logs
Event Broker Service Logs
Log Information Collected
Additional Steps and Best Practices for Security
OS, Hotfixes, Service Packs, and Security Patches
Hardening Access to Solace Cloud
Hardening Access to Event Broker Services
Restricting Secure Ports and Protocols on Event Broker Services
Limiting Access to Compute Resources with Bastion Host
Securing Access for Outbound Connections
Hardened Developer and Operational Processes
Self-Managed Event Brokers
Deploying and Maintaining Solace Software Event Brokers
Solace Software Event Brokers
Packaging of the Software Event Broker
System Resource Requirements
System Resource Calculator
Using System Scaling Parameters
Scaling Up an Existing HA Group
Step 1: Review System Resource Requirements and HA Status
Step 2: Increase the Value of the Scaling Parameters
Setting Scaling Parameters Using Configuration Keys
Managing Software Event Broker Storage
Managing Storage for Container Images
Use a Volume for the Storage-Group
Use External Storage Devices in Production
Directory Ownership with Rootless Containers
Examples of Configuring External Storage
Converting from Multiple Mount Points to a Single Mount Point
Standalone
High Availability
Managing Core Files
Setting Up Container Images
Deploying Solace Software Event Brokers in a Production Environment
Virtual Machine Deployment Concerns
Solace Event Broker Scale
Configuring The Virtual Machine Host
Creating the Solace Event Broker Container
Configuring the Container to Start Automatically
Debugging the Container
Upgrading the Container
Sample Systemd Unit File
Docker Desktop for Mac
Docker Desktop for Windows
Docker for Linux
Docker with CentOS on Azure
Docker with CentOS on GCE
Docker with Amazon Linux on AWS
Rootful Podman with RHEL8 on AWS
Rootless Podman for Ubuntu
Configuring the Solace Event Broker CLI for Software Event Broker Containers
Rootless Containers
User Namespaces
User and Group ID Translation
Resource Limit Configuration
Directory and File Ownership
Rootful Versus Rootless Containers
Prerequisites for Rootless Containers
Next Steps
Configuring Container Users
Specifying the Container UID
Additional Linux Capabilities
Configuring Privileged Ports
Volume Ownership and Permissions
Initializing a Software Event Broker Container
Passing Configuration Keys as Environment Variables
Other Environment Variables
Configuring Secrets
Step 1: Create a Secrets Directory
Step 2: Place Files in the Secrets Directory
Step 3: Create the Software Event Broker Container
Step 4: Verify Using Solace Event Broker CLI
Container Networking
Rootful Mode
Rootless Mode
Summary of Supported Networking Options
Next Steps
Gathering Diagnostics from Software Event Broker Containers
Using the Gather-Diagnostics-Host Utility
Using Gather-Diagnostics-Host on Docker for Windows
Using Gather-Diagnostics-Host Utility on Docker for macOS
Using the Gather-Diagnostics Solace Event Broker CLI Command
Configuring Container Logging
Selecting Logging Facilities
Configuring the Log Output Destination
Configuring the Log Output Format
Forwarding the Log Output
Transferring Diagnostic Logs from the Software Event Broker
Deployment Quick Starts
Accessing the Container Shell
Accessing the Solace Event Broker CLI
Setting the Timezone
Migrating Machine Image Deployments to Virtual Machines
Default Configuration for Software Event Brokers on Virtual Machines
Configuration Keys
Upgrade Procedures
Deploying and Maintaining Solace Appliance Event Brokers
Appliance Event Broker Models
Setting Up Appliance Event Brokers
Hardware Installation
Solace 3560
Product Handling Guidelines
Preparing Your Site
Before Installing
Management Interface Port Specifications
Serial Console Port Specifications
NAB Port and Cabling Specifications
ADB and HBA Port and Cabling Specifications
External Disk Storage Array Requirements
Solace 3560 Installation
Step 1: Install Slide Assemblies in the Rack
Step 2: Install Chassis in the Slide Assemblies
Step 3: Connect a Management Console
Step 4: Provide Power to the Appliance Event Broker
Connections, LEDs, and Specifications
Optical Fibre Specs for Multimode Fibre
Solace 3530
Product Handling Guidelines
Product Safety Labels
ESD Prevention Rules
Preparing Your Site
Before Installing
Safety Guidelines
Environmental Requirements
Cabling Recommendations
Rack Requirements
Management Interface Port Specifications
Serial Console Port Specifications
NAB Port and Cable Specifications
Faceplate LEDs
Electrical GigE Wiring Specs
ADB and HBA Port and Cable Specifications
SFP Modules
ADB Faceplate LEDs
Connecting to ADB and HBA SFP Devices
Typical Network Applications
Redundant Configuration
Non-Redundant Configuration
External Disk Storage Array Requirements
Solace 3530 Installation Steps
Tool and Equipment Requirements
Step 1: Install Slide Assemblies in the Rack
Step 2: Install Chassis in the Slide Assemblies
Step 3: Connect a Management Console
Step 4: Provide Power to the Appliance Event Broker
Troubleshooting
Connections, LEDs, and Specifications
Front Panel View of Solace 3530
Rear Panel View of Solace 3530
Slot Configurations
Appliance Event Broker LED Behavior
Solace 3530 Technical Specifications
Optical Fiber Specifications for Multimode Fiber
Optical Loss Budget and Operating Distances
Connecting a Management Console
Initial Setup
Setting Up a Basic Configuration
Upgrade Procedures
Standalone Appliance Event Broker
Redundant Appliance Event Brokers
Hardware Maintenance
Appliance Event Broker Walkthrough Videos
Appliance Event Broker Front & Rear Panels
ADB Replacement
Blade Replacement in Solace 3560s and Solace 3530s
Blade Replacement in 3560AC-08 Appliance Event Brokers
ESD/Safety Precautions
Tool and Equipment Requirements
Prerequisites
Replacing an ADB
Replacing an HBA
Replacing a NAB
Disk Drive Replacement
Fan Replacement
ESD/Safety Precautions
Tools and Equipment Requirements
Replacing Solace 3530/Solace 3560 Fans
Step 1: Turn Off Power to the Appliance Event Broker
Step 2: Remove the Appliance Event Broker’s Top Cover
Step 3: Remove the Failed Fan
Step 4: Install the New Fan
Step 5: Reattach the Appliance Event Broker’s Top Cover
Step 6: Turn On Power to the Appliance Event Broker
HBA Replacement
HBA Replacement in Solace 3560s
HBA Faceplate Conversion
NAB Replacement
NAB Replacement
NAB Replacement
On / Standby Button
Power Supply Replacement
Redundant Power Supply Settings
Replacing Solace 3530/Solace 3560 Top Covers
Out-of-Service Replacement of Solace Appliance Event Brokers
In-Service Migration of a Redundant Pair of Appliance Event Brokers
In-Service Replacement of a Failed Appliance Event Broker in a Redundant Pair
SFP Insertion & Removal
Twinax Cable Insertion & Removal
Changing Appliance Event Broker Software
Configuring the Baud Rate of the Serial Console Port
Shutting Down Guaranteed Messaging Redundant Appliance Event Brokers
Changing Msg-Backbone IPs for Replicated Appliance Event Brokers
Powering an Appliance Event Broker Up or Down
Restarting Appliance Event Brokers
Gathering Appliance Event Broker Diagnostics
Transferring Diagnostic Logs from an Appliance Event Broker
Appliance Event Broker Health Check
Appliance Event Broker Health Checklist
Administering Self-Managed Event Brokers
Managing User Access to Self-Managed Event Brokers
User Authentication and Authorization
CLI User Access Levels
Authentication Methods
Setting CLI User Authentication Types
Configuring RADIUS Authentication
Configuring LDAP Authentication
Configuring OAuth Authentication
Disabling Basic Authentication for SEMP and Broker Manager
Configuring Brute Force Protection
Configuring Default CLI User Access Levels with External Authentication
Configuring Internal CLI User Accounts
Disconnecting CLI User Sessions
Configuring File Transfer User Accounts
Displaying User Authentication Details
Viewing User Details in Broker Manager
Accessing the Default Support User Account
Configuring Multiple Linux Shell Users
Event Broker File Management
Backing Up and Restoring Event Broker Configurations
Creating Local Backups of Configuration Files
Backing Up Configuration Files to External File Servers
Restoring Configuration Files
Backing Up and Restoring HA Appliance Event Broker Configurations
Backing Up and Restoring HA Software Event Broker Configurations
Resource Consumption
Monitoring & Managing Disk Consumption
Clock Synchronization
Configuring PTP for an Appliance Event Broker
Synchronizing Clocks with NTP Servers
Default Port Numbers
DNS Configuration
Hostname Configuration
IP Interface Configuration
Appliance Interface Configuration
Appliance Event Broker Interfaces
Configuring the Management Interface and Message Backbone Interface on Appliance event brokers
Possible IP Interface Configurations for an Appliance Event Broker
Monitoring Physical Interfaces & IP VRFs on Solace Appliance Event Brokers
Configuring LAGs on Appliance Event Brokers
Manually Switching Activity Between LAG Members
IP Interface Configuration for Software Event Brokers
IP Addressing in Cloud Instances
Monitoring Software Event Broker Interfaces
Health Checks and Readiness Probes
Product Keys
Router Name Configuration
Tuning Link Performance for WANs
Global Forward Proxy Configuration
Configuring Services on Self-Managed Event Brokers
Services
SMF Service Management
SEMP Service Management
REST Service Management
Web Transport Service Management
MQTT Service Management
AMQP Service Management
Enabling All Messaging Services
Managing Service Event Thresholds
AMQP Messaging Management
Managing AMQP Service on VPNs
MQTT Messaging Management
Managing MQTT Sessions
Managing MQTT Retained Messages
REST Messaging Management
Managing REST Service
Managing REST Delivery Points Using the Solace Event Broker CLI
Creating REST Delivery Points Using Broker Manager
REST Connector Examples
Connecting to Azure Event Hubs or Azure Service Bus Using REST
Connecting to Azure Functions Using REST
Connecting to AWS Lambda via Amazon API Gateway Using REST
Connecting to AWS S3 Data Lakes Using REST
Connecting to Google Cloud Functions Using REST
Connecting to Google Cloud Run Using REST
Microgateways
Microgateway Use Cases
Microgateway Request Handling
Microgateway Configuration
Traffic Management to Microservices Example
Eavesdropping Application Example
Migrating to an Event-Driven Architecture Example
TCP Settings
Configuring TCP Keepalive Settings
Configuring TCP Initial Congestion Window Size
Configuring TCP Max Window Size
Configuring TCP MSS
Configuring TCP Slow Start After Idle
Securing Self-Managed Event Brokers
Security Overview
Client Authentication
Basic Authentication
Client Certificate Authentication
Kerberos Authentication
OAuth Authentication
Configuring Client Authentication
Basic Authentication
Client Certificate Authentication
Kerberos Authentication
OAuth Authentication
Configuring the Connection Behavior for Duplicate Clients
Two-way SSL Authentication for REST
Client Authorization
Configuring Clients with Client Profiles
Controlling Client Access with ACL Profiles
Client Connection Access Controls
Topic Access Controls
Configuring Client Authorization
Configuring Client Usernames Using the CLI
Creating Client Usernames Using Broker Manager
Configuring ACL Profiles Using the CLI
Configuring ACL Profiles Using Broker Manager
Configuring Client Profiles
Allowing Bridge Connections
Allowing Shared Subscriptions
Allowing Client Connects to Replication Standby VPNs
Configuring Client Events Generation
Configuring Max Connections Per Username
Configuring Max AMQP Links
Configuring Max Permitted Subscriptions
Configuring Guaranteed Messaging Parameters
Configuring Egress Priority Queues
Configuring Services
Configuring Client TCP Settings
Configuring Message Eliding
Configuring Downgrade to Plain-Text
Disabling Compression
Configuring Client Username Accounts Example
Configuring Client LDAP Authorization
Configuring Authorization Groups
Setting the Type of Client Authorization to Use
Configuring LDAP Group Membership Attribute Names
Configuring LDAP Trim Client-Username Domain
Configuring OAuth Authorization
Viewing Client Configuration Information
Disconnecting Specific Clients
TLS / SSL Encryption
Cipher Suites
Supported Cipher Suites
Supported Ciphers
Configuring Cipher and Cipher Suite Lists
Supported Signature Algorithms
Server Certificates Authentication Process
Certificate Authorities
Managing Cryptographic Keys
TLS / SSL Service Configuration
Managing Server Certificates
Configuring Certificate Authorities
Configuring OCSP Certificate Revocation Checking
Configuring CRL Certificate Revocation Checking
Configuring OCSP-CRL Certificate Revocation Checking
Viewing Certificate Authorities
TLS/SSL Service Connections
Configuring TLS Service Connection Settings
Configuring CRIME Exploit Protection
Configuring Server Certificate Validation Settings
Configuring Cipher Suites for Inbound Connections
Enabling TLS/SSL Connection Downgrades on Message VPNs
Re-establishing Secure Connections After MessageBroker Failovers
Monitoring TLS/SSL Configuration and Connections
Monitoring Self-Managed Event Brokers
Configuring Monitoring
Configuring Events and Thresholds
Customizing Event Generation
Customizing Severity Levels & Publication Message VPN
Configuring a Log Tag for Message VPN Events
Modifying the Syslog Timestamp Format
Clearing One-Shot Events
Clearing One-Shot Client Events
Clearing One-Shot Solace Cache Events
Clearing One-Shot Bridge Events
Configuring System Event Thresholds
Configuring System Service Event Thresholds
Configuring System Memory Usage Event Thresholds
Configuring System Message Spool Event Thresholds
Configuring VPN Event Thresholds
Connections Thresholds
Egress Message Rate Thresholds
Ingress Message Rate Thresholds
Large Message Threshold
Service Thresholds
AMQP
MQTT
REST
SMF
Web Transport
Subscriptions Thresholds
Configuring VPN Message Spool Event Thresholds
Egress Flows Thresholds
Endpoints Thresholds
Ingress Flows Thresholds
Spool Usage Thresholds
Transacted Sessions Thresholds
Transactions Thresholds
Queue Event Thresholds
Bind Count Thresholds
Reject Low Priority Message Limit Thresholds
Spool Usage Thresholds
Queue Event Thresholds Using Templates
Bind Count Thresholds
Reject Low Priority Message Limit Thresholds
Spool Usage Thresholds
Topic Endpoint Event Thresholds
Reject Low-Priority Message Limit Thresholds
Spool Usage Thresholds
Topic Endpoint Event Thresholds Using Templates
Reject Low Priority Message Limit Thresholds
Spool Usage Thresholds
Configuring Client Event Thresholds
Spool Usage Thresholds for Client-Provisioned Endpoints
Connections Per Client Username Thresholds
Egress Flows Thresholds
Endpoints Per Client Username Thresholds
Ingress Flows Thresholds
Client Username Service Thresholds
Subscriptions Thresholds
Transacted Sessions Thresholds
Transactions Thresholds
Displaying and Clearing Logs
ACL Logs
Command Logs
Event Logs
System Logs
No-Subscription-Match Logs
REST Logs
Clearing Event Broker Logs
Last Restart Reason
Monitoring Events Using Syslog
Syslog Message Format and Components
Events to Monitor to Determine the Health of Event Brokers
Configuring Syslog to Forward Messages
Facility
Host
Configuring the Message Format for Syslog Facilities
Configuring the Message Format for Syslog Facilities
Setting the Maximum Size of JSON Format Syslog Messages
Viewing Syslog Status
Managing Local Syslog Files
Retrieving Syslog Record Files
Logging Capacity
Directory Maintenance
Managing Command Logging
Configuring Command Logging
Viewing Command Logging Configuration
Interpreting Client Disconnect Event Logs
Interpreting Flow Event Logs
Configuring the Log File Retention Policy
Monitoring Hardware Blades
Receiving Message Bus Events
Configuring Event Broker Event Publishing
Publishing System Events
Publishing Message VPN-Level Events
Publishing Message VPN-Level Events
Setting a Topic Format for Published Events
Publishing Client Events
Publishing Subscription Events
Viewing VPN Event Publishing Configuration
Monitoring the Health of the Solace Software Event Broker
Assessing System Resources using POST
Monitoring System Resources with Direct Runtime Metrics
Subscribing to Message Bus Events
System Event Topics
Message VPN Event Topics
Client Event Topics
Subscribe Event Topics
Unsubscribe Event Topics
SEMP and Syslog Monitoring Best Practices
Monitoring Events
Event Publishing Over the Message Bus
Publishing System Level Events
Publishing Message VPN Level Events
Request / Reply Monitoring Using SEMP
Solace Syslog
Monitoring Using Syslog
Logging Categories
Syslog Message Severity Levels
Syslog Message Format and Components
System Events
Message-VPN Events
Client Events
Syslog Timestamp Format
Sample Syslog Event Entries
Minimum Recommended Events for Monitoring
System Event Categories
Chassis Syslog Messages: SYSTEM_CHASSIS_*
Clustering Syslog Messages: SYSTEM_CLUSTERING_*
High Availability Syslog Messages: SYSTEM_HA_*
Link Syslog Messages: SYSTEM_LINK_*
NAB-related Syslog Messages: SYSTEM_NAB_*
Routing Syslog Messages: SYSTEM_ROUTING_*
SYSTEM_SERVICE_LISTEN_PORT_ENABLE and SYSTEM_SYSTEM_STARTUP_COMPLETE
Message VPN Bridging Syslog Messages: VPN_BRIDGING_*
Gathering Statistics with SEMP
Example Command to Gather Statistics
Important Statistics
System Level Statistics
Message VPN Level Statistics
Client Level Statistics
Queue Level Statistics
Bridge Level Statistics
Solace Cache Level Statistics
Appliance Event Broker Alarms
Network Monitoring
Latency Monitoring
Thresholds
Performance Monitoring
Guaranteed Messaging Data Path
Ingress Message Processing
Message Replication to Mate and Spooling
Egress Message Processing
Direct Delivery Data Path
Client Statistics
C API
JCSMP
Client Throughput
Endpoint Throughput
Multi-Node Routing (MNR) Statistics
Session Errors
Syslog Event Reference
Solace Syslog Events
Feature-Specific Monitoring Information
Event Broker Management Tools
Solace Cloud Console
Broker Manager
Using Broker Manager with Event Broker Services
Pre-Authentication for Broker Manager
Using Broker Manager with Self-Managed Event Brokers
Broker Manager Sessions
Configuring HTTP-to-HTTPS Redirect for Broker Manager
Solace Event Broker CLI
Solace Event Broker CLI Quick Reference
Solace Event Broker CLI Command Reference
Appliance CLI Commands
Software Event Broker CLI Commands
CLI Commands Scope and Access Level Requirements
Show the CLI Sequence for the Current Configuration
SEMP
SEMP API Versions
SEMP API Architecture
SEMP Authentication and Authorization
SEMP Features
SEMP Error Handling
SEMP API Reference
Declarative SEMP
Legacy SEMP
Sending and Receiving Messages
Event Messaging Overview
Event Streaming Flows
Non-Persistent Event Streams
Data Plane Tasks for Incoming TCP Events
Non-Durable Temporary Queues
Persistent Event Streams
Producer-Side Processing of Persistent Events
Data Plane Tasks for Persistent Event Streams
Consumer-Side Processing of Persistent Events
Exclusive and Non-Exclusive Durable Queues
Replaying Messages
Message Delivery Resources
Client Egress Queue Structure Overview
Data Buffer Management
Ingress Data Buffer Management
Egress Data Buffer Management
Configuring Egress Per-Client Priority Queues
Configuring Max Egress Queue Depths
Configuring Egress Queue Minimum Message Bursts
Monitoring Egress Per-Client Priority Queues
Showing Client Profile Detail
Showing Client Stats Queue
Showing CSPF Neighbor Stats Queues
Topic Support & Syntax
Topic Architecture Best Practices
Topic Architecture Definitions
Event
Event Topic
Event Subscription
Topic Taxonomy Example
Benefits of a Rich Topic Architecture
Best Practices for Designing a Topic Hierarchy
Event Topic Structure
Parts of the Event Topic
Event Topic Root
Event Topic Properties
Complete Event Topic
Documenting an Event
Subscription Exceptions
Null Values
Topic Architecture Anti-Patterns
Don't Use Message Properties for Filtering
Don't Include Tracing Information in the Topic Hierarchy for Tracing Use Cases
Don't Include Deployment Environment Names in the Topic Hierarchy
Don't Include Spaces or Other Special Characters in Topics
Topic Architecture Case Studies
Case Study 1: Event-Driven Microservices, Choreography, and Event Sourcing
Case Study 2: Event-Driven Integration with ASAPIO
Case Study 3: IoT Devices—Command, Control, and Analytics
Case Study 4: Data Ingestion and Distribution
Solace Message Format Topics
MQTT Topic Compatibility
Wildcard Characters in Topic Subscriptions
Using the * Wildcard
Using the > Wildcard
Wildcard Restrictions
Wildcard Examples
Reserved Topics
Topic Matching and Message Delivery Modes
Preventing Subscription Export
Subscription Capacity
Direct Messages
Shared Subscriptions
Syntax of Shared Subscriptions
How Shared Subscriptions Work
Shared Subscription Identifiers
Feature Interactions
Message Eliding
Message Eliding Example
Message Eliding Use Cases
Client Subscription Management
Managing Subscriptions on Behalf of Other Clients
Deliver-To-One
Controlling DTO Message Reception
DTO & Deliver Always (DA)
How to Show a Subscription's DTO Priority
Multi-Node Routing
Configuration Prerequisites
MNR Mode Configuration
Creating Neighbor Links
Configuring Neighborsʼ IPs and Data Ports
Configuring Neighborsʼ Control Ports
Configuring Compressed Data Connections
Enabling TLS/SSL Data Connections
Configuring Link Costs
Configuring TCP Settings
Assigning Routing Interfaces
Starting/Stopping Routing Protocols
Neighbor Link Configuration Example
Event Broker-Wide Configuration Tasks
Per-Neighbor Link Configuration Tasks
Configuring Neighbor Queues
Configuring Max Neighbor Queue Depths
Configuring Minimum Message Bursts
Showing CSPF Queue Settings
Configuring Neighbor Link Encryption
Configuring Certificate Files to Present to Neighbors
Configuring Certificate Validation Settings
Viewing MNR Information
Showing CSPF Neighbor Link Info
Showing SMRP Subscription Info
Prevention of Subscription Propagation Race Conditions
Clearing Subscriptions from Offline Event Brokers
Guaranteed Messages
Guaranteed Messaging Use Cases
Message Request Queues
Slow Consumers
Request/Reply with Guaranteed Messages
Guaranteed Messaging Operation
Sessions and Consumer Flows
Publishing Guaranteed Messages
Receiving Guaranteed Messages
Queues and Topic Endpoints
Endpoint Durability
Durable Endpoints
Temporary Endpoints
Topic Subscriptions
Topic Subscription Exceptions
Endpoint Permissions and Access Control
Selectors
Queues
Queue Access Types
Well-Known Queues
Anonymous Queues
Dead Message Queues
Last Value Queues
Queue Browsing
Partitioned Queues
Publishing to and Consuming from Partitioned Queues
Adding and Removing Partitions
Changing the Number of Consumers
Partitioned Queue Feature Interactions
Message Distribution with Partitioned Queues
Partition Rebalancing
Partition Handoff
Partition Scaling
Topic Endpoints
Endpoint Templates
Which Endpoints Use Templates?
Endpoint Fields to Copy from Template
Message Spooling
Message Spool Files
Windowed Acknowledgment
Delivered-But-Unacknowledged Messages
Message Expiry
Maximum Spool Usage
Guaranteed Messaging Acknowledgments
Message Priority
Delayed Delivery
Head-of-Line Blocking
Transactions
Performing Heuristic Actions on Transactions
Heuristically Committing XA Transactions
Heuristically Rolling Back XA Transactions
Heuristically Deleting XA Transactions
Heuristically Deleting XA Sessions or Transacted Sessions
Service Outage Protection
Redundancy
Replication
Config-Sync
Guaranteed Messaging Configuration
Feature Interoperability Limitations
Functional Parameters to Consider When Provisioning Endpoints
Configuring Guaranteed Messaging
Transaction Configuration
CLI Command Sequence Example
System-Level Message Spool Configuration
Configuring External Disk Arrays
Configuring Event Thresholds for the System Message Spool
Configuring Max Spool Usage
Configuring Max Cache Usage
Configuring the Active/Active HA Role for Guaranteed Messaging
Enabling the Internal Disk for Message Spooling
Enabling Guaranteed Message Spooling
System-Level Subscription Exception Configuration
Message VPN-Level Guaranteed Messaging Configuration
Enabling Endpoints to Override DMQ-Eligible Flags
Configuring Message VPN Event Thresholds
Configuring the Max Number of Flows
Configuring the Max Number of Transactions
Configuring the Max Number of Endpoints
Configuring the Max Number of Transactions
Configuring the Max Spool Usage
Configuring Sequenced Topics
Configuring Sequenced Topics
Configuring Queues Using the Solace Event Broker CLI
Configuring Access Types
Configuring Max Number of Flows That May Bind
Enabling / Disabling Propagating Consumer ACKs to Replicated VPNs
Configuring Queue Event Thresholds
Configuring Max Permitted Number of Delivered Unacked Messages
Configuring Max Permitted Message Sizes
Configuring Max Redelivery Attempts
Configuring a Message Redelivery Delay
Configuring Message Redelivery
Configuring Message Delivery Count
Configuring Delayed Delivery
Configuring Max Spool Usage Values
Configuring Queue Owners
Configuring Permissions for Non-Owner Clients
Enabling Rejection of Low-Priority Messages
Configuring Reject Low-Priority Message Limits
Configuring Message Discard Handling
Configuring Max Message TTLs
Enforcing Whether to Respect DMQ-Eligible Flags
Enforcing Whether to Respect Message Priority Values
Enforcing Whether to Respect TTLs
Configuring Partitioned Queues
Adding Topic Subscriptions to Queues
Adding Topic Subscription Exceptions to Queues
Enabling / Disabling Client Access to Queues
Configuring Queues Using Broker Manager
Configuring Partitioned Queues Using Broker Manager
Configuring Dead Message Queues Using the Solace Event Broker CLI
Configuring Dead Message Queues Using Broker Manager
Configuring Topic Endpoints Using the Solace Event Broker CLI
Configuring Access Types
Configuring Max Number of Flows That May Bind
Configuring Max Number of Delivered Unacked Messages
Configuring Max Permitted Message Sizes
Configuring Max Permitted Redelivery Attempts
Configuring a Message Redelivery Delay
Configuring Message Redelivery
Configuring Message Delivery Count
Configuring Delayed Delivery
Configuring Max Spool Usage Values
Configuring Permissions for Non-Owner Clients
Configuring Reject Low‑Priority Message Limits
Configuring Topic Endpoint Event Thresholds
Configuring Topic Endpoint Owners
Configuring Message Discard Handling
Enabling/Disabling Clients from Publishing to/Consuming from Topic Endpoints
Enabling/Disabling Propagating Consumer Acks to Replicated VPNs
Enabling Rejection of Low‑Priority Messages
Configuring Max Message TTLs
Enforcing Whether to Respect DMQ-Eligible Flags
Enforcing Whether to Respect Message Priority Values
Enforcing Whether to Respect Message TTLs
Configuring Topic Endpoints Using Broker Manager
Configuring Endpoint Templates Using the Solace Event Broker CLI
Configuring Queue Templates
Setting Name Filters to Match Queue Names
Setting Durability Override
Setting Access Types
Setting Consumer ACK Propagation
Setting Queue Event Thresholds
Setting Max Number of Flows That May Bind
Setting Max Permitted Number of Delivered Unacked Messages
Setting Max Permitted Message Sizes
Setting Max Redelivery Attempts
Setting a Message Redelivery Delay
Disabling Message Redelivery
Setting a Delivery Delay
Setting Max Spool Usage Values
Setting Permissions for Non-Owner Clients
Setting Rejection of Low-Priority Messages
Setting Reject Low‑Priority Message Limits
Setting Message Discard Handling
Setting Max Message TTLs
Setting Respect DMQ-Eligible Flags
Setting Respect Message Priority Values
Setting Respect TTLs
Configuring Topic Endpoint Templates
Setting Name Filters to Match Topic Endpoint Names
Setting Access Types
Setting Consumer Acknowledgment (ACKs)
Setting Topic Endpoint Event Thresholds
Setting Max Number of Flows That May Bind
Setting Max Permitted Number of Delivered Unacked Messages
Setting Max Permitted Message Sizes
Setting Max Redelivery Attempts
Setting a Message Redelivery Delay
Disabling Message Redelivery
Setting a Delivery Delay
Setting Max Spool Usage Values
Setting Permissions for Non-Owner Clients
Setting Reject Low‑Priority Message Limits
Setting Rejection of Low-Priority Messages
Setting Max Message TTLs
Setting Message Discard Handling
Setting Respect DMQ-Eligible Flags
Setting Respect Message Priority Values
Setting Respect TTLs
Configuring Endpoint Templates Using Broker Manager
Viewing Guaranteed Messaging Information Using the Solace Event Broker CLI
Viewing Guaranteed Messaging Data Using Broker Manager
Engineering Guidelines for Disk Arrays
Understanding Guaranteed Messaging Performance
Converting Guaranteed Message and Disk Write Rates
Measuring Disk Performance
Diagnosing External Disk Performance Issues
Monitoring IO Statistics
Monitoring ADB Usage
Considerations for Optimal Disk Array Performance
Configuring an External Disk Array for Guaranteed Messaging
Array Requirements
Step 1: Register the Appliance Event Broker HBA with the External Array
Step 2: Provision a File System on the LUN
Provisioning a File System on the LUN with the Automated Script
Provisioning a File System on the LUN with GDisk
Step 3: Configure the Message Spool to Use the External Disk
Step 4: Verify the Guaranteed Message Spool Configuration
Configuration Changes to External Disk Arrays
Changing Physical Configuration
Changing Software Configuration
Changing from External to Internal Disk
Maintaining Guaranteed Messaging
System-level Message Spool Administration
Asserting Disk Ownership
Backing Up ADB To Disk
Troubleshooting Flash Card Failures
Resetting the Guaranteed Message Spool
Specifying Next Message IDs
Message VPN-Level Message Spool Administration
Changing the Starting Numbers for Sequenced Topics
Deleting Messages
Copying a Message From One Endpoint to Another
Defragmenting the Guaranteed Messaging Spool
Manual Defragmentation
Automatic Defragmentation
Schedule-Based Defragmentation
Threshold-Based Defragmentation
Replacing a LUN and Migrating the Disk Spool Files for a Standalone Appliance Event Broker
Replacing a LUN and Migrating the Disk Spool Files for a Redundant Appliance Event Broker Pair
Migrating Appliance Event Brokers from Internal to External Disk
Substitution Expressions Overview
Substitution Expression Processing Examples
Text Attributes That Can Contain Substitution Expressions
Streaming Compressed Connections
Using Streaming Compressed Connections
Configuring Streaming Compressed Connections for Data Connections
Configuring the Data Compression Optimization Mode
Monitoring Streaming Compressed Connections
Show Client Connections
Show Client Stats Detail
Show Compression
Show Service
Event Broker Features
Message VPNs
Managing Message VPNs Using Broker Manager
Configuring Message VPNs Using the CLI
Moving Message VPN Configurations Between Event Brokers
Monitoring VPN Configurations and Stats
CLI Steps to Set Up Message VPNs With Client Profiles
Backing Up and Restoring Message VPNs
Event Broker Redundancy for High Availability
High Availability for Appliance Event Brokers
Active/Standby Redundancy Model
Active/Active Redundancy Model
Recommended Redundancy Model
Fault Tolerance
Failure Detection
Failover Sequences
Auto-Revert Behavior of HA Appliance Event Brokers Using Only Direct Messaging
Subscription Exporting & Message VPNs
VPN Bridging & Fault Tolerance
Configuring Redundancy Parameters
HA Configuration for Appliance Event Brokers
Configuring Active/Backup High-availability Solace Appliance Event Brokers
Active/Active Pairs
Enabling Guaranteed Messaging for HA Appliance Event Brokers
High Availability for Software Event Brokers
Configuring High-availability (HA) Redundancy Groups
HA Group Configuration for Windows
HA Group Configuration for macOS
Pre-Shared Authentication Keys for Software Event Brokers
Configuring HA Groups Using Configuration Keys
Monitoring Redundancy
Maintaining Event Broker Redundancy
Starting/Stopping Event Broker Redundancy
Releasing Event Broker Activity
Forcing Backups to Give Up Activity to Primaries
Setting Auto-Revert States
Configuring Mate SMF Ports
Changing the VRID for Active/Standby Appliance Event Broker HA Pairs
Changing MSG-Backbone IP VRFs for HA Appliance Event Brokers
Adding Redundancy Interfaces to an HA Pair
Replacing Nodes in Software Event Broker HA Redundancy Groups
Removing Backup Appliance Event Broker from HA Pair
Config-Sync
Synchronizing High Availability Deployments
Synchronizing Replication Deployments
System Resources Used by Config-Sync
Config-Sync Configuration
Enabling Config-Sync
Asserting Event Broker System Configurations
Asserting Event Broker VPN Configurations
Properties That Are Not Synchronized
Checking Whether VPN Configurations Are the Same
Advanced Config-Sync Configurations
Enabling Config-Sync for Management User Commands
Modifying Config-Sync Client Profiles’ TCP Connect Parameters
Modifying Config-Sync Secure Authentication Parameters
Viewing Config-Sync Info
Data Center Replication for Disaster Recovery
How Replication Works
Non-Transacted Messages
Consumer ACK Propagation
Local Transactions
XA Transactions
Replication Best Practices
Do Not Mix Message Types
Use a Replication-Specific Topic Hierarchy
Ensure Sufficient Network Bandwidth
Be Aware of System Resources Used by Replication
Ensure Adequate Resources at Both Sites
Selecting Which Messages to Replicate
Synchronous and Asynchronous Message Replication
Non-Transacted Messages
Transactions
Downgrading to Asynchronous Replication
Preventing Downgrade to Asynchronous Replication
Replication Queue Full
Switching Service Between Sites
Changing the Replication State
Reconnecting Clients
Replication Failover Types
Failing Back to the Originally Active Site
Deployment Options for Replication
Allowing Clients to Connect to Standby Sites
Providing Service at Both Replication Sites
Using Replication With DMR
Configuring Replication
Steps for Configuring Replication
Configuring System-Level Replication Settings
Configuring Replication Mates
Configuring Replication Mates for Appliances
Configuring Replication Mates for Software Event Brokers
Configuring Replication Config-Sync Bridges
Configuring a Pre-Shared Authentication Key
Enabling Insecure Upgrade Mode
Setting Authentication Schemes
Enabling Data Compression
Configuring Message Spool Window Sizes
Configuring Retry Delay Times
Enabling SSL
Configuring SSL Server Certificate Validation
Enabling Replication Config-Sync Bridges
Enabling Server Name Validation for Replication Config-Sync Bridges
Configuring Replication Interfaces
Configuring TLS/SSL for Replication
Configuring Cipher Suites for Replication Connections
Configuring Replication Compatibility Mode for Transactions
Changing Replication Compatibility Mode While In Service
Configuring VPN-Level Replication Settings
Configuring Ack Propagation Intervals
Configuring Replication Bridges
Configuring Authentication Schemes
Enabling the Use of Compressed Data
Configuring Message Spool Window Sizes
Configuring Retry Delays
Enabling TLS/SSL Encryption for Bridge Connections
Setting Client Profiles for Uni-Directional Bridges
Configuring Replication Queues
Max Spool Usage
Reject Message To Sender on Discard
Configuring to Reject Messages When Sync Ineligible
Configuring Replicated Topics
Replication Mode
Configuring Transaction Replication Mode
Configuring VPN Replication States
Enabling Replication
Reconfiguring Hostname / Routername for Appliances
Configuring Replication with a DMR Network
Adding a Replication Mate to a Node in a DMR Network
Removing a Replication Mate from a Node in a DMR Network
Pairing Two Nodes for Replication in a DMR Cluster
Adding a Replication Group to a DMR Cluster
Monitoring Replication
Displaying System-Level Replication Info
Displaying Message VPN-Level Replication Info
Monitoring Replication Transactions
Monitoring Degraded Service
Procedures for Switching Replication Service Between Sites
Performing a Controlled Failover
Step 1: Verify that the Replication Bridge is Bound to the Replication Queue
Step 2: Switch the Message VPN Replication State to Standby
Step 3: Wait for the Replication Queue in the Formerly Active Message VPN to Drain
Step 4: Heuristically Commit or Roll Back Any In-Progress Transactions
Step 5: Make the Formerly Replication Standby Message VPN Replication Active
Step 6: Delete the Heuristically Completed Transactions
Performing an Uncontrolled Failover
Consequences of an Uncontrolled Failover
Step 1: Make Message VPNs at Standby Site Replication Active to Restore Service
Step 2: Ensure Clients Cannot Connect to the Failed Site
Step 3: If Necessary, Suspend Replication
Step 4: Bring Message VPNs at the Failed Site Back Online as Replication Standby
Failing Back to a Restored Site After an Uncontrolled Failover
Step 1: Verify if the Endpoint is Configured to Propagate Consumer Acknowledgments to the Replication Standby Site
Step 2: Display the Internal IDs of Messages on the Formerly Active Site
Step 3: Display the Internal IDs of Messages on the Active Site
Step 4: Delete Messages on the Formerly Active Site
Dynamic Message Routing
DMR Terminology
DMR Subscription Propagation and Data Forwarding
Best Practices for Designing an Event Mesh with DMR
DMR Examples
Horizontal Scaling
Multi-Site Connectivity
Setting Up an Event Mesh Using DMR
Prerequisites
Network Construction Rules
Creating an Event Mesh using Broker Manager
Configuring DMR External Links
Configuring DMR Internal Links
Enabling and Disabling DMR Mode
Configuring a DMR Cluster
Configuring Authentication on a Cluster
Configuring Basic Authentication
Configuring Authentication Using Client Certificates
Enabling TLS/SSL Encryption
Enabling the Validation of the Server Name
Configuring the Maximum Certificate Chain Depth
Enabling the Validation of the Certificate Date
Configuring Cluster Links
Setting the Link Span
Setting the Link Initiator
Setting the Connection Address for the Remote Node
Setting the Link Transport Method
Configuring Authentication on the Link
Configuring the Retry Connections for the Links
Setting the Window Size for the DMR Message Spool
Configuring Client Profiles for the Cluster Link
Configuring a Cluster Link Queue
Setting Cluster Link Attributes
Configuring Cluster Links with Replication
Configuring Links with Shared Data Channels
Configuring DMR on a Message VPN
Enabling or Disabling DMR for a Message VPN
Configuring a DMR Bridge
Horizontal Scaling Configuration
Using This Example
Step 1: Create a Secured Cluster
Step 2: Create Cluster Links for Each Node
Step 3: Verify All Control Channels Are Operational
Step 4: Enable DMR for Each Participating Message VPN
Step 5: Verify Data Channels Are Operational
Multi-Site Connectivity Configuration
Using This Example
Step 1: Create a Secured Cluster for Each Site
Step 2: Create Cluster Links for Each Site
Step 3: Verify All Control Channels Are Operational
Step 4: Enable DMR for Each Participating Message VPN
Step 5: Verify Data Channels Are Operational
Monitoring Your DMR Cluster
Message VPN Bridges
Configuring Message VPN Bridges
Creating a Message VPN Bridge Using Broker Manager
Configuring VPN Bridges Using the Solace Event Broker CLI
VPN Bridge Setup Examples
Monitoring VPN Bridges
Bridging to Remote Event Brokers That Use Redundancy
Disconnecting Bridge Connections
Kafka Bridging
Configuring Kafka Bridging in Broker Manager
Connecting to Apache Kafka Using the Connector Wizard
Configuring Kafka Bridging Using the Solace Event Broker CLI
Configuring a Kafka Receiver
Configuring Authentication Schemes for Kafka Receivers
None
AWS MSK IAM Authentication
AWS MSK IAM STS Authentication
Basic Authentication
SCRAM Authentication
Client Certificate Authentication
Kerberos Authentication
OAuth Client Authentication
Configuring Message Batch Handling for Kafka Receivers
Configuring the Bootstrap Address List for Kafka Receivers
Configuring the Kafka Receiver Consumer Group
Configuring the Kafka Consumer Group ID
Configuring the Kafka Consumer Group Keepalive Settings
Configuring the Kafka Consumer Group Membership Type 
Configuring the Kafka Consumer Group Partition Scheme
Configuring Kafka Topic Metadata Handling for Kafka Receivers
Configuring Topic Bindings for Kafka Receivers
Configuring the Initial Offset to Consume from the Kafka Topic
Configuring Partition Key Generation
Configuring SMF Topic Generation
Enabling TLS/SSL Encryption for Kafka Receiver Connections
Configuring a Kafka Sender
Configuring Authentication Schemes for Kafka Senders
None
AWS MSK IAM Authentication
AWS MSK IAM STS Authentication
Basic Authentication
SCRAM Authentication
Client Certificate Authentication
Kerberos Authentication
OAuth Client Authentication
Configuring Message Batch Handling for Kafka Senders
Configuring the Bootstrap Address List for Kafka Senders
Configuring Compression for Kafka Senders
Enabling Idempotence for Kafka Senders
Configuring Queue Bindings for Kafka Senders
Configuring the Acknowledgment Mode
Configuring the Kafka Partition Selection Scheme
Consistent Partition Selection
Explicit Partition Selection
Random Partition Selection
Configuring Kafka Partition Key Generation
Configuring SMF to Kafka Topic Mapping
Enabling TLS/SSL Encryption for Kafka Sender Connections
Enabling Compression for Kafka Sender Connections
Configuring the Maximum Number of Kafka Broker Connections
Monitoring Kafka Bridges
Displaying System Level Kafka Bridging Information
Displaying Message VPN Level Kafka Bridging Information
Displaying Kafka Receiver Information
Displaying Kafka Sender Information
Clearing Kafka Bridging Statistics
Kafka Bridging Example
Before You Begin
Step 1: Configure a Kafka Receiver
Step 2: Configure a Kafka Sender
Distributed Tracing
Distributed Tracing Terminology
Context Propagation for Distributed Tracing
Context Propagation in the Event Broker
Context Propagation with Solace Messaging APIs
Visualizing Trace Information in the Backend
Configuring Distributed Tracing
Solace OpenTelemetry Receiver
Distributed Tracing OpenTelemetry Span Fields
Solace Messaging APIs - Distributed Tracing OpenTelemetry Auto-Instrumentation Span Fields
Distributed Tracing Version Compatibility
OpenTelemetry Receiver
Event Broker Version Compatibility
Solace Messaging APIs Minimum Versions
Distributed Tracing Example
Before You Begin
Step 1: Configure Initial Telemetry Settings
Step 2: Configure Tracing
Step 3: Enable a Debugging Activity
Step 4: Disable Tracing
Distributed Tracing Best Practices
Traceability
Performance
Operational Enhancement
Message Replay
Understanding Message Replay
Message Replay Walk-Through
Use Cases
Message Replay / Solace Cache Comparison
Configuring Message Replay Using Broker Manager
Message Replay Configuration Video
Configuring and Using Message Replay Using the Solace Event Broker CLI
Trimming Message Replay Logs
Monitoring Message Replay
Playing Back a Replay Log
Message Replay Examples
Developing Messaging Applications
Messaging Components and Application Interactions
SMF
MQTT
AMQP
JMS
REST
Protocol Metadata and Payload Encoding Interactions
Payload Conversions
Metadata Conversions
Solace Messaging APIs
Feature Support in Solace Messaging APIs
Supported Environments for Solace Messaging APIs
Understanding Solace Messaging API Concepts
Solace Messaging API Developer Guides
C API
Solace C API Developer Guide
Messaging API Concepts
Messaging Domains
Message Delivery Modes
Direct
Persistent (Guaranteed)
Non-Persistent
Message Promotion and Demotion
Message Delivery Modes Terminology
Messages
Factories
Contexts
Sessions
Guaranteed Message Flows
Browsers
Cache Sessions
Destinations, Subscriptions, and Endpoints
Destinations
Subscriptions
Endpoints
Supported Environments
Quick Start
API Versioning
Installation
Code and Compile Guidelines
Guidelines for Secure Connections and Authentication
Run Guidelines
Building Messaging API Samples
Initializing and Monitoring APIs
Initializing APIs
Cleanup
Creating Contexts
Callbacks and Delegates
Context Timers
Configuring Logging
Working with Session Statistics
Creating Client Sessions
Session Properties Required to Establish a Connection
Authentication Scheme
Client Name
Host
Local Host
Connecting Directly to Host Event Brokers
Connecting to Host Event Broker Through Proxies
Message VPN
Web Transport Protocol for Java RTO, C or .NET APIs
Guaranteed Messaging over Web Sockets
Configuring Connection Time-Outs and Retries
Connection Time-Out
Connect Retries
Reconnect Retries
Reconnect Retry Wait
Connect Retries Per Host
Sample Connect Retry Scenario
Defining Client Authentication Info
Basic Authentication
Username
Password
Client Certificate Authentication
Kerberos Authentication
OAuth Authentication
Creating Secure Sessions
TLS/SSL-Specific Properties
Detecting Event Broker Capabilities
Enabling Channel Compression for a Session
Enabling No Local Delivery for a Session
Setting Client Keepalives
Handling Session Events
Managing Message Properties in the Solace Messaging APIs
Getting Message Properties
Setting Message Properties
Duplicating Messages
Displaying Messages
Freeing Messages
End-to-End Payload Compression
Publishing Direct Messages
Creating Topics
Creating Messages
Message Ownership
Message Types
Resetting Messages
Setting Message Properties
Delivery Mode
Destination
Deliver-To-One Subscriber
Class of Service
Message Eliding Eligibility
Adding Data Payloads
Sending Direct Messages
Blocking and Non-blocking Network I/O
Sending One Message at a Time
Sending Multiple Messages at a Time
Publishing Messages that Request Replies
Setting Custom ReplyTo Suffixes and Destinations
Receiving Direct Messages
Managing Subscriptions
Session-Level Controls for Subscription Operations
Adding Topic Subscriptions
Managing Topic Subscriptions on Behalf of Other Clients
Removing Subscriptions
Receiving Direct Messages
Message Discard Indications
Receiving Topic-Specific Messages with Custom Callbacks
Replying to Request Messages
Publishing Guaranteed Messages
Acknowledging Published Messages
Setting a Message Acknowledgment Event Mode
Creating Topics
Creating Messages
Message Ownership
Message Types
Resetting Messages
Setting Message Properties
Ack Immediately
Class-of-Service
Correlation ID
Dead Message Queue Eligibility
Deliver-To-One Subscribers
Delivery Mode
Destination
Message Eliding Eligibility
Message Expiration
Message Priority
Partition Key
ReplyTo Destination
Time-To-Live
Adding Data Payloads
Sending Guaranteed Messages
Blocking and Non-Blocking I/O
Sending Messages Larger Than the Event Broker's Maximum Message Size
Adjusting the Guaranteed Message Publish Window Size
Adjusting the Guaranteed Message Publish Ack Timer
Sending One Message at a Time
Sending Multiple Messages at a Time
Message Correlation
Request Reply Messaging
Publishing Guaranteed Requests
Receiving Reply Messages
Replying to Guaranteed Requests
Request Reply Example
Receiving Guaranteed Messages
Queues
Topic Endpoints
Endpoint Durability
Provisioning and Deprovisioning Durable Endpoints
Provisioning Endpoints Using the Solace Messaging APIs
Deprovisioning Endpoints Using the Solace Messaging APIs
Creating Temporary Endpoints
Defining Endpoint Properties
Client-Configurable Endpoint Properties
Adding Subscriptions to Endpoints
Adding Subscriptions to Queues
Adding Subscriptions with Custom Callbacks to Queues
Adding Subscription Exceptions to Queues
Adding Subscriptions to Topic Endpoints
Removing Subscriptions from Endpoints
Creating Flows
Active Flow Indication
No Local Delivery
Flow Auto Reconnect
Acknowledging Messages Received by Clients
Solace C API Acknowledgments
Application Acknowledgments
Negative Acknowledgments for Specific Messages
Browsing Guaranteed Messages
Creating Browser Flows
Browsing Messages with the C API
Removing Messages When Browsing
Using Selectors
Performance Considerations When Using Selectors
Selector Identifier Mapping between JMS and Solace C API
Setting Selectors on Endpoints
Replaying from the Replay Log
Event Broker Initiated Replay
Client Initiated Replay
Detecting Duplicate Messages
Looking up Replication Group Message IDs in a Database
Comparing Replication Group Message IDs
Using Structured Data
Supported Structured Data Types
SDT Containers
Creating Structure Data Maps and Streams
Message-Independent Maps and Streams
Creating Structured Data Maps
Creating Structured Data Streams
Copying Content from Containers to Messages
Adding Content from Containers to Messages by Reference
Adding Containers to Existing Containers
Message-Dependent Maps and Streams
Creating Message-Dependent Maps and Streams
Creating Custom Message Header Fields
Using Local Transactions
Threading Considerations
Creating Transacted Sessions
Publishing Messages in Transactions
How Endpoints’ Message Discard Behavior Affects Transactions
Consuming Messages in Transactions
Completing Transactions
Committing Transactions
Rolling Back Transactions
Closing Transacted Sessions
Delayed Redelivery
Thread Safety
API Threading
Threading When Publishing Messages
Threading When Receiving Messages
Receiving Messages Asynchronously
API Best Practices
C API Best Practices
General Best Practices
Tuning Guidelines for Guaranteed Messaging
Reapply Subscriptions
Number of Flows and Guaranteed Message Window Size
Minimum Message Burst Size
Threading
Selecting a Threading Model
Application-Provided Threads
Context Thread Affinity
File Descriptor Management
File Descriptor Limits
Initializing Data Structures with Provided Macros
Memory Management
Message Abstraction
Modifying Global Pool Buffer Sizes
Configuring Message Buffer Sizes
Managing Memory When Publishing Messages
Managing Memory When Receiving Messages
TCP Send and Receive Buffer Size
Session Establishment
Blocking Connect
Host Lists
Client API Keep-alive
High Availability Failover and Reconnect Retries
Replication Failover and Reconnect Retries
Replication Failover and Session Re-Establishment
Blocking Call in Transacted Session Callback
File Descriptor Limitation
Selecting Blocking Modes
How Blocking Modes Affect Publishing
Subscription Management
Working with iOS Applications
Responding to State and Connectivity Changes
Providing a Trust Store for Creating Secure Connections
Sending Messages
Blocking Send
Batch Send
Time-to-Live Messages
Receiving Messages
Consume Messages As Soon As Possible
Handling Duplicate Message Publication
Handling Redelivered Messages
Dealing with Unexpected Message Formats
Client Acknowledgment
Do Not Block in Callbacks
Queues and Flows
Receiving One Message at a Time
Setting Temporary Endpoint Spool Size
AD Window Size and max-delivered-unacked-msgs-per-flow
Number of Flows and AD Window Size
Error Handling and Logging
Logging and Log Level
Handling Session Events / Errors
Handling Flow Events / Errors
Error Handling Functions
Subcodes
Event Broker Configuration that Influences Client Application Behavior
Max Redelivery
Reject Message to Sender on Discard
Replication Best Practices
Messaging API Versions
Host Lists
Automatic Reconnect
Queue Network Names
Redundancy Best Practices
High Availability Reconnection Settings
Host Lists
Solace Cache
Using Solace Cache With the Solace C API
.NET/C# API
.NET API Developer Guide
Messaging API Concepts
Message Delivery Modes
Direct
Persistent (Guaranteed)
Non-Persistent
Message Promotion and Demotion
Message Delivery Modes Terminology in the Solace .NET API
Guaranteed Message Flows
Browsers
Destinations, Subscriptions, and Endpoints
Destinations
Subscriptions
Endpoints
Supported Environments
Quick Start
API Versioning
Building .NET Projects with NuGet
Installation
Code and Compile Guidelines
Initializing and Monitoring APIs
Creating Contexts
Callbacks and Delegates
Configuring Logging
Working with Session Statistics
Creating Client Sessions
Session Properties Required to Establish a Connection
Authentication Scheme
Client Name
Host
Local Host
Connecting Directly to Host Event Brokers
Connecting to Host Event Broker Through Proxies
Message VPN
Configuring Connection Time-Outs and Retries
Connection Time-Out
Connect Retries
Reconnect Retries
Reconnect Retry Wait
Connect Retries Per Host
Sample Connect Retry Scenario
Defining Client Authentication Info
Basic Authentication
Username
Password
Client Certificate Authentication
Kerberos Authentication
OAuth Authentication
Creating Secure Sessions
TLS/SSL-Specific Properties
Detecting Event Broker Capabilities
Enabling Channel Compression for a Session
Enabling No Local Delivery for a Session
Setting Client Keepalives
Managing Message Properties in the Solace Messaging APIs
Getting Message Properties
Setting Message Properties
Displaying Messages
End-to-End Payload Compression
Publishing Direct Messages
Creating Topics
Creating Messages
Message Ownership
Message Types
Resetting Messages
Setting Message Properties
Delivery Mode
Destination
Deliver-To-One Subscriber
Class of Service
Message Eliding Eligibility
Adding Data Payloads
Sending Direct Messages
Blocking and Non-blocking Network I/O
Sending One Message at a Time
Sending Multiple Messages at a Time
Publishing Messages that Request Replies
Setting Custom ReplyTo Suffixes and Destinations
Receiving Direct Messages
Managing Subscriptions
Session-Level Controls for Subscription Operations
Adding Topic Subscriptions
Managing Topic Subscriptions on Behalf of Other Clients
Removing Subscriptions
Receiving Direct Messages
Message Discard Indications
Replying to Request Messages
Publishing Guaranteed Messages
Acknowledging Published Messages
Setting a Message Acknowledgment Event Mode
Creating Topics
Creating Messages
Message Ownership
Message Types
Resetting Messages
Setting Message Properties
Ack Immediately
Class-of-Service
Correlation ID
Dead Message Queue Eligibility
Deliver-To-One Subscribers
Delivery Mode
Destination
Message Eliding Eligibility
Message Expiration
Message Priority
Partition Key
ReplyTo Destination
Time-To-Live
Adding Data Payloads
Sending Guaranteed Messages
locking and Non-Blocking Network I/O in the PubSub+ .NET API
Sending Messages Larger Than the Event Broker's Maximum Message Size
Adjusting the Guaranteed Message Publish Window Size
Adjusting the Guaranteed Message Publish Ack Timer
Sending One Message at a Time
Sending Multiple Messages at a Time
Message Correlation
Request Reply Messaging
Publishing Guaranteed Requests
Receiving Reply Messages
Replying to Guaranteed Requests
Request Reply Example
Receiving Guaranteed Messages
Queues
Topic Endpoints
Endpoint Durability
Provisioning and Deprovisioning Durable Endpoints
Provisioning Endpoints Using the PubSub+ Messaging APIs
Deprovisioning Endpoints Using the PubSub+ Messaging APIs
Creating Temporary Endpoints
Defining Endpoint Properties
Client-Configurable Endpoint Properties
Adding Subscriptions to Endpoints
Adding Subscriptions to Queues
Adding Subscription Exceptions to Queues
Removing Subscriptions from Endpoints
Creating Flows
Active Flow Indication
No Local Delivery
Flow Auto Reconnect
Acknowledging Messages Received by Clients
API Acknowledgments
Application Acknowledgments
Negative Acknowledgments for Specific Messages
Browsing Guaranteed Messages
Creating Browsers
Browsing Messages with the Java API
Removing Messages When Browsing
Using Selectors
Performance Considerations When Using Selectors
Selector Identifier Mapping between JMS and the Solace .NET API
Setting Selectors on Endpoints
Replaying from the Replay Log
Event Broker Initiated Replay
Client Initiated Replay
Detecting Duplicate Messages
Looking up Replication Group Message IDs in a Database
Comparing Replication Group Message IDs
Using Structured Data
Supported Structured Data Types
SDT Containers
Creating Structure Data Maps and Streams
Message-Independent Maps and Streams
Creating Structured Data Maps
Creating Structured Data Streams
Adding Content from Containers to Messages by Reference
Adding Containers to Existing Containers
Using Local Transactions
Threading Considerations
Creating Transacted Sessions
Publishing Messages in Transactions
How Endpoints’ Message Discard Behavior Affects Transactions
Consuming Messages in Transactions
Completing Transactions
Committing Transactions
Rolling Back Transactions
Delayed Redelivery
Thread Safety
API Threading
Threading When Publishing Messages
Threading When Receiving Messages
Receiving Messages Asynchronously
Receiving Messages Synchronously
Context Propagation for Distributed Tracing
Instrumenting .NET for Distributed Tracing
.NET API Best Practices
General Best Practices
Tuning Guidelines for Guaranteed Messaging
Reapply Subscriptions
Number of Flows and Guaranteed Message Window Size
Minimum Message Burst Size
Basic Rules
Threading
Selecting a Threading Model
Context and Session Threading Model Considerations
Memory Management
Modifying the Global Pool Buffer Sizes
Configuring Message Buffer Sizes
Managing Memory When Publishing Messages
Managing Memory When Receiving Messages
Do Not Cache XMLMessages
Session Establishment
Blocking Connect
Host Lists
Client API Keep-alive
High Availability Failover and Reconnect Retries
Replication Failover and Reconnect Retries
Replication Failover and Session Re-Establishment
File Descriptor Limitation
Subscription Management
Sending Messages
Blocking Send
Batch Send
Time-to-Live Messages
Receiving Messages
Handling Duplicate Message Publication
Handling Redelivered Messages
Dealing with Unexpected Message Formats
Client Acknowledgment
Do Not Block in Callbacks
Queues and Flows
Receiving One Message at a Time
Setting Temporary Endpoint Spool Size
AD Window Size and max-delivered-unacked-msgs-per-flow
Number of Flows and AD Window Size
Error Handling and Logging
Logging and Log Level
Error Handling
Subcodes
Handling Session Events / Errors
Handling Flow Events / Errors
Event Broker Configuration that Influences Client Application Behavior
Max Redelivery
Reject Message to Sender on Discard
Replication Best Practices
Messaging API Versions
Host Lists
Automatic Reconnect
Queue Network Names
Redundancy Best Practices
High Availability Reconnection Settings
Host Lists
Using the PubSub+ .NET API with PubSub+ Cache
Making Cache Requests
Serializing and Deserializing Messages with the Solace .NET API
Go API
Solace Go API Developer Guide
Builder Pattern Usage in the Solace Go API
Supported Environments for the Solace Go API
Semantic Versioning
Messaging Service
Creating a Property Map
End-to-End Payload Compression
Establishing a Connection to an Event Broker
Connecting to a Host Event Broker Through Proxies
Using Transport Layer Security
Authentication
Publishing Messages
Publishing Direct Messages Using the Solace Go API
Creating a DirectMessagePublisher
Configuring and Creating Outbound Messages
Handling Back Pressure When Publishing Direct Messages
Publishing a Direct Message
Handling Errors
Publishing Persistent Messages Using the Solace Go API
Creating a PersistentMessagePublisher
Configuring and Creating Outbound Messages
Handling Back Pressure When Publishing Persistent Messages
Publishing a Persistent Message
Acknowledging Messages and Handling Errors
User Contexts
Receiving Messages
Consuming Direct Messages Using the Solace Go API
Creating a DirectMessageReceiver
Handling Back Pressure When Subscribing to Direct Messages
Receiving a Direct Message Synchronously
Receiving a Direct Message Asynchronously
Extracting Properties from an Inbound Message
Using Solace Cache With the Solace Go API
Consuming Persistent Messages Using the Solace Go API
Creating a PersistentMessageReceiver
Consuming a Persistent Message Synchronously
Consuming a Persistent Message Asynchronously
Extracting Properties from an Inbound Message
Message Acknowledgments
Negative Acknowledgments for Specific Messages
Provisioning and Deprovisioning Queues with the Solace Go API
Context Propagation for Distributed Tracing in the Solace Go API
Request-Reply Messaging in the Solace Go API
Java API
Solace Java API Developer Guide
Builder Pattern Usage in the Solace Java API
Supported Environments for the Solace Java API
Configuring Logging in the Solace Java API
Building Java Projects with Maven
Semantic Versioning
Using the Solace Java API Examples
Messaging Service
Creating a Properties Object
End-to-End Payload Compression
Establishing a Connection to an Event Broker
Using Transport Layer Security
Using Websockets
Authentication
Configuration Profiles
Using Proxy Connections in the Java API
Publishing Messages
Publishing Direct Messages Using the Solace Java API
Creating a DirectMessagePublisher Object
Configuring and Creating Outbound Messages
Handling Back Pressure When Publishing Direct Messages
Publishing a Direct Message
Handling Errors
Publishing Persistent Messages Using the Solace Java API
Creating a PersistentMessagePublisher Object
Configuring and Creating Outbound Messages
Handling Back Pressure When Publishing Persistent Messages
Publishing a Persistent Message
Acknowledging Messages and Handling Errors
Receiving Messages
Consuming Direct Messages Using the Solace Java API
Creating a DirectMessageReceiver Object
Handling Back Pressure When Subscribing to Direct Messages
Receiving a Direct Message Synchronously
Receiving a Direct Message Asynchronously
Extracting Properties from an Inbound Message
Consuming Persistent Messages Using the Solace Java API
Creating a PersistentMessageReceiver Object
Consuming a Persistent Message Synchronously
Consuming a Persistent Message Asynchronously
Extracting Properties from an Inbound Message
Message Acknowledgments
Negative Acknowledgments for Specific Messages
Creating Queues with the Solace Java API
Browsing Queues with the Solace Java API
Context Propagation for Distributed Tracing in the Solace Java API
Request-Reply Messaging in the Solace Java API
Java RTO API
Java RTO API Developer Guide
Messaging API Concepts
Messaging Domains
Message Delivery Modes
Direct
Persistent (Guaranteed)
Non-Persistent
Message Promotion and Demotion
Message Delivery Modes Terminology
Guaranteed Message Flows
Browsers
Destinations, Subscriptions, and Endpoints
Destinations
Subscriptions
Endpoints
Supported Environments
Quick Start
API Versioning
Building Java Projects with Maven
Obtaining Artifacts from Maven Central
Installation
Code and Compile Guidelines
Guidelines for Secure Connections and Authentication
Run Guidelines
Initializing and Monitoring APIs
Initializing APIs
Cleanup
Creating Contexts
Callbacks and Delegates
Context Timers
Configuring Logging
Java RTO API
Working with Session Statistics
Creating Client Sessions
Session Properties Required to Establish a Connection
Authentication Scheme
Client Name
Host
Local Host
Connecting Directly to Host Event Brokers
Connecting to Host Event Broker Through Proxies
Message VPN
Web Transport Protocol for Java RTO API
Guaranteed Messaging over Web Sockets
Configuring Connection Time-Outs and Retries
Connection Time-Out
Connect Retries
Reconnect Retries
Reconnect Retry Wait
Connect Retries Per Host
Sample Connect Retry Scenario
Defining Client Authentication Info
Basic Authentication
Username
Password
Client Certificate Authentication
Kerberos Authentication
OAuth Authentication
Creating Secure Sessions
TLS/SSL-Specific Properties
Detecting Event Broker Capabilities
Enabling Channel Compression for a Session
Enabling No Local Delivery for a Session
Setting Client Keepalives
Managing Message Properties in the Solace Messaging APIs
Getting Message Properties
Setting Message Properties
Duplicating Messages
Displaying Messages
Freeing Messages
End-to-End Payload Compression
Publishing Direct Messages
Creating Topics
Creating Messages
Message Ownership
Message Types
Resetting Messages
Setting Message Properties
Delivery Mode
Destination
Deliver-To-One Subscriber
Class of Service
Message Eliding Eligibility
Adding Data Payloads
Sending Direct Messages
Blocking and Non-blocking Network I/O
Sending One Message at a Time
Sending Multiple Messages at a Time
Publishing Messages that Request Replies
Setting Custom ReplyTo Suffixes and Destinations
Receiving Direct Messages
Managing Subscriptions
Session-Level Controls for Subscription Operations
Adding Topic Subscriptions
Managing Topic Subscriptions on Behalf of Other Clients
Removing Subscriptions
Receiving Direct Messages
Message Discard Indications
Receiving Topic-Specific Messages with Custom Callbacks
Replying to Request Messages
Publishing Guaranteed Messages
Acknowledging Published Messages
Setting a Message Acknowledgment Event Mode
Creating Topics
Creating Messages
Message Ownership
Message Types
Resetting Messages
Setting Message Properties
Ack Immediately
Class-of-Service
Correlation ID
Dead Message Queue Eligibility
Deliver-To-One Subscribers
Delivery Mode
Destination
Message Eliding Eligibility
Message Expiration
Message Priority
Partition Key
ReplyTo Destination
Time-To-Live
Adding Data Payloads
Sending Guaranteed Messages
Blocking and Non-Blocking I/O
Sending Messages Larger Than the Event Broker's Maximum Message Size
Adjusting the Guaranteed Message Publish Window Size
Adjusting the Guaranteed Message Publish Ack Timer
Sending One Message at a Time
Sending Multiple Messages at a Time
Message Correlation
Request Reply Messaging
Publishing Guaranteed Requests
Receiving Reply Messages
Replying to Guaranteed Requests
Request Reply Example
Receiving Guaranteed Messages
Queues
Topic Endpoints
Endpoint Durability
Provisioning and Deprovisioning Durable Endpoints
Provisioning Endpoints Using the PubSub+ Messaging APIs
Deprovisioning Endpoints Using the PubSub+ Messaging APIs
Creating Temporary Endpoints
Defining Endpoint Properties
Client-Configurable Endpoint Properties
Adding Subscriptions to Endpoints
Adding Subscriptions to Queues
Adding Subscriptions with Custom Callbacks to Queues
Adding Subscription Exceptions to Queues
Adding Subscriptions to Topic Endpoints
Removing Subscriptions from Endpoints
Creating Flows
Active Flow Indication
No Local Delivery
Flow Auto Reconnect
Acknowledging Messages Received by Clients
API Acknowledgments
Application Acknowledgments
Negative Acknowledgments for Specific Messages
Browsing Guaranteed Messages
Creating Browser Flows
Browsing Messages with the Java RTO API
Removing Messages When Browsing
Using Selectors
Performance Considerations When Using Selectors
Selector Identifier Mapping between JMS and Solace Java RTO API
Setting Selectors on Endpoints
Replaying from the Replay Log
Event Broker Initiated Replay
Client Initiated Replay
Detecting Duplicate Messages
Looking up Replication Group Message IDs in a Database
Comparing Replication Group Message IDs
Using Local Transactions
Threading Considerations
Creating Transacted Sessions
Publishing Messages in Transactions
How Endpoints’ Message Discard Behavior Affects Transactions
Consuming Messages in Transactions
Completing Transactions
Committing Transactions
Rolling Back Transactions
Thread Safety
API Threading
Threading When Publishing Messages
Threading When Receiving Messages
Receiving Messages Asynchronously
Receiving Messages Synchronously
API Best Practices
Java RTO API Best Practices
Context and Session Threading Model Considerations
Memory Management
Modifying the Global Pool Buffer Sizes
Configuring Message Buffer Sizes
Object Pooling
Get vs. Take
TCP Send and Receive Buffer Size
Session Establishment
Blocking Connect
Host Lists
Client API Keep-alive
High Availability Failover and Reconnect Retries
Replication Failover and Reconnect Retries
Replication Failover and Session Re-Establishment
File Descriptor Limitation
Subscription Management
Sending Messages
Blocking Send
Batch Send
Time-to-Live Messages
Receiving Messages
Memory Management when Receiving Messages
Handling Duplicate Message Publication
Handling Redelivered Messages
Dealing with Unexpected Message Formats
Client Acknowledgment
Do Not Block in Callbacks
Queues and Flows
Receiving One Message at a Time
Setting Temporary Endpoint Spool Size
AD Window Size and max-delivered-unacked-msgs-per-flow
Number of Flows and AD Window Size
Error Handling and Logging
Logging and Log Level
Handling Session Events / Errors
Handling Flow Events / Errors
Event Broker Configuration that Influences Client Application Behavior
Max Redelivery
Reject Message to Sender on Discard
Replication Best Practices
Messaging API Versions
Host Lists
Automatic Reconnect
Queue Network Names
Redundancy Best Practices
High Availability Reconnection Settings
Host Lists
Using the Solace Java RTO API with Solace Cache
JavaScript API
JavaScript and Node.js API Developer Guide
Messaging API Concepts
Message Delivery Modes
Direct
Persistent (Guaranteed)
Non-Persistent
Message Promotion and Demotion
Message Delivery Modes Terminology
Guaranteed Message Flows
Destinations, Subscriptions, and Endpoints
Supported Environments
Quick Start
API Versioning
Getting the Node.js API Library Using npm
Installation
Initializing and Monitoring APIs
Contexts
Configuring Logging
Handling Session Events
Working with Session Statistics
Creating Client Sessions
Factories
Sessions
Session Properties Required to Establish a Connection
Configuring Connection Time-Outs and Retries
Defining Client Authentication Info
Creating Secure Sessions
Detecting Event Broker Capabilities
Enabling Channel Compression for a Session
Enabling No Local Delivery for a Session
Setting Client Keepalives
Managing Messages
End-to-End Payload Compression
Publishing Direct Messages
Creating Topics
Messages
Creating Messages
Setting Message Properties
Creating Custom Header Fields
Adding Data Payloads
Sending Direct Messages
Publishing Messages that Request Replies
Receiving Direct Messages
Managing Subscriptions
Receiving Direct Messages
Publishing Guaranteed Messages
Acknowledging Published Messages
Creating Topics
Creating Messages
Adding Data Payloads
Sending Guaranteed Messages
Request Reply Messaging
Receiving Guaranteed Messages
Provisioning and Deprovisioning Durable Endpoints
Creating Temporary Endpoints
Defining Endpoint Properties
Adding Subscriptions to Endpoints
Creating Flows
Acknowledging Messages Received by Clients
Browsing Guaranteed Messages
Replaying from the Replay Log
Detecting Duplicate Messages
Using Structured Data
SDT Containers
Creating Structured Data Maps and Streams
Distributed Tracing
Thread Safety
API Threading
Threading When Publishing Messages
API Best Practices
Solace JavaScript API & Solace Node.js API Best Practices
Replication Best Practices
Redundancy Best Practices
Using the Solace JavaScript API with Solace Cache
Cache Sessions
Using Solace Cache With the Solace JavaScript API
Web Messaging Overview
What is Solace Web Messaging?
Web Messaging Architectures
Internet-Based Web Application Deployment Architecture
Using Event Brokers Only for Web Messaging
Cross Origin Resource Sharing – CORS
Web Transport Protocols
Multiple Applications Sharing the Same Infrastructure
Session Load Balancing to Event Brokers Within a DMZ
Programming Model with Solace Web Messaging
Publish-Subscribe Message Exchange Pattern
Request / Reply Message Exchange Pattern
Useful Features for Web Messaging
Solace Messaging APIs
Client Authentication
Data Access Controls
Limiting Client Message Stream Rates
Last Value Caching
Message Priority
Network-Level DMZ Connectivity Architecture
Using F5 Big-IP as a Load Balancer for External Internet Connectivity
JCSMP API
JCSMP API Developer Guide
Messaging API Concepts
Messaging Domains
Message Delivery Modes in the Solace JCSMP API
Direct
Persistent (Guaranteed)
Non-Persistent
Message Promotion and Demotion
Message Delivery Modes Terminology
Messages
Factories
Contexts
Sessions
Guaranteed Message Flows
Browsers
Cache Sessions
Destinations, Subscriptions, and Endpoints
Destinations
Subscriptions
Endpoints
Supported Environments
Quick Start
API Versioning
Building Java Projects with Maven
Obtaining Artifacts from Maven Central
Installing Artifacts Locally
Deploying Artifacts to Remote Repositories
Netty Dependency Compatibility
Installation
Code and Compile Guidelines
Guidelines for Secure Connections and Authentication
Building Messaging API Samples
Creating Contexts
Callbacks and Delegates
Configuring Logging
Working with Session Statistics
Creating Client Sessions
Session Properties Required to Establish a Connection
Authentication Scheme
Client Name
Host
Local Host
Connecting Directly to Host Event Brokers
Connecting to Host Event Broker Through Proxies
Message VPN
Configuring Connection Time-Outs and Retries
Connection Time-Out
Connect Retries
Reconnect Retries
Reconnect Retry Wait
Connect Retries Per Host
Sample Connect Retry Scenario
Defining Client Authentication Info
Basic Authentication
Username
Password
Client Certificate Authentication
Kerberos Authentication
OAuth Authentication
Creating Secure Sessions
TLS/SSL-Specific Properties
Detecting Event Broker Capabilities
Enabling Channel Compression for a Session
Enabling No Local Delivery for a Session
Setting Client Keepalives
Handling Session Events
Managing Message Properties in the Solace JCSMP API
Getting Message Properties
Setting Message Properties
Displaying Messages
End-to-End Payload Compression
Publishing Direct Messages
Creating Topics
Creating Messages
Message Ownership
Message Types
Resetting Messages
Setting Message Properties
Delivery Mode
Destination
Deliver-To-One Subscriber
Class of Service
Message Eliding Eligibility
Adding Data Payloads
Sending Direct Messages
Streaming and Non-Streaming Sends in the JCSMP
Sending One Message at a Time
Sending Multiple Messages at a Time
Publishing Messages that Request Replies
Setting Custom ReplyTo Suffixes and Destinations
Receiving Direct Messages
Managing Subscriptions
Session-Level Controls for Subscription Operations
Adding Topic Subscriptions
Managing Topic Subscriptions on Behalf of Other Clients
Removing Subscriptions
Receiving Direct Messages
Message Discard Indications
Replying to Request Messages
Publishing Guaranteed Messages
Acknowledging Published Messages
Setting a Message Acknowledgment Event Mode
Creating Topics
Creating Messages
Message Ownership
Message Types
Resetting Messages
Setting Message Properties
Ack Immediately
Class-of-Service
Correlation ID
Dead Message Queue Eligibility
Deliver-To-One Subscribers
Delivery Mode
Destination
Message Eliding Eligibility
Message Expiration
Message Priority
Partition Key
ReplyTo Destination
Time-To-Live
Adding Data Payloads
Sending Guaranteed Messages
Streaming and Non-Streaming Sends
Sending Messages Larger Than the Event Broker's Maximum Message Size
Adjusting the Guaranteed Message Publish Window Size
Adjusting the Guaranteed Message Publish Ack Timer
Sending One Message at a Time
Sending Multiple Messages at a Time
Message Correlation
Request Reply Messaging
Publishing Guaranteed Requests
Receiving Reply Messages
Replying to Guaranteed Requests
Request Reply Example
Receiving Guaranteed Messages
Queues
Topic Endpoints
Endpoint Durability
Provisioning and Deprovisioning Durable Endpoints
Provisioning Endpoints Using the Solace JCSMP API
Deprovisioning Endpoints Using the Solace JCSMP API
Creating Temporary Endpoints
Defining Endpoint Properties
Client-Configurable Endpoint Properties
Adding Subscriptions to Endpoints
Adding Subscriptions to Queues
Adding Subscription Exceptions to Queues
Removing Subscriptions from Endpoints
Creating Flows
Active Flow Indication
No Local Delivery
Flow Auto Reconnect
Acknowledging Messages Received by Clients
API Acknowledgments
Application Acknowledgments
Negative Acknowledgments for Specific Messages
Browsing Guaranteed Messages
Creating Browsers
Browsing Messages with the Java API
Removing Messages When Browsing
Using Selectors
Performance Considerations When Using Selectors
Selector Identifier Mapping between JMS and Solace APIs
Setting Selectors on Endpoints
Replaying from the Replay Log
Event Broker Initiated Replay
Client Initiated Replay
Detecting Duplicate Messages
Looking up Replication Group Message IDs in a Database
Comparing Replication Group Message IDs
Using Structured Data
Supported Structured Data Types
SDT Containers
Creating Structure Data Maps and Streams
Message-Independent Maps and Streams
Creating Structured Data Maps
Creating Structured Data Streams
Adding Content from Containers to Messages by Reference
Adding Containers to Existing Containers
Creating Custom Message Header Fields
Using Local Transactions
Threading Considerations
Creating Transacted Sessions
Publishing Messages in Transactions
How Endpoints’ Message Discard Behavior Affects Transactions
Consuming Messages in Transactions
Completing Transactions
Committing Transactions
Rolling Back Transactions
Closing Transacted Sessions
Delayed Redelivery
Thread Safety
Threading in the Solace JCSMP API
Threading When Publishing Messages
Threading When Receiving Messages
Receiving Messages Asynchronously
Receiving Messages Synchronously
Context Propagation for Distributed Tracing in the Solace JCSMP API
Instrumenting JCSMP for Distributed Tracing
JCSMP Best Practices
General Best Practices
Tuning Guidelines for Guaranteed Messaging
Reapply Subscriptions
Number of Flows and Guaranteed Message Window Size
Minimum Message Burst Size
Basic Rules
Threading
API Threading
Context and Session Threading Model Considerations
Always Cleanup
Increase Buffer Sizes When Publishing Large Messages
TCP Send and Receive Buffer Size
Do Not Cache XMLMessages
Ultra-Low Latency
Session Establishment
Host Lists
Client API Keep-alive
High Availability Failover and Reconnect Retries
Replication Failover and Reconnect Retries
Replication Failover and Session Re-Establishment
File Descriptor Limitation
Subscription Management
Sending Messages
Sending Session-Independent Messages
Sending Session-Dependent Messages
Batch Send
High-Performance Batch Sending
Time-to-Live Messages
Receiving Messages
Handling Duplicate Message Publication
Handling Redelivered Messages
Dealing with Unexpected Message Formats
Client Acknowledgment
Consume Messages and Return From Callbacks As Soon As Possible
Memory Management When Receiving Messages
Queues and Flows
Receiving One Message at a Time
Setting Temporary Endpoint Spool Size
AD Window Size and max-delivered-unacked-msgs-per-flow
Number of Flows and AD Window Size
Error Handling and Logging
Logging and Log Level
Handling Session Events / Errors
Handling Flow Events / Errors
Custom Handling of Reconnect Events
Notification of Transport Events in Publish-Only Applications
Event Broker Configuration that Influences Client Application Behavior
Max Redelivery
Reject Message to Sender on Discard
Replication Best Practices
Messaging API Versions
Host Lists
Automatic Reconnect
Queue Network Names
Redundancy Best Practices
High Availability Reconnection Settings
Host Lists
Using the Solace JCSMP API with PubSub+ Cache
Making Cache Requests
Serializing and Deserializing Messages with the Solace JCSMP API
Prerequisites
Serializing and Deserializing Messages with Avro
Serializing and Deserializing Messages with JSON Schema
JMS API
Solace JNDI Objects
Starting/Stopping JNDI Access
Viewing JNDI Object Schemas
Show JNDI Schema Connection Factory
Show JNDI Schema Queue
Show JNDI Schema Topic
Configuring JNDI Objects
Configuring Connection Factories
Configuring Properties
Configuring Property Lists
Configuring Queue Objects
Property
Configuring Topic Objects
Property
Monitoring JNDI Objects
Viewing JNDI Connection Factory Configurations
Viewing JNDI Objects
Viewing JNDI Queues
Viewing JNDI Summaries
Viewing JNDI Topics
Developer Guide for Solace JMS API
JMS Overview
Extensions to Standard JMS API
Messaging Models
Message Transport Modes
Guaranteed Transport Mode
Direct Transport Mode
Supported Message Types and Transport Modes
Message Types
Message Components
Header Fields
Message Body
Considerations for Replicated Event Broker Deployments
Messaging API Versions
Host Lists
Automatic Reconnects
Quick Start
Installation
Required Packages
Supported Environments
Solace Messaging API for JMS and JMS Spec 2.0
Support for Geronimo JMS 1.1
Solace Messaging API for Jakarta
OSGI Support
Building JMS Projects with Maven
Obtaining Artifacts from Maven Central
Installing Artifacts Locally
Deploying Artifacts to Remote Repositories
Using Solace JMS in JEE Environments
Integrating JMS Without the Resource Adapter
Solace JCA Resource Adapter for Jakarta Messaging
Code and Compile Guidelines
Secure Connections and Authentication
Logging
Supported JMSX Properties
Building JMS Samples
Establishing Connections
Working with JMS-Administered Objects
Working with JNDI
Programmatically Creating JMS-Administered Objects
Connection Factories
Property Prioritizing and Inheritance
Important Connection Properties
Defining Client Authentication Information
Basic Authentication
Client Certificate Authentication
Kerberos Authentication
OAuth 2.0
Authorizing Clients
Obtaining Connection Factories
Programmatically Creating Connection Factories
Looking Up Connection Factories from Solace JNDI Stores
Looking Up Connection Factories from External JNDI Stores
Creating JMS Connections
Starting JMS Connections
Stopping or Closing JMS Connections
Using Proxy Connections in the JMS API
Managing Sessions
Creating Sessions
Acknowledgment Modes
Configuring Connection Time-Outs and Retries
Connect Retries
Connect Time-Out
Reconnect Retries
Reconnect Retry Wait
Connection Retries Per Host
Handling JMS Connection Events
Closing Sessions
Publishing Messages
Supported Message Types
Setting Message Properties
Time-to-Live
Dead Message Queue Eligibility
Eliding Eligibility
Partition Key
End-to-End Payload Compression
Creating Message Producers
Working with Destinations
Performing Destination JNDI Lookups
Creating Temporary Destinations
Creating Topics
Creating Queues
Sending Messages
Delivering Messages to Single Consumers
Using Topic Requestors
Using Queue Requestors
Receiving Messages
Creating Message Consumers
Message Consumer Durability
Selectively Receiving Messages
Receiving Active/Inactive Indications for Exclusive Queue Consumers
Receiving Messages Synchronously or Asynchronously
Synchronous
Asynchronous
Creating Durable Topic Subscribers
Selectors
Performance Considerations When Using Selectors
Selector Identifier Mapping between JMS and Solace Messaging APIs
Setting Selectors for Consumers
Message Discard Notification
Browsing Messages
Displaying Messages
Using Transacted Sessions
Threading Considerations
Creating Transacted Sessions
Publishing Messages in Transactions
How Endpoint Message Discard Behavior Affects Transactions
Consuming Messages in Transactions
Completing or Canceling Transactions
Committing Transactions
Rolling Back Transactions
Closing Transacted Sessions
Using XA Transactions
Threading Considerations
Steps for Performing XA Transactions
Creating XA Connections
Creating XA Sessions
Starting XA Transactions
Publishing Messages in XA Transactions
How Endpoint Message Discards Affect XA Transactions
Consuming Messages in XA Transactions
Performing XA Transaction Operations
Xids
Transaction States
Obtaining XA Resources
Starting Transactions
Ending Transactions
Preparing Transactions
Completing or Canceling Transactions
Committing Transactions
Rolling Back Transactions
Deleting Heuristically-Completed Transaction Branches
Recovering Prepared Transactions
Closing XA Sessions
Threading
Threading When Receiving Messages
Receiving Message Asynchronously
Receiving Messages Synchronously
Context Propagation for Distributed Tracing
Instrumenting JMS and Jakarta for Distributed Tracing
JMS Properties Reference
JMS Property Sources
Initial Context Property
JNDI Connection Properties
Authentication Scheme
Allow Duplicate Client ID Enabled
Client Description
Client ID
Compression Level
Connect Retries
Connection Retries Per Host
Connect Timeout
Interceptors
JAAS Login Context
JAAS Configuration File Reload Enabled
JMSX User ID Enabled
Kerberos Mutual Authentication
Kerberos Service Name
Local Host
Password
Read Timeout
Reconnect Retries
Reconnect Retry Wait
SSL Certificate Validation
SSL Certificate Date Validation
SSL Certificate Host Validation
SSL Cipher Suite
SSL Connection Downgrade To
SSL Excluded Protocols
SSL Internal Normalized Key Store Format
SSL Key Store
SSL Key Store Format
SSL Key Store Password
SSL Private Key Alias
SSL Private Key Password
SSL Protocol
SSL Trust Store
SSL Trust Store Format
SSL Trust Store Password
SSL Trusted Common Name List
URL
Username
VPN
Data Connection Properties
Authentication Scheme
Browser Timeout
Client Description
Client ID
Compression Level
Connect Retries
Connect Retries Per Host
Connect Timeout
Generate Sender ID
Guaranteed Delivery Reconnect Fail Action
Host
JAAS Login Context
JAAS Configuration File Reload Enabled
JMSMessage ID Mode
Keep-Alive
Keep-Alive Interval
Keep-Alive Limit
Kerberos Mutual Authentication
Kerberos Service Name
Local Host
Password
Port
Read Timeout
Receive Buffer
Reconnect Retries
Reconnect Retry Wait
TCP No Delay
URL
Username
VPN
XA
OAuth2 Access Token
OAuth Issuer Identifier
OIDC ID Token
Data Connection Properties - SSL Related
SSL Certificate Validation
SSL Certificate Date Validation
SSL Certificate Host Validation
SSL Cipher Suite
SSL Connection Downgrade To
SSL Excluded Protocols
SSL Internal Normalized Key Store Format
SSL Key Store
SSL Key Store Format
SSL Key Store Password
SSL Private Key Alias
SSL Private Key Password
SSL Protocol
SSL Trust Store
SSL Trust Store Format
SSL Trust Store Password
SSL Trusted Common Name List
Message Delivery Properties
Direct Transport
Direct Transport Optimization
Guaranteed Message Acknowledgment Threshold
Guaranteed Message Acknowledgment Timer
Guaranteed Message Window Size
Guaranteed Message Send Acknowledgment Time
Guaranteed Message Maximum Retransmits
Guaranteed Message Send Window Size
Guaranteed Message Reconnect Retry Count
Guaranteed Message Reconnect Retry Interval
Deliver-To-One Override
Deliver-To-One Subscriber Local Priority
Deliver-To-One Subscriber Network Priority
Message Properties
Dead Message Queue Eligible
Delivery Count
Delivery Mode
Discard Indication
Eliding Eligible
HTTP Content Encoding
HTTP Content Type
Reply Message
Topic Sequence Number
XML Payload
End-to-End Payload Compression
Deliver-To-One
API Properties
Direct Transport Behavior
Publishing Direct Messages
Consuming Direct Messages
Feature Interactions when Using Direct Transport
Creating JMS‑Compatible Messages With Other APIs
BytesMessage
MapMessage
StreamMessage
TextMessage
ObjectMessage
Non-Standard Messages
JMSToolBox
Node.js API
Python API
Solace Python API Developer Guide
Builder Pattern Usage in the Solace Python API
Supported Environments for the Solace Python API
Semantic Versioning
Messaging Service
Creating a Property Dictionary
End-to-End Payload Compression
Establishing a Connection to an Event Broker
Using Transport Layer Security
Authentication
Publishing Messages
Publishing Direct Messages Using the Solace Python API
Creating a DirectMessagePublisher
Configuring and Creating Outbound Messages
Handling Back Pressure When Publishing Direct Messages
Publishing a Direct Message
Handling Errors
Publishing Persistent Messages Using the Solace Python API
Creating a PersistentMessagePublisher
Configuring and Creating Outbound Messages
Handling Back Pressure When Publishing Persistent Messages
Publishing a Persistent Message
Acknowledging Messages and Handling Errors
Receiving Messages
Consuming Direct Messages Using the Solace Python API
Creating a DirectMessageReceiver
Handling Back Pressure When Subscribing to Direct Messages
Receiving a Direct Message Synchronously
Receiving a Direct Message Asynchronously
Extracting Properties from an Inbound Message
Using Solace Cache With the Solace Python API
Consuming Persistent Messages Using the Solace Python API
Creating a PersistentMessageReceiver
Consuming a Persistent Message Synchronously
Consuming a Persistent Message Asynchronously
Extracting Properties from an Inbound Message
Message Acknowledgments
Negative Acknowledgments for Specific Messages
Creating Queues with the Solace Python API
Browsing Queues with the Solace Python API
Using Local Transactions in the Solace Python API
Context Propagation for Distributed Tracing in the Solace Python API
Request-Reply Messaging in the Solace Python API
iOS API
IPC Guide
Client Application Sessions
Session-Based Communications Without IPC
IPC Session-Based Communications
Non-Multi-Point Sessions
Connection Model
IPC Routing Behavior
Limitations
Context Threading Models
Threading Model for TCP Transport
Threading Model for Shared Memory Transport
Spinning and Blocking Shared Memory Threads
Mixing Transport Modes
Configuring Inter-Process Communications
Context Properties that Affect IPC
Session Properties that Affect IPC
Configuring the Transport Channel Type
Configuring Connections to Peer Applications
Session Events with IPC
SolGateway
SolGateway Operation
SolGateway Command Line Options
SolGateway Limitations
Using IPC with SDKPerf
IPC Between Two SDKPerf Instances
IPC Between Three SDKPerf Instances
Using SDKPerf
Command Line Options for SDKPerf
Example Commands for SDKPerf
Open APIs and Protocols
AMQP
Get Started with AMQP
Leveraging AMQP Messaging with Solace Schema Registry: Serializing and Deserializing Messages in Java
Leveraging AMQP Messaging with Solace Schema Registry: Serializing and Deserializing Messages in .NET
Using AMQP 1.0
Why Solace Support for AMQP 1.0?
Reference Information for Developers
AMQP Concepts
Mapping AMQP Terminology to Solace Terminology
Mapping AMQP Messages to SMF Messages
Topic Syntax
Mapping AMQP Addressing to Solace Queues & Topics
Distributed Tracing Context Propagation
Delayed Message Consumption
API Recommendations for AMQP
Client Support
Addressing Support for AMQP Non-JMS APIs
Message Publication
Using # to Specify Temporary Queues & Topics
Specifying Durable Queue Destinations
Specifying Topic Destinations
Publishing Messages to Destinations
Rules for Destination Specification
In the Attach Frame
In A Message
Specifying the Message Quality of Service
Publishing Persistent Messages
Publishing Non-Persistent Messages
Publishing Direct Messages
Message Consumption
Specifying Consumption from Durable Queues
Specifying Consumption from Non-Durable Queues
Specifying Consumption from Durable Topic Endpoints
Specifying Consumption from Non-Durable Topics
Client Deletion of Durable Topic Endpoints
Specifying Sources for Message Consumption
Rules for Source Specification
AMQP 1.0 Protocol Conformance
Section 2.1.2: Communication Endpoints
Section 2.2: Version Negotiation
Section 2.4.1: Opening A Connection
Section 2.4.3: Closing a Connection
Section 2.4.5: Idle Timeout Of A Connection
Section 2.5.1: Establishing A Session
Section 2.6: Links
Section 2.6.3: Establishing Or Resuming A Link
Section 2.6.7: Flow Control
Section 2.6.12: Transferring A Message
Section 2.6.13: Resuming Deliveries
Section 2.6.14: Transferring Large Messages
Section 2.7.1: Open
Section 2.7.2: Begin
Section 2.7.3: Attach
Section 2.7.4: Flow
Section 2.7.5: Transfer
Section 2.8.14: Error
Section 3.2: Message Format
Section 3.2.1: Header
Section 3.2.2: Delivery Annotations
Section 3.2.3: Message Annotations
Section 3.2.5: Application Properties
Section 3.2.7: AMQP Sequence
Section 3.2.8: AMQP Value
Section 3.2.8: AMQP Value
Section 3.2.15: Address String
Section 3.4: Delivery State
Section 3.5.3: Source
Section 3.5.4: Target
Section 4.1: Transactional Messaging
Section 5.2: TLS
Section 5.2.1: Alternative Establishment
Section 5.3.3.1: SASL Mechanisms
MQTT
Get Started with MQTT Messaging Tutorials
Using MQTT
MQTT Sessions
Quality of Service Levels
Payload Handling When Message Types Change
Will Messages
Retained Messages
Shared Subscriptions
API Recommendations for MQTT
MQTT Topic Structure and Syntax
Special Characters in MQTT Topic Names and Filters
Special Solace MQTT Topics
Solace MQTT Version 3.1.1 Protocol Conformance Specification
1 Introduction
2 MQTT Control Packet format
3 MQTT Control Packets
4 Operational behavior
5 Security
6 Using WebSocket as a network transport
7 Conformance
Appendix A. Acknowledgements (non normative)
Appendix B. Mandatory normative statements (non normative)
Appendix C. Revision history (non normative)
Solace MQTT Version 5.0 Protocol Conformance Specification
1 Introduction
2 MQTT Control Packet format
3 MQTT Control Packets
4 Operational behavior
5 Security (non-normative)
6 Using WebSocket as a network transport
7 Conformance
Appendix A. Acknowledgments
Appendix B. Mandatory normative statement (non-normative)
Appendix C. Summary of new features in MQTT v5.0 (non-normative)
REST
When to Use REST Messaging Versus a Microgateway
Get Started with REST Messaging Tutorials
Using REST Messaging
REST Concepts
REST Producers and Consumers
REST Producers
REST Consumers
REST Message Structure
REST Message Structure Examples
Message Exchange Patterns
REST Producer One-Way POST to an Event Broker
Event Broker One-Way POST to REST Consumer
REST Producer Request/Reply to an Event Broker
Event Broker Request/Reply to REST Consumer
REST Producer Request with Asynchronous Reply-to Destination
REST Messaging Concepts
REST Producers
One-way POST to an Event Broker
Request / Reply an Event Broker
Synchronous Request / Reply
Asynchronous Request / Reply
REST Consumers
Solace Event Broker Configuration Objects
REST Delivery Point
Queue Binding
REST Consumer
Message Delivery Walk Through
Request / Reply
REST Consumer Connection Selection
Message Sequencing and Redelivery
Message Sequencing
Connection Handling on Errors
Performance Considerations
Scaling Connections per REST Consumer
Scaling REST Consumers
Dynamic Routing of Message Content by REST Consumers
Multi-Protocol Integration
REST Messaging Protocol
Solace REST HTTP Message Encoding
HTTP Request-Target
Messaging Mode
Microgateway Mode
Solace REST Usage of HTTP Headers
Standard HTTP Headers on HTTP Requests to an Event Broker
Standard HTTP Headers on HTTP Responses from Solace
Standard HTTP Headers on HTTP Requests from Solace
Standard HTTP Headers on HTTP Responses from RDP Consumer HTTP Servers to Solace
Solace-Specific HTTP Headers
HTTP Header Value Encoding
Solace Event Broker Message Field Defaults for REST Messages
Message Encoding Considerations
HTTP Content Entity Headers and Message Payload Types
Solace Message Custom Properties
Other HTTP Header Fields
Solace Messaging User Property Metadata
Solace Event Broker Interactions
Solace Event Broker Message VPN Selection
Client Authentication
Basic Client Authentication
SSL – Client Certificate
Interactions with Solace Messaging APIs
Solace Messaging API – Accessing HTTP Content Type and Content Encoding
JMS Interactions – Text Messages
Solace REST Status Codes
Solace HTTP Status Codes Overview
HTTP Responses from an Event Broker to REST HTTP Clients
HTTP Responses from REST Consumers to an Event Broker
REST HTTP Client Requests to a Solace Event Broker
Success
Failures
HTTP Connection Termination by an Event Broker
Event Broker HTTP Requests to REST Consumers
Indicating Success to an Event Broker
Indicating Failures to an Event Broker
Leveraging REST Messaging with Solace Schema Registry: Serializing and Deserializing Messages in Java
Leveraging REST Messaging with Solace Schema Registry: Serializing and Deserializing Messages in .NET
Message Exchange Patterns
REST Producer One-Way POST to Event Brokers
HTTP Header Example
Success Case Message Exchange
Event Broker One-Way POST to REST Consumer
HTTP Header Example
Success Case Message Exchange
Failure Scenario Message Exchange
REST Producer Request/Reply
HTTP Header Example
Success Case Message Exchange
Failure Scenario Message Exchange
REST Producer Request with Async Reply to Destination
HTTP Header Example
Success Case Message Exchange
Failure Scenario Message Exchange
Solace Event Broker Request/Reply to REST Consumer
HTTP Header Example
Solace REST Example Code
Sending Messages to Event Brokers Using CURL
Sending Messages to Event Brokers Using JavaScript
Receiving Messages from Event Brokers Using JavaScript
Solace Schema Registry
Deploying and Configuring Solace Schema Registry
Deploying and Configuring Solace Schema Registry with Docker or Podman
Prerequisites
Localhost Deployment
Custom Hostname Deployment
Authentication
Monitoring and Metrics
Troubleshooting
Deploying Solace Schema Registry with Kubernetes
Installing Solace Schema Registry with Helm
Prerequisites
Deployment Architecture
Installation Steps
Troubleshooting Installation Issues
Configuring the Helm Chart
Helm Chart Structure
General Configuration
Image Configuration
Database Configuration
Ingress and TLS Configuration
Authentication Configuration
Monitoring and Metrics
Troubleshooting Configuration Issues
Authentication and Security
Internal Identity Provider Configuration
External Identity Provider Configuration
Role-Based Access Control
Troubleshooting Authentication Issues
Cloud Deployment Examples
Example: Cloud Deployment with GKE Autopilot
Adapting to Other Cloud Providers
Troubleshooting Cloud Deployments
Cloud Deployment Best Practices
Solace Schema Registry Configuration Reference
Monitoring Solace Schema Registry
Using Solace Schema Registry Web Console
Schema Registry Artifacts
Managing Schema References in Solace Schema Registry
Solace Schema Registry Artifact Reference
Solace Schema Registry Content Rule Reference
Serialization and Deserialization with Solace Schema Registry
Advanced SERDES Configuration and Cross-Protocol Messaging
SERDES Property Language Support Reference
Best Practices for Evolving Schemas in Schema Registry
Codelabs and Developer Portal
Additional Products
Solace Cache
Solace Cache Components
Installing and Uninstalling Solace Cache
Configuring Solace Cache on the Designated Router
Operating Limits
High-Level Steps for Configuring Solace Cache
Configuring Message VPNs for Caching
Configuring Distributed Caches
Configuring Cache Clusters
Configuring Solace Cache Instances
Customizing Solace Cache Configuration Files
Performing Solace Cache Administrative Tasks
Clearing Solace Cache Events
Deleting Cached Messages
Starting Solace Cache Instances
Backing Up and Restoring Solace Cache Messages
Monitoring Solace Cache
Solace Cache Events
Using CLI Show Commands to Monitor Solace Cache
Writing Solace Cache Debug Information to a File
Using SEMP to Monitor Solace Cache
Ingress Message Plug-Ins
Building a Custom Plug-In Shared Library
Global Caching
How Global Caching Works
Considerations for Implementing Global Caching
Configuring Global Caching for a Cache Cluster
Global Caching Notifications
Solace Cache Redundancy and Network Deployments
General Considerations
Solace Cache Redundancy on a Single Event Broker
Solace Cache and Event Broker Redundancy
Solace Cache and Datacenter Redundancy
Global Caching with Multi-Region Deployments
Upgrading Solace Cache
SolAdmin
Solace PubSub+ Monitor
Solace Geneos Agent
Prerequisites
Solace Geneos Agent Components and Operation
Solace Geneos Agent Operation
Solace Geneos Agent Directories
Netprobe Directories
Configuration Properties
Global Properties
Monitor Properties
Configuring the Geneos Gateway for Event Brokers
Step 1: Install Include Files
Step 2: Copy Event Log Samplers and Rules to Main Setup File
Step 3: Copy FKM Tables to Main Setup File
Step 4: Create Solace Sampler
Step 5: Create a NetProbe
Step 6: Create the Managed Entity
Configuring Solace Geneos Agent Service
Installing & Upgrading Solace Geneos Agent
Prerequisites
Updating a Java Runtime Environment
Installing a Java Runtime Environment
Preparing Software Event Broker for Solace Geneos Agent Installation
Procedure
Installing, Upgrading & Running Netprobes
Prerequisites
Installation & Upgrade
Configuration
Uninstall
Configuring and Running Solace Geneos Agent Service
Setting the JAVA_HOME Environment Variable
Updating Solace Geneos Agent Configuration Properties
Configuring NetProbe Properties
Configuring Samplers, Group Headers, Managed Entities
Configuring Event Broker Management Properties
Configuring Encrypted Management Password Property
Configuring User Monitor Library Path
Starting Solace Geneos Agent Service
Developing and Deploying Monitors
Monitor APIs
Monitor Life Cycles
Default Solace Geneos Agent Data Views
Monitor Development and Deployment
Creating UsersMonitor
Adding New Monitors
Solace Geneos Agent SEMP Service Down Alert
Modifying Custom Monitors Created Before Version 6.1
Steps to Modify Custom Monitors
Sections and Methods Requiring Modification
Import section
Private variable section
onPostInitialize() method
onCollect() method
Modifying Custom Monitors Created Before Version 7.2
Debugging and Troubleshooting
Monitoring Solace Geneos Agent Health
MonitorStatus
ServiceStatus
Enabling Data Views
JMX Support
Logging
Best Practices
Monitor Jar File and Package Names
Default Data View Names
Multiple Data Views in One Monitor
Introducing User-Defined Properties
Different View Content for Different Netprobes in a Monitor
Monitor Threading Model
Share Objects Among Monitors
Frequently Asked Questions
Versions, Release Notes, and Support
Name Changes for Solace Products
Release Version Management and Best Practices
Solace Cloud Releases
Earlier Solace Cloud Releases
Solace Cloud Release Stages Overview
Event Broker Features and Releases
Solace Event Broker - Release Compatibility
Minimum SolOS Versions for Solace Messaging APIs
Release Compatibility for Event Broker 10.25.0 LTS and 10.25.x Rolling Releases
Release Compatibility for SolOS 10.11.1
Release Compatibility for SolOS 10.10.1
Release Compatibility for SolOS 10.9.1
Release Compatibility for SolOS 10.8.1
Release Compatibility for SolOS 10.7.1
Release Compatibility for SolOS 10.6.1
Release Compatibility for SolOS 10.5.1
Release Compatibility for SolOS 10.4.1
Documentation Conventions
Documentation Coverage
Get Support
Gathering Event Broker Diagnostics