Task #8026
Portal reaches the maximum capacity in a pool
50%
Description
After portal runs for a while, the ci-logon can't work since it reaches the maximum capacity of a pool. We have to restart tomcat.
type Exception report
message An exception occurred processing JSP page /setup.jsp at line 15
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /setup.jsp at line 15
12: <%
13:
14: // get the certificate, if we have it
15: X509Certificate certificate = PortalCertificateManager.getInstance().getCertificate(request);
16: PrivateKey key = PortalCertificateManager.getInstance().getPrivateKey(request);
17:
18: // if we don't have a certificate, then we aren't logged in
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
com.hazelcast.web.WebFilter.doFilter(WebFilter.java:598)
root cause
edu.uiuc.ncsa.security.core.util.PoolException: Error: Maximum capacity of 1000 elements has been exceeded
edu.uiuc.ncsa.security.core.util.Pool.realCreate(Pool.java:75)
edu.uiuc.ncsa.security.core.util.Pool.pop(Pool.java:63)
edu.uiuc.ncsa.security.storage.sql.SQLDatabase.getConnection(SQLDatabase.java:23)
edu.uiuc.ncsa.security.storage.sql.SQLStore.get(SQLStore.java:194)
edu.uiuc.ncsa.security.storage.sql.SQLStore.get(SQLStore.java:35)
edu.uiuc.ncsa.myproxy.oa4mp.client.storage.AssetStoreUtil.get(AssetStoreUtil.java:43)
edu.uiuc.ncsa.myproxy.oa4mp.client.storage.SQLAssetStore.get(SQLAssetStore.java:34)
org.dataone.portal.PortalCertificateManager.getCredentials(PortalCertificateManager.java:196)
org.dataone.portal.PortalCertificateManager.getCredentials(PortalCertificateManager.java:235)
org.dataone.portal.PortalCertificateManager.getCertificate(PortalCertificateManager.java:157)
org.apache.jsp.account_jsp._jspService(account_jsp.java:100)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
com.hazelcast.web.WebFilter.doFilter(WebFilter.java:598)
History
#1 Updated by Jing Tao almost 8 years ago
It seems the issue was fixed after 3.3:
https://gateways.atlassian.net/browse/OAUTH-200
#2 Updated by Jing Tao almost 8 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 30
Base on the suggestion from CIlog folks, I tried the in-memory configuration to avoid the database connection. However, the redirection doesn't work very well.
I tried the file system configuration, it worked great.
The code was committed to both trunk and 2.3 branch.
#3 Updated by Jing Tao almost 8 years ago
If we satisfy the file system storage solution, we can get rid of hazelcast and database later.
#4 Updated by Jing Tao almost 8 years ago
- Status changed from In Progress to Testing
- % Done changed from 30 to 50