none
Exécuter un job ou un package à partir d'une procédure stockée lancée par Service broker. RRS feed

  • Question

  • Bonjour tout le monde,

     

    Je suis nouveau dans le monde d’SQL Server ainsi que sur le forum.

    J’inaugure donc mon inscription en vous présentant le problème qui me fait m’arracher les cheveux depuis 2 jours.

    Le scénario est le suivant :

    1. D’un coté je reçois des messages dans une queue Service Brocker.
    2. De l‘autre coté j’ais un package SSIS qui lit les message et leur affecte un traitement.

    Mon problème survient lorsque je veux réaliser une procédure qui lance le package SSIS.

     

    D’après ce que j’ai lu sur le forum US il n’est pas conseillé d’utiliser la commande xp_cmdshell pour des raisons de sécurité. Alors je me suis tourné vers la solution de faire un job et de l’appeler avec sp_start_job. Mais cela ne fonctionne pas comme je le voudrais.

    En effet, j’ais réalisé une procédure utilisant sp_start_job pour lancer mon job (qui lui-même lance mon package).

    Si je lance cette fameuse procédure manuellement avec Exec Lancement_traitement; ça marche.

    Si je lance cette procédure directement depuis ma queue avec :

     

    CREATE QUEUE [QueueReception]

                    WITH STATUS = ON,

                    ACTIVATION (

                                   PROCEDURE_NAME = [Test_queue].[dbo].[Lancement_traitement],

                                   MAX_QUEUE_READERS = 1,

                                   EXECUTE AS SELF )

                    ON [DEFAULT];

    GO

     

    ça ne marche plus, et dans le log  j’obtiens : « EXECUTE permission denied on object 'sp_start_job', database 'msdb', schema 'dbo'.' »

     

    Voila j’aimerais savoir si quelqu’un a une solution pour lancer mon package automatiquement lorsque ma Queue reçoit un message ?

    mardi 28 août 2007 14:50

Toutes les réponses

  • Bonjour,

    Avez-vous essayer de mettre dbo. devant l'appel de la procédure sp_start_job. Comme ça : dbo.sp_start_job.

    Il faut aussi vérifier que le compte sous lequel s'exécute QSL server Agent ait le droit d'exécuter la PS sp_start_job.

    Bonne journée.

     

    jeudi 18 octobre 2007 09:24