Error DReplay Could not find any resources appropriate for the specified culture or the neutral culture
2016-10-12 08:26:15:865 Error DReplay Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "Microsoft.SqlServer.Management.DistributedReplay.ExceptionTemplates.resources" was correctly embedded or linked into assembly "Microsoft.SqlServer.Management.DistributedReplay" at compile time, or that all the satellite assemblies required are loadable and fully signed.
This is a short post to hopefully save any readers some time. Like many people, I was receiving this error when trying to use distributed replay with SQL Server 2016. There are a number of causes but the error message can throw you off course. In my experience, you will get this error when the controller and client cannot communicate with each other.
How can you check if there is a communication issue?
- Check that the SQL Server Distributed Replay Controller service is running on the controller machine you wish to use.
- Ensure that the SQL Server Distributed Replay Client service is running on each client machine you wish to use.
- This was the cause of my problem. I had restarted the client machines but services were set to manual rather than automatic so had not restarted.
To quickly turn on the services without logging on to each server, you could run the command below. Just change the server name for your client server name.
SC \\Distributed_Replay_Client1 start "SQL Server Distributed Replay Client" SC \\Distributed_Replay_Client2 start "SQL Server Distributed Replay Client" SC \\Distributed_Replay_Client3 start "SQL Server Distributed Replay Client" SC \\Distributed_Replay_Client4 start "SQL Server Distributed Replay Client" SC \\Distributed_Replay_Client5 start "SQL Server Distributed Replay Client"
- Check for this line in your dreplay client log file: Registered with controller “name_of_controller”. The name of controller is whatever you have used such as Distributed_Replay_Controller. You will find the file at C:\Program Files (x86)\Microsoft SQL Server\130\Tools\DReplayClient\Log for SQL Server 2016. If the service is running and the log does not say registered with controller, you have an issue.
How to fix the communication issue.
Assuming services are running and log does not say Registered with controller
- Check your firewall has been opened up (on every client machine) to allow incoming connections for DReplayClient.exe. Also, ensure that incoming connections are allowed for DReplayController.exe on your controller machine. Check section 6 of the post-installation steps on this technet article for more info. If you prefer to use the GUI, open the snap in for Windows Firewall with Advanced Security, open command prompt or start, then type wf.msc
- Ensure your DCOM settings have been changed to allow communication between the controller and client machines. DCOM is used for the RPC communications between controller and clients as well as controller and administration tool.
You should go through this msdn page and check you have done everything required. In my experience, the DCOM setting are something that DBAs do not generally mess with so you wouldn’t necessarily have thought to do this unless you saw it in the configuration guide.