使用带有SQL Azure数据库的JDBC连接池给出“分配连接时出错”

问题描述:

我有一个Java EE web应用程序部署在我想在Windows Azure上托管的glassfish 3.1.1上。使用带有SQL Azure数据库的JDBC连接池给出“分配连接时出错”

应用程序使用hibernate作为jpa。


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

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

初始和最小池尺寸:8个连接

最大池尺寸:32个联系

普尔调整产品数量:2个连接

空闲超时:300秒

最大等待时间:60000毫秒


附加属性:

用户:用户@服务器

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

密码:为mypass

的databaseName:MYDATABASE


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

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

如果应用程序使用后立即启动服务器的数据库中,一切顺利的话当应用程序试图在空闲一段时间后使用的数据库(它可以检索/存储数据)

,我得到这样的:

link to exception

如果我冲(从GlassFish管理)的连接它再次开始工作,直到它闲置了一段时间。

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

我已经google'd这个,它似乎有一些关于空闲连接的azure数据库服务器,但我找不到解决方案的问题。SQL Azure的5分钟后关闭空闲连接:

我使用PostgreSQL

一个可能的原因造成这个问题的时候从来没有过这个问题。要解决此问题,您必须关闭连接,并创建一个新的连接。通常,建议在连接到其他数据库时关闭空闲连接。这有助于减少系统资源的使用。