Microsoft JDBC 驱动程序在 Weblogic 数据源池中抛出 ClassCastException

Microsoft JDBC driver ClassCastException thrown in Weblogic Datasource pool

这可能是我使用 Weblogic 以来遇到的最奇怪的错误,我无法解决。

目前在我们的 Live 服务器上,我们的 Weblogic 数据源遇到了问题。它不会一直发生,但每次发生时,我都必须重新启动整个服务器才能解决它。当然,这是暂时的,但我正在努力找出根本原因。

错误是:

java.lang.ClassCastException: com.microsoft.sqlserver.jdbc.SQLServerConnection cannot be cast to com.microsoft.sqlserver.jdbc.SQLServerConnection at weblogic.jdbc.wrapper.PoolConnection_com_microsoft_sqlserver_jdbc_SQLServerConnection.getAutoCommit(Unknown Source) at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:68) at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:162) at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1471) at org.greenpole.hibernate.query.HibernateDataAccess.startOperation(HibernateDataAccess.java:43) at org.greenpole.hibernate.threads.dividend.retrieval.DividendWarrantNoMappingWorker_Thread.runner(DividendWarrantNoMappingWorker_Thread.java:51) at org.greenpole.hibernate.threads.dividend.retrieval.DividendWarrantNoMappingWorker_Thread.call(DividendWarrantNoMappingWorker_Thread.java:42) at org.greenpole.hibernate.threads.dividend.retrieval.DividendWarrantNoMappingWorker_Thread.call(DividendWarrantNoMappingWorker_Thread.java:28) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

我很困惑。 SQLServerConnection 突然无法转换为 SQLServerConnection 是怎么回事?它们不是一回事吗?

编辑:

所以,我重置了数据源并纠正了错误。但是我仍然很困惑为什么它首先发生了?另外,这不是第一次发生。所以我的数据源在某个时候发生了一些事情,但它会是什么?

数据源重置成功了。然而,问题的原因仍然是个谜。从那以后再也没有发生过。