Chinaunix
标题:
特急:cli程序有时无法rollback
[打印本页]
作者:
gzbill
时间:
2004-06-29 21:44
标题:
特急:cli程序有时无法rollback
各位大虾,请指教:
我有一服务端的帐务处理程序,用CLI编写,事务处理方式,大概如下:
ret1=Sqltransact(SQL_NULL_ENV,hdbc_db1,SQL_COMMIT);
ret2=Sqlsetconnectoption (hdbc_db1,
SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF);
ret = 0;
ret = insert_table1(hstmt_db1,...);
if ( !ret )
ret = update_table2(hstmt_db1,...);
if (ret)
{
ret3=Sqltransact(SQL_NULL_ENV,hdbc_db1,SQL_ROLLBACK);
ret4=Sqlsetconnectoption (hdbc_db1,
SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_ON);
}
else
{
ret5=Sqltransact(SQL_NULL_ENV,hdbc_db1,SQL_COMMIT);
ret6=Sqlsetconnectoption (hdbc_db1,
SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_ON);
}
其中ROLLBACK时大部分时间没有问题,但是偶尔ret3返回-1,
导致数据不一致,严重影响帐务。
======
烦恼的人!
======
作者:
wupeng
时间:
2004-06-30 23:18
提示:
作者被禁止或删除 内容自动屏蔽
作者:
gzbill
时间:
2004-07-01 10:30
标题:
特急:cli程序有时无法rollback
谢谢回复!
大部分是,但有时update也不能rollbak.
是不是CLI函数有BUG?
作者:
wupeng
时间:
2004-07-01 15:20
提示:
作者被禁止或删除 内容自动屏蔽
作者:
gzbill
时间:
2004-07-01 16:56
标题:
特急:cli程序有时无法rollback
好像是ret4吧。
因为那些cli函数被公司封装为公共函数,不敢动。
你碰到过SQLTransact函数rollback失败的吗?
DB2好像有这方面的补丁程序,不知Informix有没有?
作者:
wupeng
时间:
2004-07-01 17:10
提示:
作者被禁止或删除 内容自动屏蔽
作者:
gzbill
时间:
2004-07-02 22:01
标题:
特急:cli程序有时无法rollback
老大,CLI中好像没有BEGIN WORK之类的,我只在SPL和dbaccess中用过。上面的那些就是用来模拟他们的功能,公司已经将其封装成begin_tran的格式,提供事务处理的功能。
我主要是想了解SQLTransact函数何时会rollback不成功?当然
如果之前调用SQLDisconnect肯定会出错,但我的程序只是在
退出前才会使用这些来清理,其它地方无法找到连接句炳被K掉的
语句。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2