【问题标题】:WebSphere JMS connection pool configurationWebSphere JMS 连接池配置
【发布时间】:2013-10-22 03:36:50
【问题描述】:

当我们在 WebSphere [WAS] 中配置 JMS 连接工厂时,连接池设置的默认值如下

连接超时:180 秒 未使用超时:1800 秒

考虑到应用程序有一段时间[>180秒]没有被使用,这种配置会不会总是导致池中残留一个陈旧的连接对象,访问的应用程序会抛出异常?

我们不应该一直确保未使用的超时值小于连接超时值吗?

【问题讨论】:

    标签: jms websphere


    【解决方案1】:

    我不认为未使用超时与连接超时有任何关系。如果 Unused 超时太低,工厂必须不断关闭和打开连接,但这仅适用于 Free 池中的连接,而不适用于 Active 池中的连接。不过,您要避免重复打开/关闭连接,因为这会影响性能。

    未使用超时

    连接池属性 Unused 超时定义了 JMS 连接在断开连接之前将在空闲池中停留多长时间。此属性的默认值为 1800 秒(30 分钟)。基本上,如果一个连接在空闲池中处于休眠状态超过 1800 秒,它将被断开。

    连接超时

    如果从此工厂创建的连接数已经等于工厂的最大连接数属性,则应用程序等待来自 空闲 池的连接的时间。如果在这 3 分钟内将连接放回空闲池中,连接管理器会立即将其再次从池中取出并将其传递给等待的应用程序。但是,如果超时期限已过,则会引发 ConnectionWaitTimeoutException。

    所以连接超时基本上是您的应用程序等待下一个可用连接的时间,假设工厂无法创建新连接,因为它已被最大化。如果您发现自己达到了这个上限,请增加工厂的 Maximum 连接属性。

    【讨论】:

    • 我观察到的是 - 当 WebSphere MQ 被回收,并且在一段时间 [>1800 秒] 后应用程序尝试访问连接工厂 - 出现连接超时异常。每次连续命中都会导致相同的异常。这是不正常的吗?
    • 我不知道;这似乎是一个单独的问题,不属于您的原始问题。无论如何,希望这些信息对您有所帮助!
    猜你喜欢
    • 2012-10-02
    • 2016-09-26
    • 1970-01-01
    • 2014-05-29
    • 2013-05-03
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多