1

我在 Struts 2 中有一个应用程序,它连接到 MySQL 数据库,我正在使用DBConnectionBroker数据库池 -

在插入操作后执行选择时,我遇到了如下奇怪的问题 -

  1. 我在表中插入并选择一条记录(在主键 id 上)并收到一条成功消息,但在执行刷新之前不会显示结果。

  2. 当我成功更新记录时,不会反映当前更改,而是显示以前的值。

  3. 多次刷新每次都显示不同的值(即旧的和新的变化)

以下是我创建的 logs.log 文件详细信息DBConnectionBroker

==================================================== ============================= 启动 DbConnectionBroker 版本 1.0.13:

dbDriver = com.mysql.jdbc.Driver

dbServer = jdbc:mysql://localhost:3306/dev01?profileSQL=true

dbLogin = esmdev

日志文件 = c:\DBlogs.log

最小连接数 = 1

最大连接数 = 20

总刷新间隔 = 1.0 天

日志附加 = 假

maxCheckoutSeconds = 60

调试级别 = 2


IST 2013 年 8 月 21 日星期三 20:45:51 打开连接 0 com.mysql.jdbc.JDBC4Connection@1ff5c98:

IST 2013 年 8 月 21 日星期三 20:45:52 打开连接 1 com.mysql.jdbc.JDBC4Connection@a6e0a9:

-----> 连接用尽!将在循环 1 中等待并重试

==================================================== ===============================

我通过在我的 dburl 上设置 profileSQL=true 进行的初始调试/分析在我的 Eclipse IDE 控制台中显示以下日志

==================================================== ============================= 持续时间:1 毫秒,连接 ID:29,语句 ID:14,结果集 ID: 16

持续时间:2 毫秒,连接 ID:28,语句 ID:15,结果集 ID:17

==================================================== ==============================

我发现这里有趣的部分是 connection-id - 对于同一个查询,我可以看到两个不同的 ID(最小连接为 1),但结果集不同。

当我在调试模式下启动 tomcat 并设置断点以观察其上方的少数对象时,我还观察到一件事,这会导致一些延迟/减慢执行速度,并且只显示一个连接 ID,并且由于延迟,一切似乎都可以正常工作。

尽管我在执行查询后释放了连接,但我对为什么创建新连接感到困惑。

4

0 回答 0