gpt4 book ai didi

java - 数据库中的总 session 数与 websphere 连接池中设置的不一样

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:11 26 4
gpt4 key购买 nike

我的应用程序在过去几天中遇到了一个问题,该应用程序现在已经运行了几个月:我已在 WebSphere Application Server 中配置连接池,最大连接数为 20,最小连接数为 1,获取时间为 180 秒,未使用时间为 1800 秒,数据源(oracle)中的老化超时为 0 秒。在过去的几天里,我们发现一个问题,早上我们突然开始在应用程序中超时,然后出现奇怪的行为,我们没有得到任何异常,但用于运行过程的可调用语句对所有执行返回零结果,即使数据存在于数据库中。

问题开始发生时,系统输出或系统错误日志中没有异常。我们能看到的唯一异常是一个过时连接异常和一个数据库 session 终止异常

java.sql.SQLRecoverableException: ORA-00028: your session has been killed 
ORA-00028: your session has been killed

但这发生在应用程序超时前 6 小时。

另外,在检查数据库中的连接数时,我们可以看到只有 9 个 session ,尽管我们已将连接池配置为 20。使用下面的查询来检查 TOTAL_CON:

SELECT s.machine
, s.username
, count(decode(s.STATUS, 'ACTIVE', 1)) as active_con
, count(decode(s.STATUS, 'INACTIVE', 1)) as inactive_con
, count(*) as total_con
FROM v$session s
WHERE type <> 'BACKGROUND'
GROUP BY username, machine
ORDER BY total_con DESC;

我们重新启动了 WAS 服务器,解决了该问题,并将数据库中的 session 数增加到 20。

所以我有两个问题:1. 什么会导致应用程序端出现 ORA-00028,因为数据库团队表示他们这边没有 session 被终止。2. 数据库中的总 session 数小于数据源中配置的最大连接数是否正常,如果不是,可能会导致此问题。

最佳答案

  1. what can cause ORA-00028 from application side as database team says no session was killed from their side.

我建议检查您网络上的所有防火墙设置。由于此问题发生在凌晨 3 点,此时流量最少,因此该问题很可能是由单个连接停留一段时间然后因外部超时(例如防火墙空闲超时)而终止造成的。

在评论中,您说您的 TCP 保持 Activity 时间设置为 1800 秒(30 分钟),因此我们假设 20 分钟后 TCP 连接变坏。

您的配置设置为:

  • 丢弃 1800 秒(30 分钟)内未使用的连接
  • 每 180 秒(3 分钟)运行一次池维护
  • 单个连接可以打开无限长的时间,因为老化超时为 0

通过这些设置,单个连接可能会被 websphere 池化超过 20 分钟,因此我建议将老化超时设置为大约 900 秒(15 分钟),这样单个连接的池化时间不会超过 20 分钟。

请注意,websphere 可以池化连接的总时间为:

aged_timeout + reap_time = max_pooled_connection_time

并且您始终希望firewall_timeout > max_pooled_connection_time

  1. Is it normal that no of total sessions in database are less than no of max connections configured in datasource and if not what can cause this.

是的,这是完全正常的,也是理想的。 WebSphere 将根据需要对连接进行池化,直至达到最大池大小。一旦您持续达到最大池大小,性能瓶颈就会开始出现。

关于java - 数据库中的总 session 数与 websphere 连接池中设置的不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41378030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com