Skip to content

Commit bdf6362

Browse files
Non-critical support review (#6915)
1 parent b8eb64f commit bdf6362

File tree

4 files changed

+21
-34
lines changed

4 files changed

+21
-34
lines changed

monitoring/metrics/in-servicepulse.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Performance Metrics in ServicePulse
33
summary: Describes how to use ServicePulse to review endpoint performance metrics
4-
reviewed: 2022-03-28
4+
reviewed: 2024-11-27
55
---
66

77
ServicePulse collects and displays performance monitoring data about running endpoints on the Monitoring tab.

samples/nhibernate/custom-mappings/sample.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ Saga data classes can be decorated with [NHibernate.Mapping.Attributes](https://
7070

7171
NHibernate.Mapping.Attributes needs to know what types to scan to generate an NHibernate mapping configuration that can be passed to the NServiceBus NHibernate configuration.
7272

73-
1. Add the NuGet package `NHibernate.Mapping.Attributes`
74-
1. Create a custom NHibernate configuration object.
75-
1. Initialize the attribute mapping (see sample below).
76-
1. Pass it to the NServiceBus NHibernate configuration.
73+
1. Add the NuGet package `NHibernate.Mapping.Attributes`
74+
1. Create a custom NHibernate configuration object.
75+
1. Initialize the attribute mapping (see sample below).
76+
1. Pass it to the NServiceBus NHibernate configuration.
7777

7878
Initialize the NHibernate attribute based mappings:
7979

servicepulse/troubleshooting.md

+12-15
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
---
22
title: ServicePulse Troubleshooting
33
summary: ServicePulse installation and common issues troubleshooting
4-
reviewed: 2022-04-21
4+
reviewed: 2024-11-27
55
component: ServicePulse
66
---
77

8-
98
### ServicePulse is unable to connect to ServiceControl
109

11-
* See the [ServiceControl release notes](https://github.com/Particular/ServiceControl/releases/) troubleshooting section for guidance on detecting ServiceControl HTTP API accessibility.
12-
* Verify that ServicePulse is trying to access the correct ServiceControl URI (based on ServiceControl instance URI defined in ServicePulse installation settings).
13-
* Check that ServicePulse is not blocked from accessing the ServiceControl URI by firewall settings.
10+
* See the [ServiceControl release notes](https://github.com/Particular/ServiceControl/releases/) troubleshooting section for guidance on detecting ServiceControl HTTP API accessibility.
11+
* Verify that ServicePulse is trying to access the correct ServiceControl URI (based on ServiceControl instance URI defined in ServicePulse installation settings).
12+
* Check that ServicePulse is not blocked from accessing the ServiceControl URI by firewall settings.
1413

1514
### ServicePulse reports empty failed message groups
1615

@@ -33,13 +32,12 @@ There may be previous versions of assets cached by the browser after updating Se
3332

3433
After a period of inactivity, a web application endpoint is failing with the message:
3534

36-
```
35+
```text
3736
Endpoint has failed to send expected heartbeat to ServiceControl. It is possible that the endpoint could be down or is unresponsive. If this condition persists restart the endpoint.
3837
```
3938

4039
When accessed, the web application is operating as expected. However shortly after accessing the web application, the heartbeat message is restored and indicates the endpoint status as active.
4140

42-
4341
#### Causes and solutions
4442

4543
The issue is due to the way IIS handles application pools. By default after a certain period of inactivity, the application pool is stopped or, under certain configurable conditions, the application pool is recycled. In both cases the ServicePulse heartbeat is not sent anymore until a new web request comes in waking up the web application.
@@ -64,7 +62,6 @@ Starting from IIS 7.5, the above steps can be combined into one by following the
6462

6563
In some cases, configuring IIS to avoid recycling is not possible. Here, the recommended approach is the second one. It also has the benefit of avoiding the "first user after idle time" wake-up response-time hit.
6664

67-
6865
### Duplicate endpoints appear in ServicePulse after re-deployment
6966

7067
This may occur when an endpoint is re-deployed or updated to a different installation path (a common procedure by deployment managers like Octopus).
@@ -75,17 +72,17 @@ To address this issue, see [Override host identifier](/nservicebus/hosting/overr
7572

7673
### ServicePulse reports that 0 endpoints are active, although endpoint plugins were deployed
7774

78-
* Follow the guidance in [How to configure endpoints for monitoring by ServicePulse](how-to-configure-endpoints-for-monitoring.md).
79-
* Restart the endpoint after copying the endpoint plugin files into the endpoint's `bin` directory.
80-
* Ensure [auditing](/nservicebus/operations/auditing.md) is enabled for the endpoint, and the audited messages are forwarded to the correct audit and error queues monitored by ServiceControl.
81-
* Ensure relevant ServiceControl assemblies are not in the list of assemblies to exclude from scanning. For more details refer to [Assembly scanning](/nservicebus/hosting/assembly-scanning.md).
82-
* Ensure the endpoint references NServiceBus version 4.0.0 or later.
75+
* Follow the guidance in [How to configure endpoints for monitoring by ServicePulse](how-to-configure-endpoints-for-monitoring.md).
76+
* Restart the endpoint after copying the endpoint plugin files into the endpoint's `bin` directory.
77+
* Ensure [auditing](/nservicebus/operations/auditing.md) is enabled for the endpoint, and the audited messages are forwarded to the correct audit and error queues monitored by ServiceControl.
78+
* Ensure relevant ServiceControl assemblies are not in the list of assemblies to exclude from scanning. For more details refer to [Assembly scanning](/nservicebus/hosting/assembly-scanning.md).
79+
* Ensure the endpoint references NServiceBus version 4.0.0 or later.
8380

8481
### After enabling heartbeat plugins for NServiceBus version 3 endpoints, ServicePulse reports that endpoints are inactive
8582

8683
Messages that were forwarded to the audit queue by NServiceBus version 3.x endpoints did not have the `HostId` header available which uniquely identifies the endpoint. Adding the heartbeat plugin for these endpoints automatically enriches the headers with this `HostId` information using a [message mutator](/nservicebus/pipeline/message-mutators.md). Since the original message that was processed from the audit/error queue did not have this identifier, it is hard to correlate the messages received via the heartbeat that these belong to the same endpoint. Therefore there appears to be a discrepancy in the endpoints indicator.
8784

8885
To address this issue:
8986

90-
* Add the heartbeat plugin to all NServiceBus version 3 endpoints, which will add the required header with the host information.
91-
* Restart ServiceControl to clear the endpoint counter.
87+
* Add the heartbeat plugin to all NServiceBus version 3 endpoints, which will add the required header with the host information.
88+
* Restart ServiceControl to clear the endpoint counter.
+4-14
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
---
22
title: SQL Server Native Publish Subscribe
33
summary: Describes the native publish subscribe implementation in the SQL Server transport
4-
reviewed: 2022-03-18
4+
reviewed: 2024-11-27
55
component: SqlTransport
6-
versions: '[5,)'
6+
versions: '[7,)'
77
---
88

9-
The SQL Server transport implements the publish-subscribe pattern. In version 4 and below, this feature relies on message-driven pub-sub which requires a separate persistence for storage of subscription information. In version 5 and above, the transport handles subscription information natively and a separate persistence is not required.
10-
11-
The transport creates a dedicated subscription routing table, shared by all endpoints, which holds subscription information for each event type. When an endpoint subscribes to an event, an entry is created in the subscription routing table. When an endpoint publishes an event, the subscription routing table is queried to find all of the subscribing endpoints.
12-
9+
The SQL Server transport implements the publish-subscribe pattern and handles subscription information natively, so a separate persistence is not required. The transport creates a dedicated subscription routing table, shared by all endpoints, which holds subscription information for each event type. When an endpoint subscribes to an event, an entry is created in the subscription routing table. When an endpoint publishes an event, the subscription routing table is queried to find all of the subscribing endpoints.
1310

1411
## Configure subscription caching
1512

1613
Subscription information can be cached for a given period of time so that it does not have to be loaded every single time an event is being published. The longer the cache period is, the higher the chance that new subscribers miss some events.
1714

18-
The default behavior is to cache subscription information for 5 seconds. This value is comparable to the average time it takes a subscription message to reach the destination endpoint when using message-driven publish-subscribe (as in versions 4 and below). On the other hand the value is high enough to prevent excessive database lookups in high throughput scenarios when hundreds of messages are published each second.
15+
The default behavior is to cache subscription information for 5 seconds. This value is comparable to the average time it takes a subscription message to reach the destination endpoint when using message-driven publish-subscribe. On the other hand, the value is high enough to prevent excessive database lookups in high throughput scenarios when hundreds of messages are published each second.
1916

2017
If the default value is not suitable for a particular endpoint it can be changed. To configure it, use following API:
2118

@@ -25,7 +22,6 @@ In systems where events are subscribed and unsubscribed regularly (e.g. desktop
2522

2623
snippet: disable-subscription-cache
2724

28-
2925
## Configure subscription table
3026

3127
A single subscription table is used by all endpoints. By default this table will be named `[SubscriptionRouting]` and be created in the default schema of the catalog specified in the connection string. To change where this table is created and how it is named, use the following API:
@@ -34,9 +30,3 @@ snippet: configure-subscription-table
3430

3531
> [!WARNING]
3632
> All endpoints in the system must be configured to use the same subscription table. In a multi-schema or multi-catalog system the subscription table needs to be in a shared schema and catalog.
37-
38-
## Backwards compatibility
39-
40-
When upgrading to a version of the transport that supports native publish-subscribe, a compatibility mode must be enabled during the upgrade process. See the [dedicated upgrade guide](/transports/upgrades/sqlserver-4to5.md) for more information.
41-
42-

0 commit comments

Comments
 (0)