Hi, I am trying to setup externale activation with service broker but cannot get it to work.
This is my code:
CREATE MESSAGE TYPE [PricingMessage]
CREATE CONTRACT [PricingContract]
(
[PricingMessage] SENT BY INITIATOR
)
CREATE QUEUE EquityPricingInitiatorQueue
WITH STATUS = ON
CREATE QUEUE EquityPricingTargetQueue
CREATE SERVICE EquityPricingInitiatorService
ON QUEUE EquityPricingInitiatorQueue
(
[PricingContract]
)
CREATE SERVICE EquityPricingTargetService
ON QUEUE EquityPricingTargetQueue
(
[PricingContract]
)
CREATE QUEUE EquityPricingExternalActivatorQueue
CREATE SERVICE EquityPricingExternalActivatorService
ON QUEUE EquityPricingExternalActivatorQueue
(
[http://schemas.microsoft.com/SQL/Notifications/PostEventNotification]
)
CREATE EVENT NOTIFICATION EventNotificationEquityPricingTargetQueue
ON QUEUE EquityPricingTargetQueue
FOR QUEUE_ACTIVATION
TO SERVICE 'EquityPricingExternalActivatorService', 'current database';
I use the following code to send a message to service broker:
DECLARE @Handle UNIQUEIDENTIFIER;
BEGIN DIALOG CONVERSATION @Handle
FROM SERVICE [EquityPricingInitiatorService]
TO SERVICE 'EquityPricingTargetService'
ON CONTRACT [PricingContract]
WITH ENCRYPTION = OFF;
SEND ON CONVERSATION @Handle
MESSAGE TYPE [PricingMessage]('EQUITY');
Service Broker External Activator Windows Service runs but I get this error message:
INFOThe External Activator service is starting.
3/26/2015 5:26:59 PMINFOInitializing configuration manager ...
3/26/2015 5:26:59 PMINFOReloading configuration file C:\Program Files\Service Broker\External Activator\config\EAService.config ...
3/26/2015 5:26:59 PMINFOReloading configuration file completed.
3/26/2015 5:26:59 PMINFOInitializing configuration manager completed.
3/26/2015 5:26:59 PMINFOThe External Activator service is running.
3/26/2015 5:26:59 PMEXCEPTIONERROR = 32, No enabled application monitor is on behalf of queue [PRC01DBSQLDEV\PRC01].[PARC].[dbo].[EquityPricingTargetQueue].
This is my EAService.config file:
?xml version="1.0" encoding="utf-8"?>
<Activator xmlns="http://schemas.microsoft.com/sqlserver/2008/10/servicebroker/externalactivator"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.microsoft.com/sqlserver/2008/10/servicebroker/externalactivator EAServiceConfig.xsd"
>
<NotificationServiceList>
<NotificationService name="EquityPricingExternalActivatorService" id="100" enabled="true">
<Description>My test notification service</Description>
<ConnectionString>
<!-- All connection string parameters except User Id and Password should be specificed here -->
<Unencrypted>Data Source=PRC01DBSQLDEV\PRC01;Database=PARC;Integrated Security=true;Connection Timeout=120</Unencrypted>
</ConnectionString>
</NotificationService>
</NotificationServiceList>
<ApplicationServiceList>
<ApplicationService name="myMessageApp" enabled="true">
<OnNotification>
<ServerName>PRC01DBSQLDEV\PRC01</ServerName>
<DatabaseName>Parc</DatabaseName>
<SchemaName>dbo</SchemaName>
<QueueName>EquityPricingTargetQueue</QueueName>
</OnNotification>
<LaunchInfo>
<ImagePath>C:\svnrepo-NET\PricingCrossRef\PricingMessagePublisher\PricingMessagePublisher\bin\Debug\PricingMessagePublisher.exe</ImagePath>
<CmdLineArgs></CmdLineArgs>
<WorkDir>C:\svnrepo-NET\PricingCrossRef\PricingMessagePublisher\PricingMessagePublisher\bin\Debug</WorkDir>
</LaunchInfo>
<Concurrency min="1" max="1" />
</ApplicationService>
</ApplicationServiceList>
<LogSettings>
<LogFilter>
</LogFilter>
</LogSettings>
</Activator>
Any ideas what I am doing wrong?
Thanks.