Summary
This guidance explains how to allow processing of subscription messages sent by endpoints using NServiceBus 5 and lower, as described in the issue Subscription store does not accept subscribe requests issued from NServiceBus 5 and below.
This issue makes it impossible for subscriber endpoints using NServiceBus versions 5 and lower to subscribe to events published by endpoints using NServiceBus versions 6 in combination with SQL Persistence. The subscription messages are eventually moved to the error queue. This causes message loss as the subscriber never receives events it subscribed to.
Compatibility
This issue has been resolved in the following patch versions of SQL Persistence as defined in the NServiceBus support policy:
If any of the supported affected minor versions (2.1.x, 2.0.x, or 1.0.x) are used, these should be updated to the latest patch release.
Upgrade steps
Steps:
- Update to latest patch release
- Deploy the new version
Updating database schema on Oracle Database
If using Oracle Database, update the database schema prior to running the above "Upgrade steps".
The schema created on Oracle Database does not allow NULL
in the ENDPOINT
column, and this patch requires that it does. The following script illustrates an example DDL statement for an endpoint named Publisher
.
This procedure does not require any downtime. It is advisable to execute it when affected endpoint instances are not under heavy load.
Run this script on a testing or staging environment first to verify that it works as expected.
alter table PUBLISHER_SS modify ENDPOINT varchar2(200) null;