Release Notes: Solace PubSub+ Messaging API for C, Version
Release History for Solace PubSub+ Messaging API for C, Version
March 2024

Support For Solaris/SunOS In Solace PubSub+ Messaging API For C Has Been Deprecated

This is formal notice that support for Solaris/SunOS in the Solace PubSub+ Messaging API for C is now deprecated. The final release supporting builds for Solaris/SunOS was 7.23.0.
The following build packages will no longer be distributed:
* SunOS 10 i386
* IPC for SunOS 10 i386
* SunOS 10 x86_64
* IPC for SunOS 10 x86_64
* SunOS 10 Sparc 32-bit
* IPC for SunOS 10 Sparc 32-bit
* SunOS 10 Sparc 64-bit
* IPC for SunOS 10 Sparc 64-bit
Solace will continue to support this platform with security and bug fixes for four(4) years with an End-of-Support (EOS) date of June, 2026. This was introduced in

New Features Introduced in Release and Earlier Releases

This section lists the new features introduced in the Solace PubSub+ Messaging API for C between releases and
NameDescriptionIntroduced in Version
CCSMP, JavaRTO, .Net API - Update API License Agreement
We have simplified the API license text and clarified that distributing work containing the Solace APIs is allowed.
CCSMP, JavaRTO, .Net API - Increase The Maximum Number Of SSLCerts
Applications can now load more than 64 SSL certificates using the API.
CCSMP - Allow Context Thread Affinity To Be Set To A CPU Number Greater Than 64
The Messaging API for C will now allow context thread affinity to be set higher than 64 CPUs.
C API - Distributed Tracing - Context Propagation Infrastructure
The feature adds infrastructure to the C API to enable Distributed Tracing in the .Net API.
C API - Provide Ability to NACK a Specific AD Message and Force Re-delivery
The Messaging API for C now supports message NACK.
C API - Available for ARM Linux
The C API now supports development and deployment on platforms that use ARM processors.
C API - Support for Partitioned Queues
This enhancement adds support for Partitioned Queues to the API. Partitioned Queues expand PubSub+ to provide deterministic, ordered, and non-exclusive message delivery for customers to scale the number of consumers when publishing ordered datasets. The ordered datasets are keyed to ensure all events in the dataset are sent to the same consumer without mis-ordering events.
This feature requires PubSub+ Event Broker support. Support for this feature is planned to be introduced to the Event Broker around April 30, 2023 in release 10.4.0.
C API - Available for Mac M-Series Processors
The C API now supports development and deployment on platforms that use MAC M-series processors.
C API - OpenSSL 3.X Support
The C, .Net, JavaRTO, Go, and Python APIs now support OpenSSL3.0, which is enabled within the API by default. Note: Some old ciphers and protocols are no longer supported in OpenSSL3.0.
Add Way to Update Oauth Token on Reconnection
This feature allows an application to automatically update the OAuth token without the need to create a new session the next time the API tries to reconnect.
CCSMP - Support Alpine Linux
The API now supports Alpine Linux, allowing developers to build and deploy applications using the API on this platform.
Update the Version of zlib Used by C API
The zlib library inside Solace PubSub+ Messaging API for C/JRTO/.Net API has been updated to version 1.2.11.
OAuth/OIDC Support in Messaging API for CCSMP/.NET/Java RTO
OAuth / OpenID Connect has been added as a method of authenticating and authorizing clients connecting to the PubSub+ Event Broker using the SMF protocol. Clients using Solace APIs will be able to present a token as a credential during client login. This enables clients to integrate with modern identity and access management systems.
Increase the Maximum Number of Messages in a Transaction
This feature increases the transaction scaling limits to allow up to 20,000 messages (consume plus publish) in a single transaction. The previous limit was 256 messages. To use this feature, you must upgrade your PubSub+ Event Brokers to Release 9.8.1 or later.
This feature is a Controlled Availability feature. Solace recommends that before you enable this feature on your event broker, contact Solace to review your use case. Solace will work with you to verify that the feature is suitable for production use in your environment.

Issues Resolved in Release and Earlier Releases

This section lists the history of resolved issues in the Solace PubSub+ Messaging API for C between releases and
Reference NumberDescriptionResolved in Version
solClient_msg_dump() and DEBUG level logs displayed random characters appended to the Distributed Tracing TraceState field, with the rare possibility of a segmentation fault. Impact is limited to the usage of the Distributed Tracing feature.
solClient_transactedSession_createFlow() may fail with a "Bad Event 'SessionUp'/2 for state 'FlowBindSent'" error log entry when it is created immediately after the session is up.
When using multiple IPC clients each with their own subscriptions, one client disconnecting can cause subscriptions across all clients to be removed.
When the endpoint is configured with max-delivered-unacked-msgs-per-flow less than 255, the Messaging API performance may be degraded. This is particularly noticeable when max-delivered-unacked-msgs-per-flow is 1, as acknowledgements will only be sent once per second.
Messaging API for C: set SOLCLIENT_FLOW_PROP_MAX_UNACKED_MESSAGES equal to the value configured on the endpoint.
Messaging API for .NET: set FlowProperties.MaxUnackedMessages equal to the value configured on the endpoint.
Messaging API for Python and Go: No workaround is available.
The port number of local connection information from the INFO level SDK log is incorrect.
Convert it to host order. For example, the port number 50736 (0xc630) is shown as 12486 (0x30c6).
In very rare cases, when re-connecting to a new router, the API may fall out of sync with the broker in respect to the messages published within a local transaction. When this occurs, the API will not recover.
When a flow is created within a transacted session, it is possible for messages to be delivered to the application before the flow-create thread returns control to the application. Internally, the flow is not completely initialized, and those messages will not be included in a subsequent commit(), causing redelivery.
Note: This issue only occurs on transacted sessions, not on flows on non-transacted sessions.
Create transacted flows in 'stopped' state until this defect is fixed.
If commits for multiple transacted sessions are outstanding and one of the transactions rolls back the broker may incorrectly report that it succeeded.
Setting CONTEXT_THREAD_AFFINITY does not affect thread pinning. This issue was introduced in Messaging API for C version 7.23.0 and Messaging API for JavaRTO version 10.1.0.
In rare cases, during destruction of failed sessions, the API may unexpectedly exit.
Calling solClient_session_createFlow may time out in blocking mode when the system load is too high.
The C API has a potential memory leak when making a TLS connection. If the socket-open or socket-connect fails due to bad parameters in the HOST property, then a TLS-allocated memory block is not released.
The API can occasionally throw a segmentation fault when running on iOS and with SSL enabled. This is due to a race condition between the Solace context thread performing operations and OpenSSL freeing its global static pointers in its "atexit" handler.

Changed Functionality in Release and Earlier Releases

This section lists the history of changed functionality in the Solace PubSub+ Messaging API for C between releases and
Reference NumberDescriptionIntroduced in Version
The API has been updated to decode "400 Invalid Queue or Topic Endpoint Durability" broker response.
For more information, see:
Solace Cut-Through Persistence (CTP), also known as Cut-Through Messaging, has been deprecated with plans to remove this functionality from all Solace Products starting May 31, 2022.
Please verify that your organization does not use CTP by typing "show message-spools stats" in the command line interface of your PubSub+ event broker and check that "messages delivered cut-through = 0". If your organization is using CTP, please contact Solace at
The format of reply-to topics has changed. The reply-to topic used by the API's request/reply helper methods used to be of the form:
The trailing # has been replaced with an underscore _ such that the topic is now of the form:
The suffix of a reply-to topic set with the setReplyToSuffix() method is also now prefixed with the underscore(_) character.

Vulnerabilities Addressed in Release and Earlier Releases

The following vulnerabilities have been resolved in the Solace PubSub+ Messaging API for C between releases and


Known Issues in Release and Earlier Releases

This section describes known issues in the Solace PubSub+ Messaging API for C between releases and

For more details, refer to the Release Notes page for the individual Solace Messaging APIs.

Supported Environments