0

Now that SQL Server 2016 enables SSISDB to be fully High Available, I have a question regarding the job setup.

When I do create a SQL Agent Job that executes a SSIS Package that is deployed in SSISDB, should in the job step the Server be the Listener Name or the physical host name?

I am asking that because if I use the physical host name and create the job in both replicas, the secondary jobs will always fail because the DB is in read only mode. I didn't try placing the Listener name yet, because I wanted to get opinions first.

1 Answers1

0

The server name should be listener name ,if you follow this approach,it is enough to deploy job in one instance

you also can use Physical host names and deploy jobs in all instances,provided you have below piece of code as first step

- fn_hadr_group_is_primary
USE master;
GO
IF OBJECT_ID('dbo.fn_hadr_group_is_primary', 'FN') IS NOT NULL
  DROP FUNCTION dbo.fn_hadr_group_is_primary;
GO
CREATE FUNCTION dbo.fn_hadr_group_is_primary (@AGName sysname)
RETURNS bit
AS
BEGIN;
  DECLARE @PrimaryReplica sysname; 

  SELECT
    @PrimaryReplica = hags.primary_replica
  FROM sys.dm_hadr_availability_group_states hags
  INNER JOIN sys.availability_groups ag ON ag.group_id = hags.group_id
  WHERE ag.name = @AGName;

  IF UPPER(@PrimaryReplica) =  UPPER(@@SERVERNAME)
    RETURN 1; -- primary

    RETURN 0; -- not primary
END; 

This post also deals with some of the common issues,that needs to be taken care off

https://blogs.msdn.microsoft.com/mattm/2012/09/19/ssis-with-alwayson/

TheGameiswar
  • 27,855
  • 8
  • 56
  • 94
  • 1
    The only problem with placing in a single server the job, is if the whole is lost, so I think deploying to both sounds better. – Marcos Freccia May 04 '17 at 12:41