wood burning stoves 2.0*
The moose likes JDBC and the fly likes Statement is already closed error Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Databases » JDBC
Bookmark "Statement is already closed error" Watch "Statement is already closed error" New topic
Author

Statement is already closed error

Christopher De Castro
Greenhorn

Joined: Feb 11, 2011
Posts: 6
Hi,

I'm trying to get the output parameter of a stored procedure as in the below code. However, after calling callableStatement.execute(), the callableStatement object gets closed, causing the call to getInt() to throw an SQLException saying, "java.sql.SQLException: Statement has already been closed". I'd like to know what I need to look at for me to get this to work.

I'm fairly confident that the SP call is correct; calling it from an SQL editor causes it to return values in the output parameters. Could this be something in my Weblogic settings (I'm using a non-XA datasource defined in Weblogic 10.3)? Does anyone know how I should go about testing this?

Here is part of the code that I have. Eclipse debug mode shows that the statement is still open before the execute() method is called, and closed at the getInt() method.



Thanks in advance!
Avi Abrami
Ranch Hand

Joined: Oct 11, 2000
Posts: 1121

Christopher,
JDBC methods declare that they throw SQLException which is a checked exception and therefore your code must handle it.
So where is your error handling code?
What database are you using and what JDBC driver?
Perhaps your JDBC driver does not support "out" parameters?

Good Luck,
Avi.
Mike Zal
Ranch Hand

Joined: May 04, 2011
Posts: 144

Where in your code do you close your Connection and Statement? Is it possible that your connection is closed when the statement executes? It's not an exact scenario match, but I have seen people getting error from trying to access a ResultSet after the callling Statement was closed.


OCJP6, OCWCD5
Christopher De Castro
Greenhorn

Joined: Feb 11, 2011
Posts: 6
Thanks for the replies. Apparently, it's a problem with my statement timeout property. The SP throws a runtime exception, and during the time while I'm checking my breakpoints, my statement times out and my debugger shows "The statement has already been closed" instead of the actual error.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Statement is already closed error
 
Similar Threads
Using CallableStatement to access an Oracle Proc
DataDirect Driver : Error " [DataDirect][SQLServer JDBC Driver]Invalid parameter binding(s)"
Calling stored procedures
Newbie needs help with "Object has been closed" exception
wrong number or types of arguments in call to 'P_RETRIEVE_OPPTY_ORDER_STATUS'