Skip to content

Releases: Particular/ServiceControl

1.5.2

10 Apr 06:20
Compare
Choose a tag to compare

As part of this release we had 1 issue closed.
This release addresses an error in 1.5.1 which prevented the installation of ServiceControl from succeeding when an upgrade was carried out

Bugs

#461 ServiceControl 1.5.1 Install fails on upgrade due to missing RavenDB index

Symptoms

ServiceControl 1.5.1 fails to install when upgrading from an older version. A fresh install using a blank database works correctly

A race condition in the RavenBootstrapper class is the cause of this failure.
The RavenBootStrapper creates all indexes asynchronously but then attempts to use the KnownEndpointIndex straight away. KnownEndpointIndex was introduced in 1.5.1.

Who's Affected

Anyone attempting to upgrade an existing ServiceControl to v 1.5.1 may have been affected

Content trimmed. See full issue

Where to get it

You can download this release from:

1.5.1

27 Feb 04:05
Compare
Choose a tag to compare

As part of this release we had 2 issues closed.

Fixed Bugs

#445 ServiceControl service stops after failing to import messages

ServiceControl 1.4.x through to 1.5 fails to start and the following exception is logged:

NServiceBus.Unicast.Transport.TransportReceiver Failed to process message System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. 

#448 HeartbeatStatusInitializer throws exception when ServiceControl starts

The ServiceControl logs have the following exception present:

ServiceControl.HeartbeatMonitoring.HeartbeatStatusInitializer, ServiceControl, Version=1.0.0.0,  Culture=neutral, PublicKeyToken=null could not be started.
System.InvalidOperationException: Sequence contains more than one matching element

Who's affected

This update targets bugs that are present in multiple versions of ServiceControl so it is a recommended upgrade for all previous versions,

Upgrading from ServiceControl 1.4.x or below

Version 1.5 introduced changed the default installation behavior by introducing a new mandatory command line switch for the installation when run in "silent" mode. Please review (#333) and the associated installation documentation if you are upgraded a version prior to 1.5

Where to get it

You can download this release from:

1.5.0

10 Feb 10:43
Compare
Choose a tag to compare

This release of ServiceControl changes the default installation behavior and introduces a new mandatory command line switch for the installation when run in "silent" mode, Please review the release notes for #333 and the associated installation documentation

Feature

  • Added CustomCheckSucceeded and CustomCheckFailed event publishing for external integration #444

Improvement

  • Audit message forwarding should be a mandatory choice during installation or upgrade if it isn't set in Production #333

Bugs

  • ServiceControl creates duplicate messages in the DB if the log queue is not writable #440
  • Failure in processing audit messages may result in message loss #432

Where to get it

You can download this release from:

1.4.4

20 Jan 14:40
Compare
Choose a tag to compare

As part of this release we had 2 issues closed.

This hotfix addresses bugs with ServiceControl external integration.

Fixed Bugs

Symptoms

For #438 the symptoms are:

  • ServiceControl is version 1.4 or above
  • The ServiceControl service starts and then stops within a two minutes.
  • multiple 'KeyNotFoundException' exceptions logged for ServiceControl.ExternalIntegrations.EventDispatcher

For #427 the symptions are:

  • Failed messages from non-NServiceBus endpoint usng MSMQ are visible in ServicePulse but the headers and body information are not available.

Who's affected

This hotfix is applicable to any users who are running ServiceControl 1.4 or greater or any user who is using ServiceControl to monitor a system comprising a third party integration that sends MSMQ messages to NServiceBus endpoints. For user affected by #438 this is a critical bug fix

Where to get it

You can download this release from:

1.4.3

17 Dec 00:30
Compare
Choose a tag to compare

As part of this release we had 2 issues closed.

Fixed bugs

Symptoms

ServicePulse is non-responsive after processing messages from non-NSB endpoints when failed messages are missing the TimeSent metadata entry and/or the IsSystemMessage metadata entry. This will affect the ServicePulse failed messages screen.

This results in ServiceControl throwing an exception when the GetAllErrors API is invoked.

Who's affected

  • Users of ServiceControl that consume messages from non-NServiceBus Endpoints. (third party integrations)

Where to get it

You can download this release from:

1.4.2

03 Dec 13:00
Compare
Choose a tag to compare

As part of this release we had 2 issues closed.

Fixed bugs

  • #425 Missing (expired) FailedMessage documents cause ServiceControl to crash when trying to dispatch external integration events
  • #423 External integrations fail and cause ServiceControl to crash when dispatching an event for a control message that failed processing

Symptoms

External integrations feature ceases to work after encountering either a control message that failed processing or a failed message whose data has been expired or deleted from ServiceControl database. Subsequent retries cause circuit breaker to trigger and cause ServiceControl to shutdown. The problem is persistent and restarting will not fix it.

In ServiceControl 1.3.0 the external integration feature just silently stops working without causing ServiceControl to crash.

Who's affected

  • Users of ServiceControl 1.3.0, 1.4.0 or 1.4.1

Where to get it

You can download this release from:

1.4.1

27 Nov 07:21
Compare
Choose a tag to compare

As part of this release we had 3 issues closed.

This hotfix addresses two issues within ServiceControl that impacted the data presented to ServicePulse.

Bugs

#421 ServiceControl returns old results on /eventlogs

From google groups - https://groups.google.com/forum/#!topic/particularsoftware/6SxoYrHDjMA

New events are shown on the ServiceControl dashboard until a page refresh, then items are replaced with old results.

#416 Sometimes the error indicator count on the dashboard in ServicePulse may be out of sync

At the moment, ServiceControl publishes events and ServicePulse updates the UI with the appropriate counts on the dashboard.
However, sometimes the count that is published by ServiceControl may not be correct due to stale indexes. In this case, the dashboard count may be out of sync with the actual number.

Workaround
Refresh the page in ServicePulse, as refreshing will get query Raven for the data.

Where to get it

You can download this release from:

1.4.0

15 Nov 00:57
Compare
Choose a tag to compare

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:

1.3.0

14 Oct 04:21
Compare
Choose a tag to compare

As part of this release we had 4 issues closed.

Features

#359 Expose a message failed event via the bus for external integrations

  1. Create a new event contract containing all relevant data (pretty much what you see in SI today for a given failure)
  2. Avoid using IEvent and instead have to users include the message in their conventions
  3. React to the internal MessageFailed event and queue up a event dispatch message
  4. Create a satellite to process the message
  5. Create an index in raven that matched 1-1 to the external event
  6. As dispatch request comes in query raven for data. Throw to retry if data is missing (index stale)
  7. Publish new event when data is available

Notes:
Content trimmed. See full issue

Bugs

#391 Service Pulse shows endpoint error indicators in dashboard for unselected endpoints

Moved from ServicePulse issue (Particular/ServicePulse#155)

This is from a support case: https://nservicebus.desk.com/agent/case/6257

In spite of the fact only one endpoint is selected in the endpoint configuration, you continue observing 2 error indicators for endpoints in the dashboard. (the one active, selected endpoint is working
correctly and actively sending heartbeats.)

dashboard
endpoints config
endpoints overview

Content trimmed. See full issue

#344 Audit URL incorrect

When accessing /api this is shown:

audit_url: "http://host:33333/api/audit/{?page,per_page,direction,sort}",

However, there's no handler for /api/audit endpoint.

#336 Latest Events message does not specify retried message type

Logged by @dannycohen - Moved from Particular/ServicePulse#131

Repro
  1. When you retry a message in SI / SP, the Latest event message does not include an indication of the message type (see image below)
  2. We should include the message type in the latest event message (same as other related events)

image

Content trimmed. See full issue

Where to get it

You can download this release from:

1.2.3

22 Sep 12:58
Compare
Choose a tag to compare

As part of this release we had 1 issue closed.

This patch addresses a bug with queue creation when installing multiple instances of ServiceControl on the same machine.

To fix this bug we have made some changes to the way the service is registered
Please refer to the following document on our documentation site if you are installing or upgrading a host with multiple instances of ServiceControl

Bugs

#375 Queue name is NOT the same as the endpoint on installation

Where to get it

You can download this release from: