Datastage 9.1 生成报错
0
背景如下:
作业一共3个stage:
ODBC--> Copy-->sequential File
ODBC连接的是sqlserver 2008,没有任何逻辑,读表,然后生成文件,文件比较大,最终的文件有1.2G
问题:
JOB是正常跑完了,显示绿色,但是日志中有这么一段,报错信息如下:OD_SIMDB_LV_QM_MaintenanceRecords: ODBC function "SQLFreeHandle(SQL_HANDLE_STMT)" reported: SQLSTATE = 08S01: Native Error Code = 0: Msg = [IBM(DataDirect OEM)][ODBC SQL Server Wire Protocol driver]Socket closed. (CC_OdbcDBStatement::~CC_OdbcDBStatement, file CC_OdbcDBStatement.cpp, line 223)
ODBC function "SQLEndTran(SQL_ROLLBACK)" reported: SQLSTATE = HY000: Native Error Code = 0: Msg = [IBM(DataDirect OEM)][ODBC SQL Server Wire Protocol driver]General error. NULL UtilityStmt (CC_OdbcConnection::rollback, file CC_OdbcConnection.cpp, line 1,237)
作业一共3个stage:
ODBC--> Copy-->sequential File
ODBC连接的是sqlserver 2008,没有任何逻辑,读表,然后生成文件,文件比较大,最终的文件有1.2G
问题:
JOB是正常跑完了,显示绿色,但是日志中有这么一段,报错信息如下:OD_SIMDB_LV_QM_MaintenanceRecords: ODBC function "SQLFreeHandle(SQL_HANDLE_STMT)" reported: SQLSTATE = 08S01: Native Error Code = 0: Msg = [IBM(DataDirect OEM)][ODBC SQL Server Wire Protocol driver]Socket closed. (CC_OdbcDBStatement::~CC_OdbcDBStatement, file CC_OdbcDBStatement.cpp, line 223)
ODBC function "SQLEndTran(SQL_ROLLBACK)" reported: SQLSTATE = HY000: Native Error Code = 0: Msg = [IBM(DataDirect OEM)][ODBC SQL Server Wire Protocol driver]General error. NULL UtilityStmt (CC_OdbcConnection::rollback, file CC_OdbcConnection.cpp, line 1,237)
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
1 个回复
BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2015-10-14 回答
赞同来自:
http://www-01.ibm.com/support/docview.wss?uid=swg21615944
Cause
- ODBC driver waits for 15 seconds for a connection to be established before returning control to the application and generating a timeout error, by default LoginTimeout is set to 15 seconds and the DataStage job fails when ODBC driver to SQL server times out.
- Once ODBC driver establishes connection to database SQL query does not time out because by default driver QueryTimeout is set to 0, but the driver responds to the SQL_ATTR_QUERY_TIMEOUT attribute on the SQLSetStmtAttr() function when query whose execution exceeds an interval set by the application and will result in SQLSTATE 01S02 (Communication link failure) error.
Resolving the problem
To resolve "Communication link failure" issue in DataStage job, add below two parameters to ODBC driver in ODBC configuration file .odbc.ini under $DSHOME path.
LoginTimeout=-1
QueryTimeout=-1