2012-03-06 65 views
1

我使用的连接使用以下值汇集:连接池澄清

最小连接= 1,清除策略=整个池,年龄超时= 0

我有以下查询:

  1. 如果我有5个连接并且要清除连接,那么它们中的所有5个都将被清除,或者1个连接仍将保持(因为最小连接设置为1)?
  2. 如果要维持最小连接,那么将选择哪个连接,即使用最新,最旧或其他连接?
  3. 有没有什么方法可以显式地将连接逻辑地返回到池中(比如使用connection.close()或类似的语句)?
  4. 有没有办法找出我正在使用的连接池的类型?
+1

“有没有办法找出我正在使用的连接池类型?” - 在我们能够回答其他问题之前,您需要告诉我们。 – skaffman 2012-03-06 17:44:33

+0

你能指导我吗?我如何做到这一点 – user1252868 2012-03-08 06:10:04

回答

1
  1. 清除策略通常涉及涉及失效连接。 “清除池”意味着当检测到连接断开时,清除池,而不仅仅是连接断开的 连接。如果所有连接都被清除,它将清空池,然后创建一个新的连接。任何等待连接的人都会阻塞,直到在池中创建连接。
  2. 没有人在堆栈溢出可能可以回答这个问题......但是它真的很重要吗?为什么你会想要 “知道”这个?
  3. 是的,从您的方法返回 结束您当前的事务,并让它提交或回滚。如果您使用XA (全球)交易,则必须完成全球 交易。
  4. 定义“类型”?我们有什么选择?

编辑4: 如果你在一个应用程序容器(它听起来像你),你不会定义一个“类型”。容器提供它自己的实现。例如,IBM Websphere提供IBM专有的IBM池化实施。 (它也碰巧吸)

+0

“类型”在DBCP,C3PO等 – user1252868 2012-03-08 06:07:19

+0

感谢您的答案。 – user1252868 2012-03-12 05:27:48

+0

3.是的,通过从你的方法返回并结束你的当前事务,并让它提交或回滚。如果您使用XA(全局)事务,则必须完成全局事务。 – user1252868 2012-03-12 05:28:18