【发布时间】:2011-10-12 03:39:30
【问题描述】:
我有一个用 gwt 编写的 Web 应用程序,我在后端使用 PostgreSQL 数据库。当我在服务器上创建一个新会话时,我设置了 c3p0 并获得了一个 jdbc 连接:
ComboPooledDataSource source = new ComboPooledDataSource();
Properties connectionProps = new Properties();
connectionProps.put("user", "username");
connectionProps.put("password", "password");
source.setProperties(connectionProps);
source.setJdbcUrl("some jdbc url that works");
当我关闭服务器上的会话时,我关闭了 ComboPooledDataSource。
但是......当我在 GWT 开发模式下按下黄色的“重新加载 Web 服务器”按钮并刷新我的页面时,我收到以下警告,以及一系列后续错误阻止我获取数据库连接:
警告:C3P0Registry mbean 已注册。这可能意味着使用 c3p0 的应用程序已取消部署,但并非所有 PooledDataSources 在取消部署之前都已关闭。随着时间的推移,这可能会导致资源泄漏。请注意关闭所有 PooledDataSources。
我假设这意味着重新加载 Web 服务器并没有关闭我创建的 ComboPooledDataSource(可能是一个安全的假设)。有什么办法可以让它这样做,以便在重新加载 Web 服务器后获得连接?
【问题讨论】:
标签: java gwt connection-pooling c3p0