Copy link to clipboard
Copied
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
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
Copy link to clipboard
Copied
Seems the issue is related to the version of the JVM that is in use. The ColdFusion generic Oracle drive does not seem to be able to persistently connect to Oracle 10g with JVM 1.6
To fix this issue I found some documentation about how to replace/add a new JDBC driver.
I downloaded the ojdbc6.jar
fromhttp://www.oracle.com/technetwork/database/enterprise-edition/jdbc-111060-084321.html. If you have Java Specification Version 1.7 you will need ojdbc7.jar
/wwwroot/WEB-INF/lib/ folder.
I do recommend clicking the Show Advanced Settings button to limit the permissions of what SQL items the connection is allowed to run even if you Database Administrator has done that for this connection's user account.