0

I am currently configuring the micro-services for SDL Web 8. I have adjusted the installService scripts to ensure that the dependencies are correct, and I can confirm it from the shell like this:

PS C:\SDLWebCDServices\Deployer> foreach ($serv in $(service SD*)) {
>> $serv.Name
>> $serv.ServicesDependedOn
>> }
>>
SDLWebContentService

Status   Name               DisplayName
------   ----               -----------
Running  Afd                Ancillary Function Driver for Winsock
Running  Tcpip              TCP/IP Protocol Driver
Running  SDLWebDiscovery... SDL Web Discovery Service
SDLWebDeployerService
Running  Afd                Ancillary Function Driver for Winsock
Running  Tcpip              TCP/IP Protocol Driver
Running  SDLWebDiscovery... SDL Web Discovery Service
SDLWebDiscoveryService
Running  Afd                Ancillary Function Driver for Winsock
Running  Tcpip              TCP/IP Protocol Driver
SDLWebStagingContentService
Running  Afd                Ancillary Function Driver for Winsock
Running  Tcpip              TCP/IP Protocol Driver
Running  SDLWebStagingDi... SDL Web Staging Discovery Service
SDLWebStagingDeployerService
Running  Afd                Ancillary Function Driver for Winsock
Running  Tcpip              TCP/IP Protocol Driver
Running  SDLWebStagingDi... SDL Web Staging Discovery Service
SDLWebStagingDiscoveryService
Running  Afd                Ancillary Function Driver for Winsock
Running  Tcpip              TCP/IP Protocol Driver

So as you can see, SDLWebContentService depends on the discovery service.

Now when I stop these services and start them again, my expectation was that they should all end up in a Running state:

PS C:\SDLWebCDServices\Deployer> service SD* | stop-service
PS C:\SDLWebCDServices\Deployer> service SD* | ft -AutoSize

Status  Name                          DisplayName
------  ----                          -----------
Stopped SDLWebContentService          SDL Web Content Service
Stopped SDLWebDeployerService         SDL Web Deployer Service
Stopped SDLWebDiscoveryService        SDL Web Discovery Service
Stopped SDLWebStagingContentService   SDL Web Staging Content Service
Stopped SDLWebStagingDeployerService  SDL Web Staging Deployer Service
Stopped SDLWebStagingDiscoveryService SDL Web Staging Discovery Service


PS C:\SDLWebCDServices\Deployer> service SD* | start-service
WARNING: Waiting for service 'SDL Web Deployer Service (SDLWebDeployerService)' to start...
WARNING: Waiting for service 'SDL Web Deployer Service (SDLWebDeployerService)' to start...
WARNING: Waiting for service 'SDL Web Staging Content Service (SDLWebStagingContentService)' to start...
WARNING: Waiting for service 'SDL Web Staging Deployer Service (SDLWebStagingDeployerService)' to start...
WARNING: Waiting for service 'SDL Web Staging Deployer Service (SDLWebStagingDeployerService)' to start...
WARNING: Waiting for service 'SDL Web Staging Deployer Service (SDLWebStagingDeployerService)' to start...
PS C:\SDLWebCDServices\Deployer> service SD* | ft -AutoSize

Status  Name                          DisplayName
------  ----                          -----------
Stopped SDLWebContentService          SDL Web Content Service
Running SDLWebDeployerService         SDL Web Deployer Service
Running SDLWebDiscoveryService        SDL Web Discovery Service
Running SDLWebStagingContentService   SDL Web Staging Content Service
Running SDLWebStagingDeployerService  SDL Web Staging Deployer Service
Running SDLWebStagingDiscoveryService SDL Web Staging Discovery Service

As you can see, the content service remains stopped. (On this occasion only one service remained stopped. It's a timing thing, so sometimes there are more.)

If I then start them again - everything is fine:

PS C:\SDLWebCDServices\Deployer> service SD* | start-service
PS C:\SDLWebCDServices\Deployer> service SD* | ft -AutoSize

Status  Name                          DisplayName
------  ----                          -----------
Running SDLWebContentService          SDL Web Content Service
Running SDLWebDeployerService         SDL Web Deployer Service
Running SDLWebDiscoveryService        SDL Web Discovery Service
Running SDLWebStagingContentService   SDL Web Staging Content Service
Running SDLWebStagingDeployerService  SDL Web Staging Deployer Service
Running SDLWebStagingDiscoveryService SDL Web Staging Discovery Service

Is my expectation wrong? Do service dependencies only operate at boot time? Or should starting one service initiate the startup of services it depends on, or at least wait for them?

Update: I have now tried a restart of the server, and I can also see that the Content services fail to start because they are unable to use the discovery service.

  • I'm aware that this could be seen as off-topic. I'm arguing that it's something people implementing Tridion will stumble over, and therefore in the general good to have the question (and hopefully answers) here. – Dominic Cronin Apr 6 '16 at 9:46
  • I guess it is general behavior for windows services. The same you will find with CM windows services. For example, Batch service has a dependency on Service host. If you will stop Service host it will also stop Batch service. But after start of Service host, Batch will be still stopped. It will only work if you do restart. Then all you services will be in running state. I think there should be some explanation from Microsoft. – Stanislav Maryenko Apr 6 '16 at 14:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.