none
Dúvida com job. RRS feed

  • Pergunta

  • Ola a todos...

    - Eu rodo um determinado código na 'mão', ele funciona como o esperado: para o rastreamento,  fecha o rastreamento, o-deleta e em seguida o recria limpo. Mas quando coloco isso dentro de um job, chega até compilar, mas não executa o código e não me retorna erro. Eu estou colocando o código todo dentro de um único step.

    Segue o código:

    -- Captura o id do trace especificado
    Declare @Trace_Id int

    SELECT @Trace_Id = TraceId
    FROM fn_trace_getinfo(0)
    WHERE cast(value as varchar(50)) = '\\s015138\MSSQL\Trace\Querys_demoradas.trc'

    --Interrompe o rastreamento especificado.
    EXEC sp_trace_setstatus  @traceid = @Trace_Id,  @status = 0

    -- Fecha o rastreamento especificado e exclui sua definição do servidor
    EXEC sp_trace_setstatus  @traceid = @Trace_Id,  @status = 2

    -- Deleta trace
    EXEC "dbSAFWEB.NET_TESTES"..XP_CMDSHELL 'del \\s015138\MSSQL\Trace\Querys_demoradas.trc'

    -- Recria o trace vazio
    EXEC dbo.stpCreate_Trace

     

    quinta-feira, 15 de março de 2012 20:09

Respostas

Todas as Respostas

  • Evertoum,

    Com qual conta de usuário você esta executando este job?

    Como assim chega a compilar e não executa? Nenhum job é compilado.

    O mais indicado como você esta trabalhando com o comando Exec é executar cada Exec em um Step separado ou remover o Exec para executar tudo no mesmo Step.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quinta-feira, 15 de março de 2012 20:14
  • Compilar não, rodar. rs

    - Estou executando o job com o usuário sa. Vou acrescentar mais alguns steps então.

    ---

    @EDIT

    - Então, acrescentei mais três steps, um pra parar e finalizar o trace, outro deletar e por fim o último que recria. Mas aparêntemente encontrei onde esta causando o retorno inesperado, é do 3° para o 4°, onde ele para e fecha o rastreamento, mas não o deleta... consequentemente não o recria por já haver um trace com o mesmo nome no diretório.

    A sintaxe do comando para deletar o trace esta correta, visto que ao rodar ela deleta o trace corretamente. Há alguma outra maneira de fazer isso ?


    • Editado Evertoum quinta-feira, 15 de março de 2012 20:38
    • Marcado como Resposta Evertoum quinta-feira, 15 de março de 2012 20:51
    • Não Marcado como Resposta Evertoum quinta-feira, 15 de março de 2012 20:51
    quinta-feira, 15 de março de 2012 20:21
  • Resolvido, coisa bem simples...  no escopo do step onde era passado o comando para deletar o trace file, estava da seguinte forma:

    -- Deleta trace
    EXEC "dbSAFWEB.NET_TESTES"..XP_CMDSHELL 'del \\s015138\MSSQL\Trace\Querys_demoradas.trc'

    Eu apenas removi a especificação do banco, visto que já é declarado isso. Portanto ficou funcionando como o esperado da seguinte forma:

    EXEC XP_CMDSHELL 'del \\s015138\MSSQL\Trace\Querys_demoradas.trc'

    Obrigado a todos.

    • Marcado como Resposta Evertoum sexta-feira, 16 de março de 2012 13:36
    sexta-feira, 16 de março de 2012 13:35