1.4.0
As part of this release we had 7 issues closed.
Overview
This release primarily addresses issues with the database growth and management of the embedded RavenDB database.
Once deployed this release will start deleting expired documents by running period batch deletes. The default values of the settings that control the document expiration process have changed in 1.4. The batch process will (by default) trigger a batch delete every 5 minutes of 65512 of expired documents. These settings can be adjusted via configuration settings - see Customizing ServiceControl configuration on the documentation site.
Deleted documents do not automatically reduce the size of the database. A manual procedure has been developed to compact the database so disk space can be reclaimed. These instructions are available on the documentation site here
Features
#414 Support compacting the embedded RavenDB database
Since RavenDB doesn't support compacting the database while its online we need to provide a maintenance mode where users can:
- Export the database
- Delete the DB file
- Import the database
Full instructions here:
http://docs.particular.net/servicecontrol/db-compaction
Bugs
#408 Error view in SP times out
This occurs when database is under load
#407 Re-import failed messages from error.log on a fresh db
If for some reason the user has deleted the RavenDB database and starting fresh and the user attempts to move messages from error.log back into the error queue for ServiceControl to rehydrate the error messages, in this case, we won't have a corresponding saga. Therefore we are using SingleOrDefault instead of Single.
#405 When a message that is sent by a SendOnly endpoint lands in the error queue when processing, SC does not import the error message properly.
When a send-only self hosted endpoint send a message to another NSB endpoint and handling of this message by this endpoint results in an error, then ServiceControl does not import the error message properly and gets added to the FailedErrorImports collection and therefore does not raise proper notifications in ServicePulse.
#395 ServiceControl.Contracts.dll seems to be missing when doing a choco upgrade
Reported by @Bishbulb
"In my case the ServiceControl.Contracts.dll/pdb files were not present in that directory. I had to do a full uninstall/reinstall of ServiceControl in order to get things working.
I had previously upgraded from SC 1.2.0 to 1.3.0 by using Chocolatey cup ServiceControl.install which appears to have left things in a bad state. I used Chocolatey to upgrade SC to 1.3.0 on three different machines and each one had this same problem.
What ended up working for me was to uninstall SC (choco uninstall ServiceControl.install) and then reinstall (choco install ServiceControl.install)."
Full discussion: #372 (comment)
#387 Expiration fails for large ServiceControl instances
From Google Groups... (Desk Case 7173)
I created the following ServiceControl.exe.config and placed it in ServiceControl install directory:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<configuration>
<appSettings>
<add key="ServiceControl/DbPath" value="e:\Particular\ServiceControl\localhost-33333" />
<add key="ServiceControl/ExpirationProcessTimerInSeconds" value="120" />
<add key="ServiceControl/HoursToKeepMessagesBeforeExpiring" value="240" />
<add key="ServiceControl/ExposeRavenDB" value="true" />
Content trimmed. See full issue
#334 better error message for invalid transport on install
eg if someone does this
ServiceControl.exe --install -serviceName="Particular.ServiceControl" -displayName="Particular ServiceControl" -d="ServiceControl/TransportType==NServiceBus.Azure.Transports.WindowsAzureServiceBus" -d="NServiceBus/Transport=Endpoint=sb://<url>;SharedAccessKeyName=<keyname>;SharedAccessKey=<key>"
We get this
Unhandled Exception: System.ArgumentNullException: Value cannot be null.
at System.RuntimeType.MakeGenericType(Type[] instantiation)
at NServiceBus.TransportReceiverConfig.<>c__DisplayClass1.<CreateTransportConfigurer>b__0(Type t) in y:\BuildAgent\work\31f8c64a6e8a2d7c\src\NServiceBus.Core\Unicast\Transport\Config\TransportReceiverConfig.cs:line 80
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
Content trimmed. See full issue
Known Issues
#415 Need to also expire and delete saga data
#416 Sometimes the error indicator count on the dashboard in ServicePulse may be out of sync
Where to get it
You can download this release from:
- Our website
- Or chocolatey