Cause: java.sql.SQLException: ORA-24757: 重复的事务处理标识
ORA-02063: 紧接着 line
....
今天应用管理员告诉我一张报表无法展现数据,执行后报错。
由于是单纯的用JDBC链接取数,以为是ORACLE故障,登录上进行查看后发现,alert日志正常,未报错。
查看详细的取数语句发现取数SQL取自一张试图,视图的创建语句中使用了dblink链接。
查找到远端数据库,联系远端数据库管理员后alert日志同样未见异常。
官方文档中说明如下:
ORA-24757: duplicate transaction identifier
Message:
ORA-24757: duplicate transaction identifier
Cause:
An attempt was made to start a new transaction with an identifier already in use by an existing transaction.
Action:
Verify that the identifier is not in use.
Message:
ORA-24757: duplicate transaction identifier
Cause:
An attempt was made to start a new transaction with an identifier already in use by an existing transaction.
Action:
Verify that the identifier is not in use.
想来应该是dblink卡住了或者异常提交导致回话异常,通知远端数据库管理员kill掉所有与我们主机通信的进程后,查看应用正常。
处理方法,此时应该是dblink卡住了,如果找到相应的进程 杀掉进程即可。
dblink连接的时候注意需要commit正常结束进程。