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

标签 java jdbc sap-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

我收到 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 的新手。

最佳答案

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

我很好奇,错误是发生在第二个线程的第一个选择上,还是仅发生在第一个选择之后

在 IQ 中,即使是 select 语句也可以生成事务(它确实应该处理得更好一些,因为 IQ 应该创建“快照版本”,以便为事务提供事务生命周期内数据的日志一致 View ) ...顺便说一句,智商有一些 F$%@#$%ng 丑陋的疣)

关于java - 事务 X 尝试通过 JDBC 访问事务 Y 创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25001655/

相关文章:

java - 如何从使用 Java 的客户端在 Sybase IQ 中加载表?

java - 使用 jconn3.jar 在 java 代码中使用 Sybase LOAD TABLE USING CLIENT FILE 失败

java - 在 Java 类型参数中,<? extends E> 仅表示严格的子类型?还是 E 也足够?

java - 如何正确关闭使用 Locale 的 Java 扫描仪

java - Freetts 不适用于外部扬声器

java - Hibernate 3.5.1、JPA2.0 和 MySQL - 2 个差异数据库/同一服务器内的替代行为

java - 将 Postgres 连接与 Java 代码相关联

java - Play Framework 2.4 (Java) + Hibernate + JUnit : org. hibernate.engine.jdbc.spi.SqlExceptionHelper - 池已关闭

java - java中如何为一个属性设置多个值

java - 由于文件权限,文件操作失败,hos_clientfileio.cxx 142