Thread: JDBC locking on processResults

JDBC locking on processResults

From
Mike Heath
Date:
I'm using Postgresql 8.0.2 on SuSE Linux Professional 9.2.  I'm using
Java version 1.5.0_02.  I'm using The 8.0.311 build of the JDBC driver.

I've spent all day trying to debug this problem and the following is as
far as I've gotten.  I've been stepping through the JDBC driver code and
when I get to org.postgresql.jdbc2.AbstractJdbc2Statement (object is
actually of type Jdbc3PreparedStatement) in method int[] executeBatch()

Value in queries (as a string produced to toString() method) ="insert
into assets (report_id, create_date, modify_date, asset_name, parent_id,
asset_type_id, create_user_id, modify_user_id, account_id, disabled,
hidden, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"

The value in parameterLists.SimpleParameterList =
"[java.lang.Object@19afdb9, 2005-04-20 16:36:01.566000-0600, 2005-04-20
16:36:01.566000-0600, Image test, java.lang.Object@19afdb9, 9, 1, 1, 1,
0, 0, 565]"

This all looks simple enough.  At least, I can't see anything out of the
ordinary here.

However, when I trace down to
org.postgresql.core.V3.QueryExecutorImpl.processResults(ResutlHandler,
int) (line 1122) it makes a call to pgStream.ReceiveChar() and just
locks.  It appears as though it's waiting for something from the server
and the server isn't sending it.  I don't see any errors in the server
logs.

I'm at the end of my rope.  Any ideas or suggestions and what else I can
do to debug this?  A great deal of other queries and updates run just
fine on this database.  It's this particular case that is broken and I
can't figure it out.

-Mike


Re: JDBC locking on processResults

From
Kris Jurka
Date:

On Wed, 20 Apr 2005, Mike Heath wrote:

> I'm using Postgresql 8.0.2 on SuSE Linux Professional 9.2.  I'm using
> Java version 1.5.0_02.  I'm using The 8.0.311 build of the JDBC driver.
>
> However, when I trace down to
> org.postgresql.core.V3.QueryExecutorImpl.processResults(ResutlHandler,
> int) (line 1122) it makes a call to pgStream.ReceiveChar() and just
> locks.  It appears as though it's waiting for something from the server
> and the server isn't sending it.  I don't see any errors in the server
> logs.

It is indeed waiting for a server response and I have no reason to believe
this is a problem with either the server or the driver.  It is likely
waiting to acquire some kind of lock, you did mention there is lot of
other things going on.

Kris Jurka


Re: JDBC locking on processResults

From
Oliver Jowett
Date:
Mike Heath wrote:

> However, when I trace down to
> org.postgresql.core.V3.QueryExecutorImpl.processResults(ResutlHandler,
> int) (line 1122) it makes a call to pgStream.ReceiveChar() and just
> locks.  It appears as though it's waiting for something from the server
> and the server isn't sending it.  I don't see any errors in the server
> logs.

Can you set logLevel=2 as a URL parameter and send me the resulting
logs? (off-list if they're big)

-O