Getting Error : "[Oracle JDBC Driver]Object has been closed."
I have been looking at this issue for several weeks off and on. Right now I can tell you 70 things it is not. And, I have tried many things. So, please forgive the long posting.
Description
On the Development, Test, Training, and Production instances I have an intermittent connection issue with accessing one table SITE. Everytime I try to access said table via a <cfquery> tag it throws an error.
| struct | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Cause |
| ||||||||
Database Environment
The Oracle server is on a different shared server with LAN. It is running Oracle 10G.
CF Environment
The Development, Test, And Training instances are on one shared server. A Linux box: x86_64 x86_64 x86_64 GNU/Linux. I can not update the
| ||||||||||||||||
| JVM Details | ||||||
| ||||||
Note:
I cannot upgrade the JRE because of community authentication process will not work.
| Data & Services | ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
Things I have tried
- I turned on Database logging to this JDBC connection.
- I dropped the JDBC connection and created a new one.
- I saw a posting about this issue on another site and changed MaxPooledStatements=2000. Because one person recommended it.
- Increased the Query Timeout (seconds) to 60.
- Decreased the Timeout (min) to 7
- Enabled CLOB and BLOB just in case.
- Enabled Oracle linked servers support.
- I created a similar Database connection on a Windows 2008 R2 server running ColdFusion 10 Update 21 with only Java 1.8.0_101 (64 bit) running on it. That worked fine for 10 days. Then quit after 11 days. For one period I hit the SITE table every 6 second for 3 hours with no issues.
- Thought reserved word with the table name SITE. So, I had the DBA create a new table called SITEX and I copied the data over to it, That worked until I restarted the ColdFusion instance. Then, SITEX started have the same connection issues as SITE .
Database Connection Error from CF Logging
spy(ajp-bio-8015-exec-6)(2016/09/22 10:45:30.083)>> Connection[39].getAutoCommit()
spy(ajp-bio-8015-exec-6)(2016/09/22 10:45:30.083)>> OK (true)
spy(ajp-bio-8015-exec-6)(2016/09/22 10:45:30.083)>> Connection[39].setAutoCommit(boolean autoCommit)
spy(ajp-bio-8015-exec-6)(2016/09/22 10:45:30.083)>> autoCommit = false
spy(ajp-bio-8015-exec-6)(2016/09/22 10:45:30.083)>> java.sql.SQLException: [Macromedia][Oracle JDBC Driver]Object has been closed. ErrorCode=0 SQLState=HY000
java.sql.SQLException: [Macromedia][Oracle JDBC Driver]Object has been closed.
at macromedia.jdbc.oraclebase.ddcr.b(Unknown Source)
at macromedia.jdbc.oraclebase.ddcr.a(Unknown Source)
at macromedia.jdbc.oraclebase.ddcq.b(Unknown Source)
at macromedia.jdbc.oraclebase.ddcq.a(Unknown Source)
at macromedia.jdbc.oraclebase.BaseConnection.setAutoCommit(Unknown Source)
at macromedia.jdbcspyoracle.SpyConnection.setAutoCommit(Unknown Source)
at coldfusion.server.j2ee.sql.JRunConnection.setAutoCommit(JRunConnection.java:436)
at coldfusion.server.j2ee.sql.JRunConnectionHandle.setAutoCommit(JRunConnectionHandle.java:108)
at coldfusion.tagext.sql.TransactionTag.verifyDataSrc(TransactionTag.java:331)
at coldfusion.tagext.sql.QueryTag.validate(QueryTag.java:501)
at coldfusion.tagext.sql.QueryTag.doValidate(QueryTag.java:632)
at coldfusion.tagext.sql.QueryTag.doAfterBody(QueryTag.java:623)
at cfbase2ecfc543454569$funcINVOKETAG.runFunction(/local_apps/cf10/redmond/CustomTags/com/adobe/coldfusion/base.cfc:445)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2655)
at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2451)
at cfquery2ecfc242559435$funcEXECUTE.runFunction(/local_apps/cf10/redmond/CustomTags/com/adobe/coldfusion/query.cfc:641)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655)
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444)
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414)
at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2428)
at cfsites22ecfc1527081306$funcGETSITE.runFunction(/local_apps/redmond/dev/source/doc/actions/sites2.cfc:94)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:518)
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:660)
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:469)
at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2369)
at cfsites2dtest2ecfm1991642881._factor7(/local_apps/redmond/dev/source/doc/sites-test.cfm:42)
at cfsites2dtest2ecfm1991642881.runPage(/local_apps/redmond/dev/source/doc/sites-test.cfm:1)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:446)
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
at coldfusion.filter.IpFilter.invoke(IpFilter.java:64)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:430)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:112)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.CfmServlet.service(CfmServlet.java:219)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:450)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:197)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:662)
spy(ajp-bio-8015-exec-6)(2016/09/22 10:45:30.084)>> Connection[39].close()
spy(ajp-bio-8015-exec-6)(2016/09/22 10:45:30.084)>> OK
