我有同樣的問題,並設法通過我的ServletContextListener
添加以下代碼來解決這個問題:
import oracle.ucp.admin.UniversalConnectionPoolManager;
import oracle.ucp.admin.UniversalConnectionPoolManagerImpl;
public class MyContextListener implements ServletContextListener {
/* ... */
@Override
public void contextDestroyed(ServletContextEvent sce) {
// Your shutdown sequence here
/* ... */
// Shutdown UCP if present, to avoid warnings about thread leaks
UniversalConnectionPoolManager ucpManager = UniversalConnectionPoolManagerImpl.getUniversalConnectionPoolManager();
if (ucpManager != null) {
String[] poolNames = ucpManager.getConnectionPoolNames();
if (poolNames != null) {
for (String poolName : poolNames) {
ucpManager.destroyConnectionPool(poolName);
}
}
}
}
}
參考:請參閱「控制連接的生命週期」甲骨文UCP文檔中(HTTP:/ /docs.oracle.com/cd/E11882_01/java.112/e12265/manage.htm#BABFBFDE)。 – ochedru 2013-08-28 13:07:16