Thread: JDBC : this statement has been closed : postgresql 9
Hi,
I'm having a troube in my application :
org.postgresql.util.PSQLException: This statement has been closed.
at org.postgresql.jdbc2.AbstractJdbc2Statement.checkClosed(AbstractJdbc2Statement.java:2508)
at org.postgresql.jdbc2.AbstractJdbc2Statement.getMaxRows(AbstractJdbc2Statement.java:595)
at org.postgresql.jdbc4.Jdbc4Statement.createResultSet(Jdbc4Statement.java:36)
at org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandler.handleResultRows(AbstractJdbc2Statement.java:211)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:381)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
It's happen when I execute my PreparedStatement .
Normally it's work well, but in my error log, i found this ....
I'm on ubuntu 10.04 server with a tomcat running.
i Have multi thread running, but i'm sure that other thread can't interfer with that.
And i'm using this :
<Context>
<Resource name="jdbc/NexessPool"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="20000"
removeAbandoned="true"
removeAbandonedTimeout="120"
username="**********"
password="*********"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost/database"
/>
</Context>
which JDBC i'm using ? this one :
http://ejurka.com/pgsql/jars/xml/
from Kris Jurka ( thx to him )
I don't understand why a preparestatement have been close ?
thx for your help,
I'm having a troube in my application :
org.postgresql.util.PSQLException: This statement has been closed.
at org.postgresql.jdbc2.AbstractJdbc2Statement.checkClosed(AbstractJdbc2Statement.java:2508)
at org.postgresql.jdbc2.AbstractJdbc2Statement.getMaxRows(AbstractJdbc2Statement.java:595)
at org.postgresql.jdbc4.Jdbc4Statement.createResultSet(Jdbc4Statement.java:36)
at org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandler.handleResultRows(AbstractJdbc2Statement.java:211)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:381)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
It's happen when I execute my PreparedStatement .
Normally it's work well, but in my error log, i found this ....
I'm on ubuntu 10.04 server with a tomcat running.
i Have multi thread running, but i'm sure that other thread can't interfer with that.
And i'm using this :
<Context>
<Resource name="jdbc/NexessPool"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="20000"
removeAbandoned="true"
removeAbandonedTimeout="120"
username="**********"
password="*********"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost/database"
/>
</Context>
which JDBC i'm using ? this one :
http://ejurka.com/pgsql/jars/xml/
from Kris Jurka ( thx to him )
I don't understand why a preparestatement have been close ?
thx for your help,
On Wed, 10 Nov 2010 11:20:14 +0100, Michael musset <mickamusset@gmail.com> wrote: > Hi, > > I'm having a troube in my application : [...] > which JDBC i'm using ? this one : > > http://ejurka.com/pgsql/jars/xml/ > > from Kris Jurka ( thx to him ) > > > I don't understand why a preparestatement have been close ? > > > > thx for your help, Are you using Hibernate in above? I have similar bug with Hibernate and XA, try to use PooligDataSource. -- ---------- Radosław Smogura http://www.softperience.eu
Hi,
No, I'm not using Hibernate,
And i'm already using pooling because of :
<Context>
<Resource name="jdbc/Pool"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="20000"
removeAbandoned="true"
removeAbandonedTimeout="1120"
username="*******"
password="*******"
logAbandoned="true"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost/DBNexess?autoReconnect=true"
/>
</Context>
my error just happen once again ........
org.postgresql.util.PSQLException: This statement has been closed.
at org.postgresql.jdbc2.AbstractJdbc2Statement.checkClosed(AbstractJdbc2Statement.java:2508)
at org.postgresql.jdbc2.AbstractJdbc2Statement.getMaxRows(AbstractJdbc2Statement.java:595)
at org.postgresql.jdbc4.Jdbc4Statement.createResultSet(Jdbc4Statement.java:36)
at org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandler.handleResultRows(AbstractJdbc2Statement.java:211)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:381)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
why is it happenning ? what does it mean ?
--
Michael Musset,
Tel: 06 26 06 29 89
No, I'm not using Hibernate,
And i'm already using pooling because of :
<Context>
<Resource name="jdbc/Pool"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="20000"
removeAbandoned="true"
removeAbandonedTimeout="1120"
username="*******"
password="*******"
logAbandoned="true"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost/DBNexess?autoReconnect=true"
/>
</Context>
my error just happen once again ........
org.postgresql.util.PSQLException: This statement has been closed.
at org.postgresql.jdbc2.AbstractJdbc2Statement.checkClosed(AbstractJdbc2Statement.java:2508)
at org.postgresql.jdbc2.AbstractJdbc2Statement.getMaxRows(AbstractJdbc2Statement.java:595)
at org.postgresql.jdbc4.Jdbc4Statement.createResultSet(Jdbc4Statement.java:36)
at org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandler.handleResultRows(AbstractJdbc2Statement.java:211)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:381)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
why is it happenning ? what does it mean ?
On Wed, Nov 10, 2010 at 11:36 AM, Radosław Smogura <rsmogura@softperience.eu> wrote:
On Wed, 10 Nov 2010 11:20:14 +0100, Michael musset <mickamusset@gmail.com>
wrote:> Hi,[...]
>
> I'm having a troube in my application :> which JDBC i'm using ? this one :Are you using Hibernate in above? I have similar bug with Hibernate and
>
> http://ejurka.com/pgsql/jars/xml/
>
> from Kris Jurka ( thx to him )
>
>
> I don't understand why a preparestatement have been close ?
>
>
>
> thx for your help,
XA, try to use PooligDataSource.
--
----------
Radosław Smogura
http://www.softperience.eu
--
Michael Musset,
Tel: 06 26 06 29 89
it happens when you access a preparedstatement and the associted connection is closed. maybe your application was busy/idle for more than 120 seconds. see removeAbandonedTimeout="120" regards Thomas Am 10.11.2010 11:20, schrieb Michael musset: > Hi, > > I'm having a troube in my application : > > org.postgresql.util.PSQLException: This statement has been closed. > at > org.postgresql.jdbc2.AbstractJdbc2Statement.checkClosed(AbstractJdbc2Statement.java:2508) > at > org.postgresql.jdbc2.AbstractJdbc2Statement.getMaxRows(AbstractJdbc2Statement.java:595) > at > org.postgresql.jdbc4.Jdbc4Statement.createResultSet(Jdbc4Statement.java:36) > at > org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandler.handleResultRows(AbstractJdbc2Statement.java:211) > at > org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795) > at > org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257) > at > org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500) > at > org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388) > at > org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:381) > at > org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) > at > org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) > > > It's happen when I execute my PreparedStatement . > > > Normally it's work well, but in my error log, i found this .... > > I'm on ubuntu 10.04 server with a tomcat running. > i Have multi thread running, but i'm sure that other thread can't interfer > with that. > > And i'm using this : > > <Context> > <Resource name="jdbc/NexessPool" > auth="Container" > type="javax.sql.DataSource" > maxActive="100" > maxIdle="30" > maxWait="20000" > removeAbandoned="true" > removeAbandonedTimeout="120" > username="**********" > password="*********" > driverClassName="org.postgresql.Driver" > url="jdbc:postgresql://localhost/database" > /> > </Context> > > > > which JDBC i'm using ? this one : > > http://ejurka.com/pgsql/jars/xml/ > > from Kris Jurka ( thx to him ) > > > I don't understand why a preparestatement have been close ? > > > > thx for your help, >