none
Erro ao executar JOB para processar Cubos RRS feed

  • Pergunta

  • Criei um JOB para processar alguns cubos do Analysis Services e está dando erro.

    Quando acesso o Analysis Services no Management Studio e clico em processar funciona certinho, quando tento executar pelo JOB não dá. No JOB eu configurei como "Comando do SQL Server Analysis Services"

    Este é o XMLA:

    <Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400">
        <Object>
          <DatabaseID>Business Intelligence</DatabaseID>
        </Object>
        <Type>ProcessFull</Type>
        <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
      </Process>
    </Batch>

    Este é o erro:

    Microsoft.AnalysisServices.Xmla.ConnectionException: A connection cannot be made. Ensure that the server is running. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)   --- End of inner exception stack trace ---   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)   at System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)   at Microsoft.AnalysisServices.Xmla.DimeRecord.ForceRead(Stream stream, Byte[] buffer, Int32 length)   at Microsoft.AnalysisServices.Xmla.DimeRecord.ReadHeader()   at Microsoft.AnalysisServices.Xmla.DimeReader.ReadRecord()   at Microsoft.AnalysisServices.Xmla.TcpStream.GetResponseDataType()   --- End of inner exception stack trace ---   at Microsoft.AnalysisServices.Xmla.XmlaClient.Connect(ConnectionInfo connectionInfo, Boolean beginSession)   at Microsoft.SqlServer.Management.Smo.Olap.SoapClient.Connect()   at OlapEvent(SCH_STEP* pStep, SUBSYSTEM* pSubSystem, SUBSYSTEMPARAMS* pSubSystemParams, Boolean fQueryFlag).  The step failed.

    No campo servidor já coloquei o nome do servidor e também tentei com o servidor/instancia.

    quinta-feira, 30 de outubro de 2014 13:25

Respostas

  • Pedro e Eduardo,

    Muito obrigado pela ajuda de vocês, não descobri porque não funcionou, mas consegui uma solução.

    No servidor do agendamento do JOB eu coloquei o IP virtual que aponta para o cluster do banco que estiver ativo. A princípio isso resolve meu problema. Obrigado.

    terça-feira, 4 de novembro de 2014 14:33

Todas as Respostas

  • Gleison,

    Analisando a mensagem de erro, o Analysis Services esta retornando este mensagem informando que provavelmente uma conexão esta encerrando o processamento deste job.

    Mas um ponto que me chamou a atenção é a parte do System.IO.IOException, este tipo de informação normalmente esta relacionada com o Disco Rígido!!! Por acaso você tem espaço suficiente em disco para que este Job consiga processar o cubo?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quinta-feira, 30 de outubro de 2014 14:14
  • Gleison, verifique se o usuário que executa o serviço do SQL Agent tem permissão para realizar deploy no serviço do analysis services.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    quinta-feira, 30 de outubro de 2014 16:01
  • Sim, tenho espaço em disco suficiente.

    Lembrando que "manualmente" funciona. Quando disparado pelo JOB não.

    O user que executa o JOB é admin do banco e do domínio então não é permissão também.

    Trabalhávamos com a instancia padrão antes, mas trocamos de versão e criamos uma instancia, a padrão agora aponta para essa instancia criada. Será que pode ser algo nesse sentido? Será que tem que alterar alguma coisa no serviço do Analysis pegar essa instancia?

    quinta-feira, 30 de outubro de 2014 17:02
  • Gleison, obrigado pelas informações.

    Só mais uma dúvida: É o usuário que é o owner do JOB ou o usuário que está configuração no serviço do SQL Agent(SQLSERVERAGENT) que é Admin? Ou os dois são Admin?

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    terça-feira, 4 de novembro de 2014 13:29
  • Pedro e Eduardo,

    Muito obrigado pela ajuda de vocês, não descobri porque não funcionou, mas consegui uma solução.

    No servidor do agendamento do JOB eu coloquei o IP virtual que aponta para o cluster do banco que estiver ativo. A princípio isso resolve meu problema. Obrigado.

    terça-feira, 4 de novembro de 2014 14:33