0

Within my environment we currently have a MSSQL installation which serves as the Master in a Multiserver Agent environment (MSX). Due to this server being within a tightly controlled network the necessary ports for MSX functionality have not been opened.

As shown in the image, when I try to enlist a target (TSX) to the master (MSX) I am given an error that the RFC server is not available, I am also unable to deploy multi-server jobs to targets.

What ports should I request to be opened from targets to the master and vice versa?

enter image description here

  • Look which ports are listened by CMS... 6400 by default AFAIR. – Akina Oct 15 at 7:38
  • @akina Do you recommend a way of seeing which ports are listening? The documentation is very limited in this regard. – Asher Oct 15 at 9:43
  • Yes. Or look at CMS settings - service port may be settable... – Akina Oct 15 at 9:47
  • 1
    CMS is a slightly different feature. This is about Multi-server job administration. The master server is considered the MSX and the target is the TSX. Check out: stackoverflow.com/q/26222524/1948808 – AMtwo Oct 15 at 11:00
  • @AMtwo thanks for the link. Unfortunately the answer posted on that link remains unanswered. I know that for sure RPC endpoint mapper port 135 needs to be opened, but there is also a range of dynamic ports that RPC uses. This link seems to suggest a range of ports: blogs.technet.microsoft.com/fort_sql/2012/07/03/… – Asher Oct 15 at 12:03
1

When you attempt to enlist the Target (TSX) to the Master (MSX), the step that is failing is "Make sure the Agent service for '{MSX Server}' is running." This step simply checks to see that the SQL Server Agent is running on the MSX Server.

You can instead try to use msdb.dbo.sp_msx_enlist (documented here), which is run on the TSX to enlist it on the MSX. This may provide a more helpful error message, or it may even succeed.

If it succeeds, you can query msdb.dbo.systargetservers on the MSX to confirm that the server has been successfully enrolled, and is polling for instructions to download. Next, you can poll msdb.dbo.sysdownloadlist to see those instructions, and see if they are being consumed correctly by the TSX. There is an error_message column which should include download errors. Note, errors being logged here would be dependent on the TSX successfully connecting to the MSX--so your TSX would need to be able to connect to the MSX's DB Engine port (1433 by default) in order to even write the error messages.

  • Thank you for your thorough answer. Port 1433 is open, I am able to enlist using the stored procedure and see the server in the systargerservers table. When querying the sysdownloadlist, I see the commands that are trying to be sent to the target, but the date_downloaded remains empty / status remains 0. – Asher Oct 16 at 6:36

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.