prepareCall hangs

From: Akhil Srinivasan <akhilss(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: prepareCall hangs
Date: 2005-06-20 16:15:10
Message-ID: ad76b9f205062009157b83571e@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi
I have a an application that uses a lot of stored functions, some of them
which create temporary tables and refcursors that point to the tables.
Something that comes up occasionally are errors like

the jdbc code looks like
Connection con = poolingDataSource.getConnection();
con.setAutoCommit(false);
CallableStatement proc = con.prepareCall("{ ? = call \"insAccount\" ( ? )
}");

proc.registerOutParameter(1, Types.OTHER);
proc.setString(2,userName);
this.registerCallableStatementForCancel(proc);
logger.debug("registerCallableStatementForCancel(): exit"+userName);
/* another thread will call statement.cancel() if timeout exceeded*/
proc.execute();
this.unregisterCallableStatementForCancel(proc);
logger.debug("unregisterCallableStatementForCancel(): exit"+userName);
ResultSet rset = (ResultSet)proc.getObject(1);

Occasionally the prepareCall just hangs, as logging statements show that it
does not enter the execute(). The called procedures may or may not user
temporary tables. But the functions hang just the same.
Is there anyway i can avoid the hang condition or the next best thing some
king of time out mechanism. I have one setup in the event that execute
hangs. But i cannot think of how to cancel a prepareCall().

The application has a commons-dbcp maintaining a connection pool to the
database server. The jdbc driver used is the jdbc3. The database version is
7.4.5. It has been deployed on a Debian Linux system with kernel version
2.6.8.

Thanks
Akhil Srinivasan

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message David Gagnon 2005-06-20 21:23:59 Re: Problems with temporary tables created in callable functions
Previous Message Akhil Srinivasan 2005-06-20 16:05:06 Re: Problems with temporary tables created in callable functions