探查 JDBC Multipool 问题
负载平衡算法 采用负载平衡算法的 MultiPool 以 Round Robin 方式提供其连接,各连接在为其定义的所有 JDBC 连接池之间均匀分布。如果对某个连接的连接测试失败,MultiPool 会尝试从列表中的下一个池中提供连接。以下位置提供了更多详细信息:http://e-docs.bea.com/wls/docs81/jdbc/programming.html#1023962 (English)。 因此,负载平衡既具有在若干个池间分配负载的长处,又能够在其中一个池不可用时提供一定程度的 Failover 能力。不过,如果采用负载平衡算法,将无法控制 MultiPool 响应来自其列表中不同池的连接请求的顺序及其 Failover 的目标池。 MultiPool 的限制 若要为 MultiPool 启用高可用性算法,需要考虑一些限制和前提条件。http://e-docs.bea.com/wls/docs81/jdbc/programming.html#1068130 (English) 中提供了详细信息。下面是对上述要点的总结:
|
java.sql.SQLException: Pool connect failed : weblogic.common.ResourceException: testMultiPool(myMultiPool): weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool myMultiPool to allocate to applications, please increase the size of the pool and retry.. at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:160) |