Java.sql.SQLException: Closed Statement
I'm having a problem with my Java code trying to access an Oracle 10g database through the JDBC driver using the Oracle XML Publisher.
We generate a number of different reports, but one report consistently fails with the error: java.sql.SQLException: Closed Statement
It only happens in the production environment, which has significantly more data than the test and development environments.
One interesting (!) observation is that the error occurs after 10 minutes to the second (almost). Which leads me to think it is a timeout related problem, but am aware that this could be a red herring.
And finally, the code is being run within a job sheduled using the Quartz Scheduler v1.6.5.
Any help would be appreciated.
Many Thanks
Lawrence
Here is the stack trace:
java.sql.SQLException: Closed Statement: getMetaData
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.OracleResultSetImpl.getMetaData(OracleResultSetImpl.java:128)
at com.mchange.v2.c3p0.impl.NewProxyResultSet.getMetaData(NewProxyResultSet.java:47)
at oracle.apps.xdo.dataengine.XMLPGEN.processSQLDataSource(Unknown Source)
at oracle.apps.xdo.dataengine.XMLPGEN.writeData(Unknown Source)
at oracle.apps.xdo.dataengine.XMLPGEN.writeGroup(Unknown Source)
at oracle.apps.xdo.dataengine.XMLPGEN.writeGroup(Unknown Source)
at oracle.apps.xdo.dataengine.XMLPGEN.processSQLDataSource(Unknown Source)
at oracle.apps.xdo.dataengine.XMLPGEN.writeData(Unknown Source)
at oracle.apps.xdo.dataengine.XMLPGEN.writeGroupStructure(Unknown Source)
at oracle.apps.xdo.dataengine.XMLPGEN.processData(Unknown Source)
at oracle.apps.xdo.dataengine.XMLPGEN.processXML(Unknown Source)
at oracle.apps.xdo.dataengine.XMLPGEN.writeXML(Unknown Source)
at oracle.apps.xdo.dataengine.DataProcessor.processDataStructre(Unknown Source)
at oracle.apps.xdo.dataengine.DataProcessor.processData(Unknown Source)
at com.tmobile.sett.file.invoice.InvoiceFileFactory.generateXML(InvoiceFileFactory.java:157)
at com.tmobile.sett.file.invoice.InvoiceFileFactory.generateStatements(InvoiceFileFactory.java:365)
at com.tmobile.sett.file.invoice.InvoiceFileFactory.generateInvoices(InvoiceFileFactory.java:457)
at com.tmobile.sett.file.invoice.StatementGeneratorJob.execute(StatementGeneratorJob.java:34)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
Here is the code:
private void generateXML(String xmlTemplate, String xmlFilename, Hashtable parameters) {
DataProcessor dataProcessor = new DataProcessor();
log.debug("generateXML: xmlTemplate {}, xmlFilename {}", xmlTemplate, xmlFilename);
try {
// Set Data Template to be executed
dataProcessor.setDataTemplate(xmlTemplate);
// Obtain a new Connection from the Pool
Connection conn = HibernateUtil.getConnection();
if (conn == null)
log.debug("conn is null after getCall");
if (conn.isClosed())
log.debug("conn is closed after getCall");
// Set the Connection for the dataProcessor
dataProcessor.setConnection(conn);
if (conn.isClosed())
log.debug("conn is closed after setConnection");
dataProcessor.setParameters(parameters);
if (conn.isClosed())
log.debug("conn is closed after setParameters");
// Specify the output directory and file for the data file
dataProcessor.setOutput(xmlFilename);
if (conn.isClosed())
log.debug("conn is closed after setOutput");
// Process the data template
dataProcessor.processData();
if (conn.isClosed())
log.debug("conn is closed after processData");
// Return the connection to the pool
conn.close();
} catch (Exception e) {
System.err.println("Error generating XML with the following parameters:");
System.err.println("xmlTemplate=" + xmlTemplate);
System.err.println("xmlFilename=" + xmlFilename);
System.err.println("Here's the stack trace");
e.printStackTrace();
System.exit(1);
}
I have made some progress in understanding the problem...
Basically, your comment about threads made me look at the code from a threads perspective. There are only three objects used, log4j, oracleXML Publisher and hibernate. Discounting log4j, the Oracle object is created, opened and closed within the procedure, so I concluded that hibernate was the most likely cause of the problem (i know, theres an element of educated guesswork in this).
Anyway, I found the hibernate timeouts (all around 300 seconds) and increased them to 3000 seconds... and lo and behold the reports are generated successfully, although some of them take over 20 minutes each.
So, this is a performance problem with the SQL itself:
SELECT service
, reply
, ROUND(SUM(DECODE(op, 3, 0, count))* :uplift,0) x_events
, ROUND(SUM(DECODE(op, 3, count, 0))* :uplift,0) y_events
FROM aggregate
WHERE ref_time >= :period_start
AND ref_time < :period_end
AND feed = 13
AND agreement = :agreement
AND line = 1
GROUP BY service, reply
ORDER BY 1,2
The SQL in question is querying data for a specific month from a monthly partitioned table that contains about 11 million records a month. We currently have 99 partitions.
Executing the sql in Toad / Sql developer / sqlplus takes around 20 seconds...so why 20 minutes?
Looking in the session browser, I can see that the 20 minute query is looking through all 99 partitions where the 20 second query is only looking at 1 partition for the month in question.
I'm not sure if this is heading off topic for the forum thread, but the question now is...
Why is Oracle using a clearly innefficient execution plan when we are using a query with bound variables and how do we get it to use a more efficient execution plan?
Similar Messages
-
Java.sql.SQLException: Closed Connection
Hello
I am getting a java.sql.SQLException: Closed Connection with a simple SELECT query. This seems to be happening if i leave a session time out on a browser window. After i log on again and try to access a page which calls this simple SELECT query im getting this:
java.sql.SQLException: Closed Connection
<Error><JTA><BEA-110412><Name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke<com.bea.wlw.runitme.core.request.Request>], Xid=.....Status=Rolled back.[Reason=weblogic.transaction.internal.AppSetRollbackOnlyException],HeuristicErrorCode=XA_HEURHAZ......
I need to shutdown and startup WebLogic to get my SELECT query running again in such a situation.
HELP PLEASE, any suggestions?
thanks lots
rinaHello
Please note that i am using pageflows and my select query is in a .jcx file. Here is the full stack trace:
<29-May-2007 14:58:28 o'clock BST> <Warning> <WLW> <BTG005273> <portalServer> <ExecuteThread: '14' for queue: 'default'> <admin> <BEA1-0082B1D46822545AA9E0> <000000> <Id=top-level; Method=portlets.Admin.ManagedMobile.CreateUser.Uup_Usercontext.getCusPneumonics(); Failure=java.sql.SQLException: Closed Connection [ServiceException]>
####<29-May-2007 14:58:28 o'clock BST> <Error> <JTA> <BTG005273> <portalServer> <ExecuteThread: '14' for queue: 'default'> <admin> <BEA1-0082B1D46822545AA9E0> <BEA-110412> <Name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)],Xid=BEA1-0082B1D46822545AA9E0(42197291),Status=Rolled back. [Reason=weblogic.transaction.internal.AppSetRollbackOnlyException],HeuristicErrorCode=XA_HEURHAZ,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds left=60,activeThread=Thread[ExecuteThread: '14' for queue: 'default',5,Thread Group for Queue: 'default'],XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=rolledback,assigned=portalServer),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@283f1b9,re-Registered = false),SCInfo[TestPortal+portalServer]=(state=rolledback),properties=({weblogic.transaction.name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)], weblogic.jdbc=t3://10.235.102.63:7001}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=portalServer+10.235.102.63:7001+TestPortal+t3+, XAResources={},NonXAResources={})],CoordinatorURL=portalServer+10.235.102.63:7001+TestPortal+t3+) completed heuristically: (weblogic.jdbc.wrapper.JTSXAResourceImpl, HeuristicHazard, (javax.transaction.xa.XAException: Closed Connection)) >
####<29-May-2007 14:58:28 o'clock BST> <Error> <EJB> <BTG005273> <portalServer> <ExecuteThread: '14' for queue: 'default'> <admin> <> <BEA-010025> <Exception occurred during rollback of transaction Name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)],Xid=BEA1-0082B1D46822545AA9E0(42197291),Status=Rolled back. [Reason=weblogic.transaction.internal.AppSetRollbackOnlyException],HeuristicErrorCode=XA_HEURHAZ,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds left=60,XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=rolledback,assigned=portalServer),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@283f1b9,re-Registered = false),SCInfo[TestPortal+portalServer]=(state=rolledback),properties=({weblogic.transaction.name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)], weblogic.jdbc=t3://10.235.102.63:7001}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=portalServer+10.235.102.63:7001+TestPortal+t3+, XAResources={},NonXAResources={})],CoordinatorURL=portalServer+10.235.102.63:7001+TestPortal+t3+): javax.transaction.SystemException: Heuristic hazard: (weblogic.jdbc.wrapper.JTSXAResourceImpl, HeuristicHazard, (javax.transaction.xa.XAException: Closed Connection))
at weblogic.transaction.internal.ServerTransactionImpl.internalRollback()V(ServerTransactionImpl.java:396)
at weblogic.transaction.internal.ServerTransactionImpl.rollback()V(ServerTransactionImpl.java:362)
at weblogic.ejb20.internal.BaseEJBObject.postInvoke(Lweblogic.ejb20.internal.InvocationWrapper;Ljava.lang.Throwable;)V(BaseEJBObject.java:279)
at weblogic.ejb20.internal.StatelessEJBObject.postInvoke(Lweblogic.ejb20.internal.InvocationWrapper;Ljava.lang.Throwable;)V(StatelessEJBObject.java:140)
at com.bea.wlw.runtime.core.bean.SyncDispatcher_k1mrl8_EOImpl.invoke(Lcom.bea.wlw.runtime.core.request.Request;)Lcom.bea.wlw.runtime.core.request.Response;(SyncDispatcher_k1mrl8_EOImpl.java:110)
at com.bea.wlw.runtime.core.dispatcher.Dispatcher.remoteDispatch(Lcom.bea.wlw.runtime.core.dispatcher.DispFile;Lcom.bea.wlw.runtime.core.request.Request;)Lcom.bea.wlw.runtime.core.request.Response;(Dispatcher.java:161)
at com.bea.wlw.runtime.core.dispatcher.ServiceHandleImpl.invoke(Lcom.bea.wlw.runtime.core.request.Request;)Ljava.lang.Object;(ServiceHandleImpl.java:436)
at com.bea.wlw.runtime.core.dispatcher.WlwProxyImpl._invoke(Lcom.bea.wlw.runtime.core.request.ExecRequest;)Ljava.lang.Object;(WlwProxyImpl.java:326)
at com.bea.wlw.runtime.core.dispatcher.WlwProxyImpl.invoke(Ljava.lang.Object;Ljava.lang.reflect.Method;[Ljava.lang.Object;)Ljava.lang.Object;(WlwProxyImpl.java:315)
at $Proxy13.getCusPneumonics(Ljava.lang.String;)Ljavax.sql.RowSet;(Unknown Source)
at portlets.Admin.ManagedMobile.CreateUser.CreateUserController.begin()Lcom.bea.wlw.netui.pageflow.Forward;(CreateUserController.jpf:189)
at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava.lang.Object;ILjava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
at com.bea.wlw.netui.pageflow.FlowController.invokeActionMethod(Ljava.lang.reflect.Method;Lorg.apache.struts.action.ActionForm;Ljavax.servlet.http.HttpServletRequest;Lorg.apache.struts.action.ActionMapping;)Lorg.apache.struts.action.ActionForward;(FlowController.java:1507)
at com.bea.wlw.netui.pageflow.FlowController.getActionMethodForward(Ljava.lang.String;Lorg.apache.struts.action.ActionForm;Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;Lorg.apache.struts.action.ActionMapping;)Lorg.apache.struts.action.ActionForward;(FlowController.java:1433)
at com.bea.wlw.netui.pageflow.FlowController.internalExecute(Lorg.apache.struts.action.ActionMapping;Lorg.apache.struts.action.ActionForm;Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)Lorg.apache.struts.action.ActionForward;(FlowController.java:764)
at com.bea.wlw.netui.pageflow.PageFlowController.internalExecute(Lorg.apache.struts.action.ActionMapping;Lorg.apache.struts.action.ActionForm;Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)Lorg.apache.struts.action.ActionForward;(PageFlowController.java:211)
at com.bea.wlw.netui.pageflow.FlowController.execute(Lorg.apache.struts.action.ActionMapping;Lorg.apache.struts.action.ActionForm;Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)Lorg.apache.struts.action.ActionForward;(FlowController.java:594)
at org.apache.struts.action.RequestProcessor.processActionPerform(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;Lorg.apache.struts.action.Action;Lorg.apache.struts.action.ActionForm;Lorg.apache.struts.action.ActionMapping;)Lorg.apache.struts.action.ActionForward;(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(RequestProcessor.java:274)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.process(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(PageFlowRequestProcessor.java:650)
at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.process(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(AutoRegisterActionServlet.java:527)
at com.bea.wlw.netui.pageflow.PageFlowActionServlet.process(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(PageFlowActionServlet.java:152)
at org.apache.struts.action.ActionServlet.doGet(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(ActionServlet.java:507)
at com.bea.wlw.netui.pageflow.PageFlowUtils.strutsLookup(Ljavax.servlet.ServletContext;Ljavax.servlet.ServletRequest;Ljavax.servlet.http.HttpServletResponse;Ljava.lang.String;[Ljava.lang.String;)Lcom.bea.wlw.netui.pageflow.ActionResult;(PageFlowUtils.java:1617)
at com.bea.netuix.servlets.controls.content.PageflowContent.preRender()V(PageflowContent.java:449)
at com.bea.netuix.nf.ControlLifecycle$5.visit(Lcom.bea.netuix.nf.UIControl;Ljava.lang.Object;)Z(ControlLifecycle.java:405)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(Lcom.bea.netuix.nf.VisitorType;Lcom.bea.netuix.nf.UIControl;Ljava.lang.Object;Lcom.bea.netuix.nf.concurrency.ControlTreeWalkerPool;Lcom.bea.netuix.nf.concurrency.WorkerCount;ZZ)V(ControlTreeWalker.java:618)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(Lcom.bea.netuix.nf.VisitorType;Lcom.bea.netuix.nf.UIControl;Ljava.lang.Object;Lcom.bea.netuix.nf.concurrency.ControlTreeWalkerPool;Lcom.bea.netuix.nf.concurrency.WorkerCount;ZZ)V(ControlTreeWalker.java:629)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(Lcom.bea.netuix.nf.VisitorType;Lcom.bea.netuix.nf.UIControl;Ljava.lang.Object;Lcom.bea.netuix.nf.concurrency.ControlTreeWalkerPool;Lcom.bea.netuix.nf.concurrency.WorkerCount;ZZ)V(ControlTreeWalker.java:629)
[/i PLEASE HELP
Thanks
Rina -
Java.sql.SQLException: Closed Connection: next
java.sql.SQLException: Closed Connection: next
Here's the JDBC SELECT code:
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
stmt = con.createStatement();
rs = stmt.executeQuery(select_query);
while(rs.next()) /*Exception occurs on this line! */
Here's what I know:
I can connect to the instance using TORA ok.
The SQL query returns rows from TORA.
I believe the connections are ok because if I purposely mess up the syntax, I get back ORA-errors.
I can execute an INSERT statement ok from a servlet.
I'm using the classes12.zip drivers from the oracle jdbc installation directory.
I'm using the default JDK in WSAD 5.1
Thank you all for helping!
Ryan
[email protected]Ryan,
I'm only guessing, but I don't think that:
DriverManager.getConnection(url, user, password);is how to obtain a "Connection" object when using WSAD ("WebSphere", right?) -- even though I don't use WSAD, myself.
Is the java code you posted part of a POJO (Plain Old Java Object)? Or a servlet? Or an EJB? Or a JSP?
Remember, error messages can sometimes be misleading.
What Oracle database version are you using?
What platform are you using?
Good Luck,
Avi. -
Hello all,
We have configured JDBC Sender Adapter which fetches around 10K records with poll interval 1hr from DB2 System .
It was working fine,suddenly it started throwing an exception in Adapter Monitoring :
Error during conversion of query result to XML: java.sql.SQLException: Cursor state not valid.
It is not fetching any records.
Without changing any configurations when we tried to fetch to around 1000 records it's working fine.
For 10K records same exception persists
What could be the reason ?How to resolve this issue?
regards
GangaPrasadHello Christophe ,
Trace in VA :::
Date : 05/09/2008
Time : 11:45:57:750
Message : Unexpected error converting database resultset to XML, reason: java.sql.SQLException: Cursor state not valid.
at java.lang.Throwable.<init>(Throwable.java:194)
at java.lang.Exception.<init>(Exception.java:41)
at java.sql.SQLException.<init>(SQLException.java:40)
at com.ibm.as400.access.JDError.throwSQLException(JDError.java:389)
at com.ibm.as400.access.JDError.throwSQLException(JDError.java:366)
at com.ibm.as400.access.AS400JDBCResultSet.getValue(AS400JDBCResultSet.java:3580)
at com.ibm.as400.access.AS400JDBCResultSet.getString(AS400JDBCResultSet.java:3223)
at sun.reflect.GeneratedMethodAccessor459222074.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:309)
at com.sap.aii.adapter.jdbc.sql.jdbctrace.TraceInvocationHandler.invoke(TraceInvocationHandler.java:45)
at com.sap.aii.adapter.jdbc.sql.jdbctrace.$Proxy254.getString(Unknown Source)
at com.sap.aii.adapter.jdbc.JDBC2XI.convert2XML(JDBC2XI.java:954)
at com.sap.aii.adapter.jdbc.JDBC2XI.invoke(JDBC2XI.java:492)
at com.sap.aii.af.service.scheduler.JobBroker$Worker.run(JobBroker.java:475)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:99)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:119)
Severity : Error
Category : /Applications/ExchangeInfrastructure/AdapterFramework/Services/ADAPTER/ADMIN/JDBC
Location : com.sap.aii.adapter.jdbc.JDBC2XI.convert2XML(ResultSet, ResultSetMetaData)
Application :
Thread : XI JDBC2XI[JDBC_SND_DB2_VehicleReceiving/DB2PRD00/]_170
Datasource : 12428950:/usr/sap/PXI/DVEBMGS01/j2ee/cluster/server0/log/applications/com.sap.xi/xi.log
Message ID : 00145E742794005E0014980B000000BE00044CC763766C4F
Source Name : /Applications/ExchangeInfrastructure/AdapterFramework/Services/ADAPTER/ADMIN/JDBC
Argument Objs : java.sql.SQLException: Cursor state not valid.
at java.lang.Throwable.<init>(Throwable.java:194)
at java.lang.Exception.<init>(Exception.java:41)
at java.sql.SQLException.<init>(SQLException.java:40)
at com.ibm.as400.access.JDError.throwSQLException(JDError.java:389)
at com.ibm.as400.access.JDError.throwSQLException(JDError.java:366)
at com.ibm.as400.access.AS400JDBCResultSet.getValue(AS400JDBCResultSet.java:3580)
at com.ibm.as400.access.AS400JDBCResultSet.getString(AS400JDBCResultSet.java:3223)
at sun.reflect.GeneratedMethodAccessor459222074.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:309)
at com.sap.aii.adapter.jdbc.sql.jdbctrace.TraceInvocationHandler.invoke(TraceInvocationHandler.java:45)
at com.sap.aii.adapter.jdbc.sql.jdbctrace.$Proxy254.getString(Unknown Source)
at com.sap.aii.adapter.jdbc.JDBC2XI.convert2XML(JDBC2XI.java:954)
at com.sap.aii.adapter.jdbc.JDBC2XI.invoke(JDBC2XI.java:492)
at com.sap.aii.af.service.scheduler.JobBroker$Worker.run(JobBroker.java:475)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:99)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:119)
Arguments : java.sql.SQLException: Cursor state not valid.
at java.lang.Throwable.<init>(Throwable.java:194)
at java.lang.Exception.<init>(Exception.java:41)
at java.sql.SQLException.<init>(SQLException.java:40)
at com.ibm.as400.access.JDError.throwSQLException(JDError.java:389)
at com.ibm.as400.access.JDError.throwSQLException(JDError.java:366)
at com.ibm.as400.access.AS400JDBCResultSet.getValue(AS400JDBCResultSet.java:3580)
at com.ibm.as400.access.AS400JDBCResultSet.getString(AS400JDBCResultSet.java:3223)
at sun.reflect.GeneratedMethodAccessor459222074.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:309)
at com.sap.aii.adapter.jdbc.sql.jdbctrace.TraceInvocationHandler.invoke(TraceInvocationHandler.java:45)
at com.sap.aii.adapter.jdbc.sql.jdbctrace.$Proxy254.getString(Unknown Source)
at com.sap.aii.adapter.jdbc.JDBC2XI.convert2XML(JDBC2XI.java:954)
at com.sap.aii.adapter.jdbc.JDBC2XI.invoke(JDBC2XI.java:492)
at com.sap.aii.af.service.scheduler.JobBroker$Worker.run(JobBroker.java:475)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:99)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:119)
Dsr Component :
Dsr Transaction : d1f629d01d9b11dd984200145e742794
Dsr User :
Indent : 0
Level : 0
Message Code :
Message Type : 1
Relatives : com.sap.aii.adapter.jdbc.JDBC2XI
Resource Bundlename :
Session : 0
Source : /Applications/ExchangeInfrastructure/AdapterFramework/Services/ADAPTER/ADMIN/JDBC
ThreadObject : XI JDBC2XI[JDBC_SND_DB2_VehicleReceiving/DB2PRD00/]_170
Transaction : SAP J2EE Engine JTA Transaction : [0ffffffbdffffffa6ffffff960086]
User : J2EE_GUEST
Regards
Ganga Prasad -
Java.sql.SQLException: Closed Connection from Custom Identity Service
Hi,
Here is an issue I am trying to resolve:
Platform: Oracle BPEL 10.1.2
OS: Red Hat Enterprise Linux ES release 4 (Nahant Update 4)
Please note that the whole thing has been working in other same type of installations (e.g. RedHat, Windows, Developer BPEL on Windows & Linux) but this seems to be something special on this server. Any help will be appreciated:
This actually work for sometime (2-3 hours) and then suddenly stops working even if we don't do any transaction on it.
Thanks,
Bipul Dutta.
Error stack:
09/08/17 12:45:25 CustomIdentityService::authenticateUser():: begin
############# inside authenticateUser
09/08/17 12:45:25 CustomIdentityService::user authenticated
############# inside getUser()
09/08/17 12:45:25 java.sql.SQLException: Closed Connection
09/08/17 12:45:25 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:137)
09/08/17 12:45:25 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:174)
09/08/17 12:45:25 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:239)
09/08/17 12:45:25 at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:930)
09/08/17 12:45:25 at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:826)
09/08/17 12:45:25 at oracle.tip.pc.services.identity.FAMDBProvider.getUser(FAMDBProvider.java:418)
09/08/17 12:45:25 at oracle.tip.pc.services.identity.FAMCustomIdentityService.lookupUser(FAMCustomIdentityService.java:101)
09/08/17 12:45:25 at oracle.tip.pc.services.hw.worklist.WorklistService.authenticateUser(WorklistService.java:333)
09/08/17 12:45:25 at com.famis.web.service.core.humanworkflow.service.AbstractTaskWebService.getBpelContext(AbstractTaskWebService.java:20)
09/08/17 12:45:25 at com.famis.web.service.core.humanworkflow.service.GetTasksWebServiceImpl.process(GetTasksWebServiceImpl.java:51)
09/08/17 12:45:25 at com.famis.web.service.core.humanworkflow.service.TaskWebServiceImpl.process(TaskWebServiceImpl.java:68)
09/08/17 12:45:25 at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
09/08/17 12:45:25 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
09/08/17 12:45:25 at java.lang.reflect.Method.invoke(Method.java:324)
09/08/17 12:45:25 at org.apache.axis.providers.java.MsgProvider.processMessage(MsgProvider.java:141)
09/08/17 12:45:25 at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
09/08/17 12:45:25 at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
09/08/17 12:45:25 at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
09/08/17 12:45:25 at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
09/08/17 12:45:25 at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
09/08/17 12:45:25 at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
09/08/17 12:45:25 at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
09/08/17 12:45:25 at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
09/08/17 12:45:25 at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
09/08/17 12:45:25 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
09/08/17 12:45:25 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:835)
09/08/17 12:45:25 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:341)
09/08/17 12:45:25 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:816)
09/08/17 12:45:25 at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:231)
09/08/17 12:45:25 at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:136)
09/08/17 12:45:25 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
09/08/17 12:45:25 at java.lang.Thread.run(Thread.java:534)
<2009-08-17 12:45:25,877> <ERROR> <tmobilet.collaxa.cube.services> <PCException::<init>> User is not found.
<2009-08-17 12:45:25,877> <ERROR> <tmobilet.collaxa.cube.services> <PCException::<init>> User "BSAUNDE4" is not found in realm "tmobilet".
<2009-08-17 12:45:25,877> <ERROR> <tmobilet.collaxa.cube.services> <PCException::<init>> Check the error stack and fix the cause of the error. Contact
Edited by: user11798418 on Aug 17, 2009 10:30 AM>
I have my application jar on the server, and launch this JFrame application from the browser. ><zen question>
Which particular 'the browser'? What version of what browser running on what OS?
</zen question>
The reason I ask is that it is up to the browser to call an applet's stop()/destroy() methods and if they do not do so - there is almost nothing we as developers can do about it.
If you need such reliable shut down behaviour, it would be best to launch the applet or frame using Java Web Start. -
Java.sql.SQLException: Closed Connection error when invoking web service
Hi
I've assembled a simple web service for an Oracle PL/SQL package and deployed it on a Standalone OC4J, when I come to invoke it on the Oracle Enterprise Manager screen I'm getting the following returned within the envelope body:
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>Internal Server Error (serialization error: java.sql.SQLException: java.sql.SQLException: Closed Connection)</faultstring>
</env:Fault>
</env:Body>
The function that is called within the database returns a user defined object that consists of a RAW value and an XMLTYPE. The function takes a string as a parameter, when I enter a string that I know will not return an object there is no error in the envelope body, only when there is an object to return does the error appear.
Anyone have any suggestion as to why this is?I'm no further forward with this: has anyone assembled, deployed and invoked a web service that returns a XMLTYPE?? I know this should be possible but I think there's maybe some manual intervention required with the classes created with webservicesassembler: I'd really appreciate it if anyone with any experience of this kind of thing could help me think this through.
-
I have the following situation:
When accidentaly toplink loose connection with database server for short time and request coming from client in the same time toplink close connection with database server and generate the following exception:
Exception [TOPLINK-4002] (Oracle TopLink - 10g Developer Preview 3 (10.1.3.0 ) (Build 041116)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Closed ConnectionError Code: 17008
at oracle.toplink.exceptions.DatabaseException.sqlException(DatabaseException.java:272)
Problem is because toplink does not renew the connection with database server. Anybody know how to resolve this situation ?
Mention:
Application is build around toplink server session that serve client giving them clientsession and unitofwork.Hi
I am getting this exception randomly, I want my application to be flexible. I am using Glassfish V2.1.1, Toplink Essentials, Windows linux, Oracle 11g database.
Below is the stacktrace :
Local Exception Stack:
Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.1 (Build b31g-fcs (10/19/2009))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Closed Connection
Error Code: 17008
Call: SELECT t0.CRITICALITY, t0.USER_TAG_IDENT, t0.SEGMENT_GROUP_YN, t0.NAME, t0.GMT_LAST_UPDATED, t0.LONG_DESCRIPTION, t0.CS_TYPE_DB_SITE, t0.CS_TYPE_DB_ID, t0.CS_TYPE_CODE, t0.SEGMENT_SITE, t0.SEGMENT_ID, t0.RSTAT_TYPE_CODE, t0.LAST_UPD_DB_SITE, t0.LAST_UPD_DB_ID, t0.SG_DB_SITE, t0.SG_DB_ID, t0.SG_TYPE_CODE FROM SEGMENT t0, ROW_STATUS_TYPE t2, SEGMENT_TYPE t1 WHERE ((((t0.SEGMENT_ID NOT IN (SELECT t3.CHILD_SG_ID FROM SEGMENT_CHILD t3 WHERE (t3.SEGMENT_SITE = ?)) AND (t0.SEGMENT_SITE = ?)) AND (t1.SG_TYPE_CODE = ?)) AND (t2.RSTAT_TYPE_COD = ?)) AND (((t1.SG_DB_SITE = t0.SG_DB_SITE) AND ((t1.SG_DB_ID = t0.SG_DB_ID) AND (t1.SG_TYPE_CODE = t0.SG_TYPE_CODE))) AND (t2.RSTAT_TYPE_COD = t0.RSTAT_TYPE_CODE))) ORDER BY t0.USER_TAG_IDENT ASC
bind => [0000000100000001, 0000000100000001, 9, 1]
Query: ReportQuery(com.esrg.jpa.Segment)
at oracle.toplink.essentials.exceptions.DatabaseException.sqlException(DatabaseException.java:319)
at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:566)
at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:452)
at oracle.toplink.essentials.threetier.ServerSession.executeCall(ServerSession.java:473)
at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:214)
at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:285)
at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:615)
at oracle.toplink.essentials.internal.queryframework.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2416)
at oracle.toplink.essentials.internal.queryframework.ExpressionQueryMechanism.selectAllReportQueryRows(ExpressionQueryMechanism.java:2382)
at oracle.toplink.essentials.queryframework.ReportQuery.executeDatabaseQuery(ReportQuery.java:802)
at oracle.toplink.essentials.queryframework.DatabaseQuery.execute(DatabaseQuery.java:628)
at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:692)
at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:746)
at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2244)
at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:952)
at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:924)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:367)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.getResultList(EJBQueryImpl.java:478)
at com.sun.enterprise.util.QueryWrapper.getResultList(QueryWrapper.java:196)
at com.esrgtech.erm.viewer.segment.eRMViewerSegmentBean.findSystem(eRMViewerSegmentBean.java:537)
at com.esrgtech.erm.viewer.segment.eRMViewerSegmentBean.getTree(eRMViewerSegmentBean.java:131)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011)
at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175)
at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2929)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4020)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:127)
at $Proxy60.getTree(Unknown Source)
at com.esrgtech.erm.DataViewerSession.getTree(DataViewerSession.java:237)
at com.esrgtech.erm.ui.dashboard.DashboardLeft.buildTree(DashboardLeft.java:88)
at com.esrgtech.erm.ui.dashboard.DashboardLeft.<init>(DashboardLeft.java:48)
at com.esrgtech.erm.ui.dashboard.Dashboard.createLeftContent(Dashboard.java:55)
at com.esrgtech.erm.ui.base.WebPageTwoColLeft180.buildPage(WebPageTwoColLeft180.java:58)
at com.esrgtech.erm.ui.dashboard.Dashboard.<init>(Dashboard.java:34)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:192)
at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:57)
at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:81)
at com.esrgtech.erm.ui.signin.SignInPanel.onSignInSucceeded(SignInPanel.java:236)
at com.esrgtech.erm.ui.signin.SignInPanel$SignInForm.onSubmit(SignInPanel.java:116)
at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1536)
at org.apache.wicket.markup.html.form.Form.process(Form.java:925)
at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:887)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182)
at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:312)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:666)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:597)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:872)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: java.sql.SQLException: Closed Connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:840)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:759)
at com.sun.gjc.spi.base.ConnectionHolder.prepareStatement(ConnectionHolder.java:475)
at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1162)
at oracle.toplink.essentials.internal.databaseaccess.DatabaseCall.prepareStatement(DatabaseCall.java:612)
at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:485)
... 90 more
Need Help..... -
PLSQL webservice eventually gives java.sql.SQLException: Closed Connection
Hi
We have created a web service based on a plsql procedure in jdeveloper 10.1.2.1.0
We deployed the web service to .ear file in jdev and then deployed that ear file to our 10.1.2 app server.
The web service works fine for a short time but then gives
java.sql.SQLException: Closed Connection
The web service is not used frequently so it's possible the connection is timing out. I haven't tested invoking the web service perodically to see if it remains alive.
I tried to follow this note on metalink
https://metalink.oracle.com/metalink/plsql/f?p=130:14:2526430465590485698::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,370209.1,1,1,1,helvetica
Which wants me to make changes to the file <webservice_name>Base.java in our case GPAuditBase.java
My questions are:
1. In the jdeveloper navigator there is a file called GPAuditBase.sqlj but it does not contain all the code mentioned in the metalink note. Specifically the finally{} section. Do I need to edit the generated GPAuditBase.java that is saved in the src folder for the project? That file seems to contain the code mentioned in the metalink note.
2. If so, how are those changes reflected in the ear file that I want to deploy to my app server? Do I change the files in the src folder and then deploy to ear in jdev
thanks
paul schweigerahem...
bump -
Intermittent java.sql.SQLException: Closed Connection HELP
We are using 10G rac, with jdbc string with failover with ojdbc14.jar thin client. I am getting this intermittent error
I can't understand why, my dba says there are no alrets on dbs. Never had an issue with code base on 9i, and classes12.jar. Using jdk 1.42. Usually when bounce weblogic we are okay, running 8.1sp2. I can't really bounce weblogic when this happens everytime so I need to figure out root cause and a way to fix the pool without bouncing. I tried reseting the pool won't work, funnny thing is other pools connnecting to same db, but different schema are not showing this error. any help would be appreiciated.
Anyone come across this issue Help
@4000000047b08bfd0530357c DBLogger - Driver Name Version : Oracle JDBC driver
@4000000047b08bfd0530a6c4 DBLogger - Driver Version : 10.2.0.3.0
@4000000047b08bfd0531c004 DBLogger - Driver Major Version : 10
@4000000047b08bfd0531c7d4 DBLogger - Driver Minor Version : 2
@4000000047b08bfd09eec344 SQL Exception: Closed Connection
@4000000047b08bfd09f0f5c4 java.sql.SQLException: Closed Connection
@4000000047b08bfd09fd6174 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseE
rror.java:112)
@4000000047b08bfd09fe8e3c at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseE
rror.java:146)
@4000000047b08bfd0a0099ac at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseE
rror.java:208)
@4000000047b08bfd0a029194 at oracle.jdbc.driver.PhysicalConnection.setAutoCommit(Physical
Connection.java:1057)
Here is entry of pool
<JDBCConnectionPool CapacityIncrement="2"
ConnLeakProfilingEnabled="true"
DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="5"
MaxCapacity="20" Name="NightFirePool"
Password="{3DES}nQGiomkBhcA=" Properties="user=nfire"
ShrinkFrequencySeconds="900" Targets="eai00prod"
TestConnectionsOnCreate="true" TestConnectionsOnRelease="true"
TestConnectionsOnReserve="true" TestFrequencySeconds="60"
TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PR
OTOCOL=TCP)(HOST=node1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=node2)(PORT=1521))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_N
AME=eaiprod)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=5)(DELAY=10))))"/>Irfan Ahmed wrote:
We are using 10G rac, with jdbc string with failover with ojdbc14.jar thin client. I am getting this intermittent error
I can't understand why, my dba says there are no alrets on dbs. Never had an issue with code base on 9i, and classes12.jar.
Using jdk 1.42. Usually when bounce weblogic we are okay, running 8.1sp2. I can't really bounce weblogic when this happens
everytime so I need to figure out root cause and a way to fix the pool without bouncing. I tried reseting the pool won't
work, funnny thing is other pools connnecting to same db, but different schema are not showing this error. any help would
be appreiciated.
Anyone come across this issue Help
@4000000047b08bfd0530357c DBLogger - Driver Name Version : Oracle JDBC driver
@4000000047b08bfd0530a6c4 DBLogger - Driver Version : 10.2.0.3.0
@4000000047b08bfd0531c004 DBLogger - Driver Major Version : 10
@4000000047b08bfd0531c7d4 DBLogger - Driver Minor Version : 2
@4000000047b08bfd09eec344 SQL Exception: Closed Connection
@4000000047b08bfd09f0f5c4 java.sql.SQLException: Closed Connection
@4000000047b08bfd09fd6174 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseE
rror.java:112)
@4000000047b08bfd09fe8e3c at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseE
rror.java:146)
@4000000047b08bfd0a0099ac at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseE
rror.java:208)
@4000000047b08bfd0a029194 at oracle.jdbc.driver.PhysicalConnection.setAutoCommit(Physical
Connection.java:1057)
Here is entry of pool
<JDBCConnectionPool CapacityIncrement="2"
ConnLeakProfilingEnabled="true"
DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="5"
MaxCapacity="20" Name="NightFirePool"
Password="{3DES}nQGiomkBhcA=" Properties="user=nfire"
ShrinkFrequencySeconds="900" Targets="eai00prod"
TestConnectionsOnCreate="true" TestConnectionsOnRelease="true"
TestConnectionsOnReserve="true" TestFrequencySeconds="60"
TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PR
OTOCOL=TCP)(HOST=node1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=node2)(PORT=1521))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_N
AME=eaiprod)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=5)(DELAY=10))))"/>Hi. Can you show me the whole stacktrace?
Your pool could be faster, without any
bad side-effects, by turning off TestConnectionsOnCreate
and TestConnectionsOnRelease. They don't help. I would
also suggest turning off shrinking. Those changes will
make the pool faster and more stable. I''d like the
stack trace to see if there's any hint about who closed
the connection...
Joe -
My code:
<%@ include file="../setupcache.jsp"%>
<%
if(connectionPool_dig==null){
%>
<p>Could not connect to database. Please try again, thank!</p>
<%
return ;
Connection con = connectionPool_dig.getConnection();
if(con==null){
%>
<p>Could not connect to database. Please try again, thank!</p>
<%
return;
String file = request.getParameter("m_FILE");
file = "a";
String sql = " SELECT *"+
" FROM "+
" FILEUPLOAD, SUBJECT"+
" WHERE "+
" FILEUPLOAD.SUBJECTCODE = SUBJECT.CODE AND UPPER(FILEUPLOAD.FILENAME) LIKE(UPPER(?))";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1,"%"+file+"%");
ResultSet rs = stmt.executeQuery();
while(rs.next()){
out.println("<br>"+rs.getString(1));
out.println("<br>"+rs.getString(2));
out.println("<br>"+rs.getString(3));
out.println("<br>"+rs.getString(4));
rs.close();
stmt.close();
try{
con.close();
}catch(SQLException e){}
%>
it usualy generate that error (once wrong then right then wrong....), but if I don't close connection (con.close), it work well. Could some one help me!Hi,
I think that it should be better that returning the Connection
instance back to the Connection Pool. The connection
should not be close by you. it should controlled by the
connection pool mechanism. So I think that you should
check out your connection pool usage document for the
right usage.
If your code is the case, the connection in connection
pool will get less and your connection pool mechanism
may need to reallocate a new one for application. I
don't think that it is right.
good luck,
Alfred Wu -
Java.sql.SQLException: statement handle not executed
hello,
i am calling a stored procedure and its returns a REF CURSOR and i am getting intermittent exceptions below,
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [{call
xxxx_pkg(?,?)}]; SQL state [99999]; error code [17144]; statement handle not executed; nested exception is java.sql.SQLException: statement handle not executed
and
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [{call
xxxx_pkg(?,?,?)}]; SQL state [99999]; error code [17009]; Closed Statement; nested exception is java.sql.SQLException: Closed Statement
any clue what could be the issue,
Regards
GGits pretty simple have a java class calling hibernateTemplate's findByNamedQueryAndNamedParam method by passing the procedure name and binding parameters/values, and here is the stack
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [{call
xxx_pkg(?,?)}]; SQL state [99999]; error code [17144]; statement handle not executed; nested exception is java.sql.SQLException: statement handle not executed
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.findByNamedQueryAndNamedParam(HibernateTemplate.java:1006)
Caused by: java.sql.SQLException: statement handle not executed
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:403)
at oracle.jdbc.driver.T4CStatement.doDescribe(T4CStatement.java:701)
at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3355)
at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:2009)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:494)
at org.hibernate.type.StringType.get(StringType.java:18)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2091)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1380)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1308)
at org.hibernate.loader.Loader.getRow(Loader.java:1206)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)
at org.hibernate.loader.Loader.doQuery(Loader.java:701)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2217)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2108)
at org.hibernate.loader.Loader.list(Loader.java:2103)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1696)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
at org.springframework.orm.hibernate3.HibernateTemplate$34.doInHibernate(HibernateTemplate.java:1015)
at org.springframework.orm.hibernate3.HibernateTemplate$34.doInHibernate(HibernateTemplate.java:1)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406) -
Interleaved executeQuery's intermittant SQLException: Closed Statement
When i run the following code using JDK1.3.1 and Oracle 817 i see the line "cats_rs = cats_stmt.executeQuery();" throw a "SQLException: Closed Statement." about 1 out of 10 times.
All variables, except the connection, are local. the statement example below are just 2 among dozens of others - all using the same connection.
Any ideas why i'd get an intermittant exception like this?
It is totally stumping me. thanks in advance.
memory_stmt = connection.prepareStatement(memory_sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
cats_stmt = connection.prepareStatement(cats_sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
index = 1;
memory_stmt.setString(index++, host);
memory_stmt.setString(index++, jvm);
memory_stmt.setLong(index++, starttime);
memory_stmt.setLong(index++, endtime);
memory_rs = memory_stmt.executeQuery();
index = 1;
cats_stmt.setString(index++, host);
cats_stmt.setString(index++, jvm);
cats_stmt.setLong(index++, starttime);
cats_stmt.setLong(index++, endtime);
cats_rs = cats_stmt.executeQuery();
E.g.
java.sql.SQLException: Closed Statement
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285)
at oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:5681)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:409)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:366)
Thx, TimI had a hunch that this was a limitation or bug in the driver or pool. I also read in forums that the connection "manages" each Statement it prepares or creates; like it adds it to a List and such ; it also cleans the slate each time the connection is closed.
This code example above is just a small snippit that summarizes over a long time range of data (like days) - that is potentially 1000s of statements and queries and result sets.
It is probably not very common that with jdbc someone prepares and executes 1000s of queries on the same connection over a course of 2 - 10 minutes (that's how long the entire operationcould take). I guessed the connection was worn out and tired .
I changed the code to get a connection and then close the connection periodically - instead of getting one connection and using it for the whole period. After that all these hard to explain Closed Statement exceptions disappeared.
i think the interleaving queries is OK. I guess the connection was blowing out. -
Interleaved executeQuery() generates SQLException: Closed Statement
When i run the following code i see the cats_stmt.executeQuery() line throw a "SQLException: Closed Statement.".
Since I just created the cats_stmt statement - why could it be closed?
The memory_stmt.executeQuery runs without exception.
memory_stmt = connection.prepareStatement(memory_sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
cats_stmt = connection.prepareStatement(cats_sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
index = 1;
memory_stmt.setString(index++, host);
memory_stmt.setString(index++, jvm);
memory_stmt.setLong(index++, starttime);
memory_stmt.setLong(index++, endtime);
memory_rs = memory_stmt.executeQuery();
index = 1;
cats_stmt.setString(index++, host);
cats_stmt.setString(index++, jvm);
cats_stmt.setLong(index++, starttime);
cats_stmt.setLong(index++, endtime);
cats_rs = cats_stmt.executeQuery(); <<- throws exception.
On JDK1.3.1 and Oracle 817
E.g.
java.sql.SQLException: Closed Statement
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285)
at oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:5681)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:409)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:366)I had a hunch that this was a limitation or bug in the driver or pool. I also read in forums that the connection "manages" each Statement it prepares or creates; like it adds it to a List and such ; it also cleans the slate each time the connection is closed.
This code example above is just a small snippit that summarizes over a long time range of data (like days) - that is potentially 1000s of statements and queries and result sets.
It is probably not very common that with jdbc someone prepares and executes 1000s of queries on the same connection over a course of 2 - 10 minutes (that's how long the entire operationcould take). I guessed the connection was worn out and tired .
I changed the code to get a connection and then close the connection periodically - instead of getting one connection and using it for the whole period. After that all these hard to explain Closed Statement exceptions disappeared.
i think the interleaving queries is OK. I guess the connection was blowing out. -
Jboss getting SQLException: Closed Statement prepared-statement- cache-size
My first post in this forum , hope to get a quick resolution :)
I am using Jboss 4.0.0 on Oracle 9.2.0.4.0
In order to improve the app performance , I had specified prepared-statement-cache-size as 50 as follows ,
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/sct</jndi-name> <connection-url>jdbc:oracle:thin:@confidential:1560:sct1</connection-url>
<user-name>Confidential</user-name>
<password>Confidential</password>
<min-pool-size>10</min-pool-size>
<max-pool-size>120</max-pool-size> <prepared-statement-cache-size>50</prepared-statement-cache-size>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptio nSorter</exception-sorter-class-name>
<idle-timeout-minutes>5</idle-timeout-minutes>
<track-statements>true</track-statements>
<new-connection-sql>select sysdate from dual</new-connection-sql>
<check-valid-connection-sql>select sysdate from dual</check-valid-connection-sql>
</local-tx-datasource>
</datasources>
After doing this , I start getting the following exception ,
java.sql.SQLException: Closed Statement
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285)
at oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:5681)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.j ava:409)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.ja va:366)
at org.jboss.resource.adapter.jdbc.CachedPreparedStatement.executeQuery(CachedPrepare dStatement.java:57)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPrepa redStatement.java:296)
at com.ge.sct.SiteText.getSiteTextFromDB(SiteText.java:292)
Thanks in Advance
BhavinHello,
I am also facing the same error: somewhere just now I read,
We were getting this error on JBoss / Oracle. The fix was setting the following to 0 in oracle-ds.xml:
<prepared-statement-cache-size>0</prepared-statement-cache-size>
Ref: http://www.jpox.org/servlet/forum/viewthread?thread=1108
May be you can try this, I am also still finding the solution, I will try the above and let u know, if i get success.
Regards,
Rajesh -
Java.sql.SQLException: can't create statement from closed connection
java.sql.SQLException: can't create statement from closed connection.
at com.caucho.sql.QPooledConnectionImpl.prepareStatement(QPooledConnecti onImpl.java:411)
I am getting this error with my JSP's, i am running on Resin on Win2k, and MySql as backend.
Has anyone else also faced this issue ?
Looking for someone to help me to solve this issue.
rcLooking for someone to help me to solve this issue.Maybe you are closing the connections. You might want to verify that you are not doing that. Or if you are that that is the correct way to return the connection to the pool.
Or you could have stale connections. Some databases will time out connections if the connection is no used in a while. (This is a good thing.) But this means connection pools must do something with connections that are not used for a while. The pools usually have a configuration option(s) which allows you to set up a keep alive message which keeps the database from closing the connection.
Maybe you are looking for
-
Batch Determination in time of Goods Issue
Hi, We are doing internally numbered Batches. We got 4 btches say A- 10kg,B- 10Kg, C- 10Kg, D- 10kg. I want to issue 30kg, at this time I want to select Batches automatically by the system which has stock thru FIFO. So that system will create 3 line
-
How to log the user and group setup from weblogic console
If I use the file realm to setup my acls, does it possible to log these action? Our customer ask us must to log which user or group you added, deleted. Thanks and Best Regards, Tom Hsu ³\®aºa (Tom Hsu) Project Manager Banking Solution Dept. Bull Info
-
Can I delete Data1.cab files?
I am doing some file maintenance and I notice that I have 3 Data1.cab files in different folders. C:\program files\adobe\acrobat\setup files\acropro\efg C:\program files\adobe\acrobat\setup files\acropro\efg_ C:\program files\adobe\acrobat\setup file
-
Error: (0) initialization error
I'm trying to work through an example in the JDeveloper3 book and get the following error message after pointing and clicking my way through a BC Data Form Wizard and trying to run what it created: Error: (0) initialization error: class Error const *
-
Why does exporting HD to a tape take a very long time?
Not a tech problem, really, just a question: just wondering if anyone in here knows why it takes forever to export an HD movie back to HD videotape? I sometimes like to backup my raw footage tapes and have always done so with SD format but HD takes F