Release Notes for Solace PubSub+ Messaging API for Python, Version 1.1.0
May 2021

New Features in this Release

This section lists the new features in the Solace PubSub+ Messaging API for Python, Version 1.1.0.
NameDescriptionVersion
Direct Messaging Request/Reply
The API now supports synchronous request/reply with helper classes to await response from a replier.
1.1.0
Structured Data Type Support for Publish and Consume
API can now consume messages published with SDTMap and SDTStream and publish messages setting SDTMap and SDTStream.
1.1.0
Message Replay Support
The replay of messages from the replay log is now possible via the API. This is for temporal replay only. Replay from replication group ID will be included in a future release.
1.1.0
Message Interoperability with other Solace Message Format (SMF) APIs Containing XMLContent
Messages published with other Solace APIs populating XMLContent are now consumable by this API.
1.1.0

Issues Resolved in this Release

None

Changed Functionality

None

Known Issues

This section describes known Solace PubSub+ Messaging API for Python issues for the current version, and provides workarounds where applicable.
Reference NumberDescription
SOL-45233
A large number of overlapping subscriptions in a single messaging service with a high rate of incoming matching messages from the broker may result in degraded performance.
SOL-43623
Attempting to canonicalize very large messages on non-linux platforms (1MB+) via print or other means that invoke __str__() may not complete. When this occurs, the MessagingService will become unresponsive.
SOL-43633
Messaging metrics within the Python API may be slightly out of sync (delayed) compared to the actual number of messages sent and received.
SOL-46210
Attempting to disconnect the messaging service while it is in connecting state will cause the Python API to ungracefully shutdown.
SOL-47413
RequestReplyMessagePublisher.terminate() waits until all Future created by RequestReplyMessagePublisher.publish() are complete. All Future created and returned by RequestReplyMessagePublisher.publish() must be completed before terminate() can finish. Even if terminate has a shorter or zero time, it will block until the outstanding futures are complete after the time has elapsed.
Workaround:
Application may choose to implement their own executor to call publish_await_response() for asynchronous publish. This will return a failure as expected on terminate.
For more details refer to the Release Notes page for the individual Solace Messaging APIs.

Supported Environments