0

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

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

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

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

4

1 回答 1

0

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

未使用超时

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

连接超时

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

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

于 2013-10-14T15:01:58.500 回答