如何在Java只读事务中重现“ORA-08177:无法序列化此事务的访问”

时间:2015-09-08 18:32:54

标签: java oracle transactions

我有以下java代码来设置oracle连接:

private static Connection createConnection() throws SQLException, PublishException { 
  DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
  String url = PublishingProperties.getDBConnString(); 
  Connection conn = DriverManager.getConnection(url,PublishingProperties.getDBUser(),PublishingProperties.getDBPassword()); 
  Statement stmt = conn.createStatement(); 
  stmt.exec("alter session set currenct_schema=abc"); 
  conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); 
  conn.setAutoCommit(false); 
  conn.setReadOnly(true); 
  return conn; 
} 

通过定义上面的连接,我的代码将从oracle db中选择一些视图/表,并将视图/表转储到xml文件中。请注意,该事务设置为只读。但是如果我运行java代码,我会一直得到ora-08177异常。我尝试在程序运行时更新相关表但无法重现相同的错误。我基本上不知道是什么导致了异常,因为我的事务是只读的。请帮忙。

0 个答案:

没有答案