使用带有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”设置为更新) - 所以没有问题数据库连接/参数。
如果应用程序使用后立即启动服务器的数据库中,一切顺利的话当应用程序试图在空闲一段时间后使用的数据库(它可以检索/存储数据)
,我得到这样的:
如果我冲(从GlassFish管理)的连接它再次开始工作,直到它闲置了一段时间。
所以基本上,只要它执行数据库操作一切正常,但如果一段时间没有数据库操作,下一个数据库操作将导致该异常。
我已经google'd这个,它似乎有一些关于空闲连接的azure数据库服务器,但我找不到解决方案的问题。SQL Azure的5分钟后关闭空闲连接:
我使用PostgreSQL
一个可能的原因造成这个问题的时候从来没有过这个问题。要解决此问题,您必须关闭连接,并创建一个新的连接。通常,建议在连接到其他数据库时关闭空闲连接。这有助于减少系统资源的使用。