In SQL Server, unlike triggers.aspx), Service Broker (SB) works asynchronously. The benefits of using SB can be found in this document.aspx). One of great benefits using SB is that it is not only comsumed within SQL Server, but also it calls an application outside the SQL Server through External Activator (EA). There are many relevant articles for SB and internal activator. But it is hard to find some useful EA related documents.
Basically, this series of articles are based on several resources including Announcing Service Broker External Activator, Get Started With Using External Activator, Sample activated application, and Auditing Data Changes in SQL Server using Service Broker’s External Activator. Throughout these posts, you will get used to SB and EA.
Its sample source codes can be found at: devkimchi/Service-Broker-External-Activator
- Step 1: Service Broker External Activator Service Setup
- Step 2: SQL Server Setup
- Step 3: External Activator Application Development
- Step 4: External Activator Service Configuration
- Step 5: Putting Them Altogether
In this article, we are going to install Service Broker External Activator Service.
External Activator Service Setup for Service Broker
Installing Windows Service
Depending on your SQL Server version and architecture, you can choose one of followings:
In this post, we are using SQL Server 2012. When you click the link above, you can expand the Install Instruction
section and find Service Broker External Activator. From there you can choose either x86 package, x64 package or IA64 package. Select a package best suits for your environment.
During the installation, you will see a screen like below:
Choose Built-in Account and NETWORK SERVICE
for now. Once it is installed, open the Services
window on Control Panel. Then you can find the Windows Service installed.
Changing Log On Account to Virtual Account
It’s not started yet. Before manually starting this Service, we need to change its log on account. It has been currently bound with NETWORK SERVICE
but this is not right. For Windows 7, Windows Server 2008 or later, you might have heard of the term, Virtual Account. This is not a real account but to work as like a service account in Windows 7, Windows Server 2008 or later which is not on Active Directory. As we have already installed Service Broker External Activator Service, we have a virtual account called, NT SERVICE\SSBExternalActivator
. So, we can simply change the log on account to this, without password.
Granting Permissions to Virtual Account on Application Directory
We need more job to do to start this service. The Windows Service has been installed at C:\Program Files\Service Broker\External Activator
. Therefore, the directory should be accessible for the virtual account.
(This is optional) Find the SSB EA Admin
account group from Local users and Groups
and add a service account to run the Windows Service. If you want to use the virtual account only, this is not necessary.
Allow Full Control
onto the SSB EA Admin
account group and the virtual account, NT SERVICE\SSBExternalActivator
.
Now, we are ready to run this Windows Service. Before starting the service, we need to setup SQL Server first. In the next post, Step 2: SQL Server Setup, we will setup SQL Server to enable SB.