|Name||Description||Introduced in Version|
|Add JavaRTO to Maven|
The JavaRTO API is now available for download via Maven to make importing and usage of the API in client applications easier.
|Feature Disabled: Cut-Through Persistence (CTP) in JavaRTO|
The ability to configure Cut-Through Persistence has been removed.
|Update the Version of zlib Used by CCSMP|
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.
|Mutable Topics To Allow Re-Use Of Topics For Less Garbage Collection|
Introduced Mutable Topics which allows Topics to be reusable. A Topic can be created using a byteBuffer as opposed to a String which is immutable and therefore GC eligible.
|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.
|Add an alternative to String Objects for Subscription names to avoid garbage collection|
Added the ability to pass a java.nio.ByteBuffer to SessionHandle interfaces that manage subscriptions (like subscribe() and unsubscribe()). Also, added new interfaces to manage On Behalf Of (OBO) subscriptions that accept a java.nio.ByteBuffer. These changes were made to avoid creating Strings which are immutable and subject to Garbage Collection (GC).
|Reference Number||Description||Resolved in Version|
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 an 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.
|Reference Number||Description||Introduced in Version|
JavaRTO unzips the CCSMP binary into the JDK temp folder at runtime. To change the default temp directory, "java.io.tmpdir" can be used. READ/WRITE access to this directory is required.
The API will no longer perform Topic validation and will instead rely on the Broker to reject invalid topics. This change prevents memory allocation and garbage collection in some success paths by avoiding calls to .trim().
Solace Cut-Through Persistence (CTP), also known as Cut-Through Messaging, is being 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 email@example.com.
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.
Method ClientName.getByteBufferRep(ByteBuffer) has been renamed to ClientName.getAsBytes(ByteBuffer)