当前位置: 首页 > 知识库问答 >
问题:

服务器如何/何时知道连接已过时?

衡建中
2023-03-14

根据IBM文档:清除策略指定在检测到陈旧连接或致命连接错误时如何清除连接。有效值为EntirePool和FailingConnectionOnly。

问题:服务器如何/何时知道连接已过时?它是否会尽快(立即)清洗池任何连接都会过时,或者按照收获时间发生?

假设收割时间为180秒。假设收割线程上次在下午3:05运行,连接在下午3:06失效,服务器是在下午3:06自己清除池,还是只在下午3:08清除池?在3:06和3:08之间,客户端是否存在获取过时连接对象的风险?

我指的IBM文件是:https://www.ibm.com/support/knowledgecenter/en/ssw_i5_54/rzamy/50/admin/help/udat_conpoolset.html

共有1个答案

危宜
2023-03-14

通过以下方式识别陈旧连接:

  1. 执行JDBC操作,引发SQLRecoverableExc0019或SQLNon瞬态连接异常,或具有应用程序服务器内置知识的SQL状态或错误代码的通用SQLExc0019。有关SQL状态和错误代码的特定列表,请参阅数据库助手中的SQLState映射及其每个数据库的各种子类。
  2. JDBC驱动程序的ConnectionEventListener.connection错误发生向应用程序服务器发出信号,表示连接已损坏。

当应用程序服务器得知某个连接已损坏时,它不会将该连接返回到池。共享范围之外的后续请求永远不会获得相同的连接。

清除策略确定应用程序服务器在发生陈旧连接时对池中的其他连接执行的操作。应用程序服务器可以主动清除池中的所有连接(EntirePool选项),也可以将其他连接留在池中(FailingConnectionOnly选项),或者在允许分发连接之前检查池中的所有连接(ValidateAllConnections选项)。

请注意,上面的属性值是针对WebSphere Application Server Liberty的。如果使用传统的,则ValidateAllConnections将作为FailingConse Only加上defaultPretestOptimizationOveride=true的组合来完成。

 类似资料:
  • 我正在制作满足以下条件的Netty服务器: null 在我的情况下,既没有发生“通道不活动”事件,也没有发生“连接被对等方重置”异常。 这是我使用的Netty测试客户端代码的部分。 如何在要回复时注意到断开连接?

  • 现在,paho mqtt订阅服务器如何知道哪个发布服务器没有向mosquitto Broker发送数据?

  • 此问题仅适用于HTTPS请求。 让我们将问题分为 3 个方面。 起源。这是用户发送HTTPS请求 代理。这将处理请求,将其转发到远程设备,反之亦然 遥控器。这是请求应该到达的服务器 当您通过代理发出HTTPS请求时,会发生以下情况: > Origin使用HTTP发送(未加密): CONNECT remote.url:443 HTTP/1.1 ... 代理回复: HTTP/1.1 200连接已建立

  • Java中测试MySQL连接是否被服务器超时/保持连接活动的标准方法是什么?(…) 一些文章建议定期ping以保持连接。我可以开始一个独立的线程来做这个,好的。然而,是否有一些简单的测试,我可以执行,并重新连接,只有在必要的时候?或者定期ping是最好的表现方式吗? 声明“只有在调用方法Connection.close后调用该方法时,才能保证该方法返回true”,我想这对我来说不起作用。 我可以在

  • 这一完整代码可从以下网址获得:https://github . com/Naresh-Chaurasia/API-micro services-Kafka/tree/master/micro services-CQRS-SAGA-Kafka/discovery service 我有以下Spring引导设置。 客户端/邮递员正在调用 API 网关(它也充当负载均衡器)。 API 网关和产品是 Spr

  • 我希望netty服务器A在启动时连接netty服务器B,听起来像代理,所以我尝试了netty代理示例,但它只是在中启动netty客户端,只有一个新的连接处于活动状态,客户端才会被创建。当服务器A启动时,我需要通知服务器B做一些“注册”的事情,我该怎么办?