java - 内部错误 : Unknown or unimplemented accessor type: 9

标签 java multithreading oracle jdbc oracle11g

我们正在运行带有连接池的 tomcat 服务器,最近随机出现此错误。当我们随机运行一个包中的存储过程时,就会发生这种情况。我已经尝试自己对问题进行一些研究,这导致了这个 Java 类的来源,我认为错误是从这里转储的:http://ora-jdbc-source.googlecode.com/svn/trunk/OracleJDBC/src/oracle/jdbc/driver/T2CCallableStatement.java

我的问题是:9 号访问器(accessor)类型是什么?它没有在我提供的示例类中定义,但是编写该类的人显然必须有一个访问器列表及其相应的编号,如果可能的话我想看看,但一直找不到。

我还在错误日志中发现了其他访问器类型编号,例如:6 也出现了。

更新:我找到了一个详细介绍数据类型及其代码值的页面,但是数据类型 6 和 9 显然不存在,这使得这个错误更加奇怪: https://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci03typ.htm#LNOCI030

最佳答案

这个问题似乎是在 Java 代码中存在并发问题时引起的。当我们的程序运行线程池时,我们遇到了上述问题,并且程序员错误地认为在每个线程中仅对 SELECT 语句使用相同的连接是可以的(并且根据 Java Connection 类,技术上应该是可以的)。我想这只是表明 Oracle DB 的 Java Connection jar 不是线程安全的。

关于java - 内部错误 : Unknown or unimplemented accessor type: 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26872164/

相关文章:

c++ - 编写线程安全的容器

android - 什么时候使用在新线程中创建的处理程序是安全的?

sql - 没有周末和节假日的两个日期之间的差异 Sql 查询 ORACLE

java - 如何在 Java 中不断提示正确的用户输入?

java - 如何在自定义安全领域 (Glassfish) 中使用自定义委托(delegate)人?

java - 如何读取用户输入的字符?

c# - 僵局澄清?

java - 如何在java中更新ComBobox的值?我正在使用 Netbeans

sql - 加密 SQL 中的字符串(可能是 ORACLE PL SQL)。凯撒密码

sql - SELECT 是否在 PL/SQL 中启动事务