嘿我正在使用Glassfish开源v4,我遇到了一个奇怪的问题。
我在管理控制台中为Oracle 11g定义了一个JDBC连接池,并设置了:
Pool Settings
初始和最小池大小:500
最大泳池尺寸: 1000
池调整大小数量::750
我已为此连接池创建了特定用户。然而,有时当我检查数据库中打开的连接时,我发现有超过1000个(最多我看到的是1440)
当发生这种情况时,任何查询尝试都会失败,有时会出现OutOfMemory异常,有些显示http线程中断,有些则根本不显示任何日志,只需要很长时间。
我想知道的是,Glassfish如何开启更多连接然后我将其定义为?
答案 0 :(得分:0)
尝试比较appl上netstat的输出。服务器和数据库服务器端。你可能有一些“悬空”的联系。还尝试在Oracle中找到有关DCD(死连接检测)的一些文档。
几年前,我看到Java应用服务器认为连接已经死亡的情况,因为它几分钟没有响应。所以这个连接放在一些死连接列表上,并创建了一个新连接。
也可能存在一些网络问题 - 例如appl和db server之间存在FW。 当TCP连接在一小时内没有激活时,它会在一侧切换,但是DB服务器不知道这一点。
如何调查的常用方法是