March 31, 2016 at 7:46 pm
I have launched the Service broker between 2 instances on 2 VMs and it worked normally. for example, ServerA as the initiator and ServerB as the target server.
then ran below scripts on database which receives the ssb message on ServerB.
CREATE QUEUE NotifyQueue ;
GO
CREATE SERVICE NotifyService
ON QUEUE NotifyQueue
([http://schemas.microsoft.com/SQL/Notifications/PostEventNotification]);
GO
CREATE ROUTE NotifyRoute
WITH SERVICE_NAME = 'NotifyService',
ADDRESS = 'LOCAL';
GO
CREATE EVENT NOTIFICATION Event_Notify_Test
ON QUEUE [http://soa.microsoft.com/SOA/USA/InfrastructureService/V10/Test/AllQueue]
FOR QUEUE_ACTIVATION
TO SERVICE 'NotifyService' , 'current database'
GO
after I sent the XML SSB message from the initiator ServerA, I could find the ssb existing the Queue [http://soa.microsoft.com/SOA/USA/InfrastructureService/V10/Test/AllQueue] and notification queue NotifyQueue.
then launched the SSBEA program on ServerB and made some configurations changed.
1.change the service account for SSBEA to one domain account.
2.create one windows login using the domain account and grant it to the database owner permission in SSB database. then add the domain account into SSBEA Admin group and make it have the full control permissions for SSBEA directory.
3.the SSBEA configuration file likes below:
<?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="NotifyService" 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>server=ServerB;database=SSB;Application Name=MyMessageApplication;Integrated Security=true;</Unencrypted>
</ConnectionString>
</NotificationService>
</NotificationServiceList>
<ApplicationServiceList>
<ApplicationService name="MyNotificationService" enabled="true">
<OnNotification>
<ServerName>ServerB</ServerName>
<DatabaseName>SSB</DatabaseName>
<SchemaName>dbo</SchemaName>
<QueueName>[http://soa.microsoft.com/SOA/USA/InfrastructureService/V10/Test/AllQueue]</QueueName>
</OnNotification>
<LaunchInfo>
<ImagePath>D:\MyMessageApplication\MyMessageApplication.exe</ImagePath>
<CmdLineArgs></CmdLineArgs>
<WorkDir>D:\MyMessageApplication</WorkDir>
</LaunchInfo>
<Concurrency min="1" max="1" />
</ApplicationService>
</ApplicationServiceList>
<LogSettings>
<LogFilter>
<TraceFlag>All Levels</TraceFlag>
<TraceFlag>All Modules</TraceFlag>
<TraceFlag>All Entities</TraceFlag>
<TraceFlag>Verbose</TraceFlag>
</LogFilter>
</LogSettings>
</Activator>
from the configuration file ,we can see that the executable program is under D:\MyMessageApplication directory. when I ran the executable program, it can ran successfully and inserted some data into the related tables.
but when I started the SSBEA, it failed to call the executable program.
the error message is
2016/3/31 15:30:12EXCEPTIONERROR = 32, No enabled application monitor is on behalf of queue [ServerB].[SSB].[dbo].[http://soa.microsoft.com/SOA/USA/InfrastructureService/V10/Test/AllQueue].
I have searched a lot on the internet, but all failed to fix the error.
can anyone help me ?
appreciate that.
Viewing 0 posts
You must be logged in to reply to this topic. Login to reply