事务X尝试通过JDBC访问事务Y创建的对象

时间:2014-07-28 18:16:47

标签: java jdbc sybase-iq

我有与Sybase IQ对话的jdbc代码。其中一个线程是将数据加载/更新到一个Sybase IQ表中,例如t1。在第一次完成加载/更新数据后,其他线程将尝试在表t1上触发SQL查询。

Write thread:
Create table t1, load/update data into t1, commit to t1.

Read thread(s):
Read select query from t1

我正在使用JDBC,我收到here

中提到的以下错误
Transaction 156593 attempted to access an object created by transaction 156608.
-- (db_txnInfo.cxx 690)
Sybase error code=21, SQLState=”QDA11”

我不确定每次加载后我提交的问题在哪里。每个线程使用不同的连接读取线程仅触发select查询然后问题在哪里我如何调试?请指导。我是Sybase IQ和JDBC的新手。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可能需要在第二个线程中发出提交。或者对于只读线程集自动提交。

我很好奇,错误发生在第一次选择第二个帖子中,还是只发生 第一次选择?

在IQ中,即使是select语句也可以生成一个事务(它应该真正处理得更好,因为IQ应该创建"快照版本"为事务提供关于数据的纵向一致视图一个交易的生命......顺便说一下,智商有一些F $%@#$%ng丑疣)