5

我有一个基于 ActiveJDBC 构建的用于数据库交互的应用程序。我现在正在对这件事进行多线程处理,但遇到了几个问题。

每当我尝试从数据库中获取对象时,都会收到以下异常:Cannot open a new connection because existing connection is still on current thread, dbName: default, connection instance: com.mchange.v2.c3p0.impl.NewProxyConnection@75412c2f. This might indicate a logical error in your application.

注意它说com.mchange.v2.c3p0.impl.NewProxyConnection。之所以如此,是因为我已经尝试过使用 DataSources 但也没有。有人可以指出我的轨迹或建议 Active JDBC 的替代方案(线程安全)吗?

谢谢。

4

1 回答 1

4

您收到的错误消息非常具有解释性。连接未关闭。ActiveJDBC 当然是线程安全的,因为我们用它构建了很多项目。然而,ActiveJDBC 使用 Base.open() 方法将连接附加到当前线程,并使用 Base.close() 方法将其从该线程中删除。我想你忘了做后者。请参阅此内容以了解更多信息:http: //javalite.io/database_connection_management

于 2014-04-23T19:14:01.510 回答