WAS配置postgresql运行etl报错

公司有在用WAS掉用ETL包同步数据,目标是DB2,今天需要用postgresql的数据库作为数据来源。参照网上的配置方法,用通用JDBC配上了,没有写helper类,所以有警告。但实际抽取数据时报错。
出错的日志如下:
DBWSQWR 2014-01-15 18:45:37
SQW03275I: Execution of SQL statement "DECLARE GLOBAL TEMPORARY TABLE SESSION."T_815D1595801A563"( "reg_id" BIGINT, "his_pt_id" VARCHAR(128), "patient_name" VARCHAR(128), "identity_no" VARCHAR(64), "card_no" VARCHAR(128), "rx_code" VARCHAR(128), "doctor_code" VARCHAR(64), "doctor_name" VARCHAR(128), "dept_code" VARCHAR(128), "dept_name" VARCHAR(128), "rx_time" VARCHAR(64), "puncture_time" VARCHAR(64), "age" BIGINT, "reg_time" VARCHAR(64)) NOT LOGGED ON COMMIT PRESERVE ROWS" through JDBC connection finished successfully

DBWSQWR 2014-01-15 18:45:54
JDBCExtractor: SQL Exception: SQL state = 25P01; error code = 0; error Message = Cannot rollback when autoCommit is enabled.




DBWSQWR 2014-01-15 18:45:54
JDBCInsert: Exception: 数据库服务器返回了错误代码0 和 SQLException Cannot rollback when autoCommit is enabled.




DBWSQWR 2014-01-15 18:45:54
SQW03563E: Failure to execute Java class com.ibm.datatools.etl.dataflow.baselib.runtimeunits.JDBCInsert. Exception: 数据库服务器返回了错误代码0 和 SQLException Cannot rollback when autoCommit is enabled.  


好像是将数据插入零时表出错,因为是跨平台的,所以把大多数字段直接处理成了VARCHER长度上基本翻了一番。正常的Oracle数据执行日志如下:


DBWSQWR 2014-01-09 00:02:14
SQW03275I: Execution of SQL statement "DECLARE GLOBAL TEMPORARY TABLE SESSION."T_94F59DD434DBFF3"( PATID CHAR(32), CARDNO CHAR(32), PATOPNO CHAR(32), VISITNO CHAR(32), PATADNO CHAR(32), VISITNUM CHAR(32), SURGERYNO VARCHAR(32), SURGERYDATE VARCHAR(32), CANCELDATE CHAR(32), SURGERYCODE CHAR(32), SURGERYNAME CHAR(128), INCISIONLEVEL VARCHAR(32), HEALINGCLASS VARCHAR(32), SURGEONEMPID CHAR(32), SURGEONCODE VARCHAR(32), TUTORDOCEMPID CHAR(32), TUTORDOCCODE CHAR(32), FSTASSISTANTEMPID CHAR(32), FSTASSISTANTCODE VARCHAR(32), SECASSISTANTEMPID CHAR(32), SECASSISTANTCODE VARCHAR(32), PRODIAG CHAR(32), AFTERDIAG CHAR(32), IATROSURGICAL CHAR(32), SURSOURCE CHAR(32), ANESTHCODE CHAR(32), ANESTHNAME CHAR(32), ANESTHREACT CHAR(32), ANESTHDOCEMPID CHAR(32), ANESTHDOCCODE VARCHAR(32), COMPLICATIONS CHAR(32), SURGERYGROUPNO VARCHAR(32), PRIMARYFLAG CHAR(32), NONINVASIVESURGERY CHAR(32), SURGERYDEPT CHAR(32), OBSTETRICDEPT CHAR(32), SURGERYCON VARCHAR(32), FLAG_DATE CHAR(32), FLAG CHAR(32), OBJECTKEY VARCHAR(160)) NOT LOGGED ON COMMIT PRESERVE ROWS" through JDBC connection finished successfully

DBWSQWR 2014-01-09 00:02:23
Execution of Java class com.ibm.datatools.etl.dataflow.baselib.runtimeunits.JDBCInsert finished successfully.

DBWSQWR 2014-01-09 00:02:23
SQW03201I: com.ibm.datatools.etl.dataflow.baselib.runtimeunits.JDBCInsert task completed successfully

看的出JDBCInsert成功执行,请高手解释下JDBCInsert是什么,为什么会错?希望有做过这方面的前辈指点下WAS处理postgresql  
参与5

4 同行回答

bhs19909 bhs19909 其它 深客信息
NOT LOGGED ON COMMIT PRESERVE ROWS" through JDBC connection finished successfully这是你的错误提示。jdbcinsert是一个插件,链接数据库和插入数据用的。将前台的数据传输到数据库中。(链接数据库和前台数据的)...显示全部
NOT LOGGED ON COMMIT PRESERVE ROWS" through JDBC connection finished successfully
这是你的错误提示。
jdbcinsert是一个插件,链接数据库和插入数据用的。将前台的数据传输到数据库中。(链接数据库和前台数据的) 收起
IT其它 · 2014-05-26
浏览696
bhs19909 bhs19909 其它 深客信息
你的错误提示就是这个的显示全部
你的错误提示就是这个的 收起
IT其它 · 2014-05-26
浏览646
bhs19909 bhs19909 其它 深客信息
你是不是那些字段有保护,但是没有登录就添加数据了显示全部
你是不是那些字段有保护,但是没有登录就添加数据了 收起
IT其它 · 2014-05-26
浏览674
xylhldy xylhldy 系统工程师 成都麦柯
这里有个帖子,不知道对你有帮助没http://alvinalexander.com/java/edu/pj/jdbc/jdbc0002显示全部
这里有个帖子,不知道对你有帮助没
http://alvinalexander.com/java/edu/pj/jdbc/jdbc0002 收起
系统集成 · 2014-05-23
浏览697

提问者

sapper
软件开发工程师 杭州银行
评论2

相关问题

问题状态

  • 发布时间:2014-01-15
  • 关注会员:1 人
  • 问题浏览:3571
  • 最近回答:2014-05-26
  • X社区推广