Hi everyone,
We’ve just released NServiceBus.Persistence.Sql 9.0.6 and 8.3.4.
Fixed bugs
- #2121 Diagnostics incorrectly reports whether a custom schema is being used for the Oracle SqlDialect
- #2122 SettingsAttributeReader.Read fails for generic attribute
- #2123 SQL Server outbox padding does not reliably expand outbox content to more than 8000 bytes
- #2124 Subscription caching retains failed or canceled lookups until cache expiration
- #2146 StorageSession doesn’t dispose connections if they fail while opening
- #2152 Purging multiple obsolete saga correlation columns throws exception for SqlServer, MySQL and Oracle dialects
- #2153 Script writers fail when passed relative output paths and when cleaning existing relative files
- #2154 PostgreSql purge query does not filter by schema
How to know if you are affected
You are affected by #2121 if you use the Oracle SQL dialect.
You are affected by #2122 if the assembly you generate scripts for contains a generic attribute.
You are affected by #2123 if you use the SQL Server dialect with the outbox enabled.
You are affected by #2124 if you use subscription caching.
You are affected by #2146 if a database connection can fail while it is being opened, enlisted in a transaction, or used to begin a transaction.
You are affected by #2152 if you use the SQL Server, MySQL, or Oracle dialects and have changed the correlation properties of a saga in a way that leaves more than one obsolete correlation column or index to purge.
You are affected by #2153 if you use the sql-persistence command line tool and either of the following applies:
- You pass a relative
--output-dirand the assembly contains sagas - You have clean enabled and overwrite disabled
You are affected by #2154 if you use the PostgreSQL dialect and the same saga table name exists in more than one schema of the same database.
Symptoms
For #2121, the endpoint diagnostics report CustomSchema as false when a custom schema is in use with the Oracle SQL dialect, and true when it isn’t. This only affects the endpoint diagnostics file used for debugging and support. It has no effect on runtime behavior.
For #2122, script generation (the ScriptBuilder MSBuild task and the sql-persistence command line tool) fails with System.InvalidCastException : Specified cast is not valid.
For #2123, small SQL Server outbox records aren’t padded as intended, so they stay in the data page. This reduces space utilization after the outgoing messages are dispatched. No messages or data are lost.
For #2124, when a subscription lookup fails or is canceled, every later lookup for the same message type gets the same failure until the cache entry expires.
For #2146, a database connection that fails while enlisting in a transaction or beginning one is never disposed.
For #2152, running the create script fails once the correlation properties of a saga have changed. SQL Server reports error 512 (“Subquery returned more than 1 value”), MySQL reports error 1172, and Oracle reports ORA-01422. The endpoint fails to start when installers run the script.
For #2153, writing saga scripts with a relative output directory fails with a DirectoryNotFoundException. When cleaning existing script files with overwrite disabled, the second run fails with “File … already exists” because the existing script wasn’t deleted.
For #2154, running the create script after a saga’s correlation property changes fails with a “column does not exist” error. The endpoint fails to start when installers run the script.
When to upgrade
You should upgrade immediately if you are affected. Otherwise, you should upgrade during your next maintenance window.
Where to get it
You can install the new versions of NServiceBus.Persistence.Sql from NuGet.
Please read our release policy for more details.
With thanks,
The team in Particular