You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: samples/nhibernate/custom-mappings/sample.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -70,10 +70,10 @@ Saga data classes can be decorated with [NHibernate.Mapping.Attributes](https://
70
70
71
71
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.
72
72
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.
77
77
78
78
Initialize the NHibernate attribute based mappings:
Copy file name to clipboardExpand all lines: servicepulse/troubleshooting.md
+12-15
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,15 @@
1
1
---
2
2
title: ServicePulse Troubleshooting
3
3
summary: ServicePulse installation and common issues troubleshooting
4
-
reviewed: 2022-04-21
4
+
reviewed: 2024-11-27
5
5
component: ServicePulse
6
6
---
7
7
8
-
9
8
### ServicePulse is unable to connect to ServiceControl
10
9
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.
14
13
15
14
### ServicePulse reports empty failed message groups
16
15
@@ -33,13 +32,12 @@ There may be previous versions of assets cached by the browser after updating Se
33
32
34
33
After a period of inactivity, a web application endpoint is failing with the message:
35
34
36
-
```
35
+
```text
37
36
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.
38
37
```
39
38
40
39
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.
41
40
42
-
43
41
#### Causes and solutions
44
42
45
43
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
64
62
65
63
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.
66
64
67
-
68
65
### Duplicate endpoints appear in ServicePulse after re-deployment
69
66
70
67
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
75
72
76
73
### ServicePulse reports that 0 endpoints are active, although endpoint plugins were deployed
77
74
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.
83
80
84
81
### After enabling heartbeat plugins for NServiceBus version 3 endpoints, ServicePulse reports that endpoints are inactive
85
82
86
83
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.
87
84
88
85
To address this issue:
89
86
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.
summary: Describes the native publish subscribe implementation in the SQL Server transport
4
-
reviewed: 2022-03-18
4
+
reviewed: 2024-11-27
5
5
component: SqlTransport
6
-
versions: '[5,)'
6
+
versions: '[7,)'
7
7
---
8
8
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.
13
10
14
11
## Configure subscription caching
15
12
16
13
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.
17
14
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.
19
16
20
17
If the default value is not suitable for a particular endpoint it can be changed. To configure it, use following API:
21
18
@@ -25,7 +22,6 @@ In systems where events are subscribed and unsubscribed regularly (e.g. desktop
25
22
26
23
snippet: disable-subscription-cache
27
24
28
-
29
25
## Configure subscription table
30
26
31
27
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:
> 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.
0 commit comments