我们有很多SSIS包通过Control-M的.bat(批处理)文件运行。我们遇到的问题是,如果SSIS包失败,批处理文件(通过Control-M Job执行)从不显示真正的SSIS错误消息,生产支持团队希望在批处理文件输出日志中看到这些错误,显示在control-m中,而不是单独进入SSIS错误报告。
例如,批处理文件错误输出是(当前输出)
IS服务器上的包执行失败。执行ID:118475,执行状态:4。 要查看执行的详细信息,请右键单击Integration Services目录,然后打开[所有执行]报告
但SSIS中的实际错误是(预期输出要附加到当前输出)
ExtractConform_Master:错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“Microsoft SQL Server Native Client 11.0”Hresult:0x80004005描述:“用户'UK \ blah'登录失败。”。 OLE DB记录可用。来源:“Microsoft SQL Server Native Client 11.0”Hresult:0x80004005描述:“无法打开数据库”Blah“登录请求。登录失败。”。
当前示例批处理文件如下所示 “
echo off
set PackageName=Publish.dtsx
set EnvironmentName=BlahEnvironment
set BasePath=%~dp0..
REM Parameters
REM ====================================================
set Cluster=Clustername
set Subcluster=SubclusterName
set QueueName=QueueName
"%DTExecFilePath%" /ISSERVER "\%SSISCatalog%\%FolderName%\%ProjectName%\%PackageName%" /SERVER %SSISSERVER% /Envreference %env% /Par "$ServerOption::SYNCHRONIZED(Boolean)";True /Par "Cluster";%Cluster% /Par "Subcluster";%Subcluster% /Par "$Package::QueueName";%QueueName%
echo ERROR LEVEL is %ERRORLEVEL%
IF %ERRORLEVEL% GEQ 1 EXIT /b 1
IF %ERRORLEVEL% EQU 0 EXIT /b 0 code here
任何建议?
答案 0 :(得分:0)
我建议您使用 Control-M for Database 模块从SSIS SQL Server运行DTSX。这将允许您使用数据库作业类型,您可以在其中启用附加 DTSX执行输出的选项。