Skip to content

1.4.0

Choose a tag to compare

@particularbot particularbot released this 15 Nov 00:57
· 6382 commits to master since this release

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:

  1. Export the database
  2. Delete the DB file
  3. 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: