0

我在 glassfish 3.1.1 上部署了一个 Java EE Web 应用程序,我想在 Windows Azure 上托管它。

该应用程序使用休眠作为 jpa。


我为 Azure 数据库定义了一个 JDBC 连接池。

(基本上,这些是默认值)

初始和最小池大小:8 个连接

最大池大小:32 个连接

池调整数量:2 个连接

空闲超时:300 秒

最大等待时间:60000 毫秒


附加属性:

用户:user@serverName

服务器名称:serverName.database.windows.net

密码:myPass

数据库名称:我的数据库


如果我从 glassfish 界面 ping 它可以工作,那么我提供的属性是可以的。

设置新的 jdbc 连接池(用于 azure 的连接池)导致在 sql azure 数据库上创建表(我将“hibernate.hbm2ddl.auto”设置为更新) - 所以数据库连接没有问题/参数。

如果应用程序在服务器启动后立即使用数据库,一切顺利(它可以检索/存储数据)

当应用程序在空闲一段时间后尝试使用数据库时,我得到这个:

异常链接

如果我刷新连接(来自 glassfish 管理员),它会再次开始工作,直到它闲置一段时间。

所以基本上,只要它执行数据库操作一切正常,但如果有一段时间没有数据库操作,下一个 db 操作就会导致该异常。

我已经用谷歌搜索了这个,它似乎与关闭空闲连接的 azure 数据库服务器有关,但我找不到该问题的解决方案。

我在使用 PostgreSql 时从未遇到过这个问题

4

1 回答 1

1

导致此问题的一个可能原因是:SQL Azure 在 5 分钟后关闭空闲连接。要解决此问题,您必须关闭连接,然后创建一个新连接。一般来说,即使连接到其他数据库,也建议关闭空闲连接。这有助于减少系统资源的使用。

于 2012-04-26T06:35:17.307 回答