JDBC - error reading BLOBs

From: Nelson Ferreira Jr <nelson(at)radix(dot)com(dot)br>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: JDBC - error reading BLOBs
Date: 2000-07-15 12:26:13
Message-ID: 39705864.8CABD64F@radix.com.br
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Hi,

I got the following error when reading BLOBs from a database.
Everything
works fine when there is a few concurrent requests, but when putting the

servlet in a heavy-load situation, I got the following errors:

ERROR: lo_tell: invalid large object descriptor (0)
ERROR: lo_close: invalid large obj descriptor (1)
ERROR: lo_read: invalid large obj descriptor (1)
ERROR: lo_lseek: invalid large obj descriptor (1)

It only happens with 10 or more concurrent requests, and about 5% of
the
requests fails. Here is the code:

--------------------------------------------------------------------
con.setAutoCommit(false)
pstmt =con.prepareStatement(query_gif);
ResultSet rs_gif = pstmt.executeQuery();

if (rs_gif.next()) {
BufferedInputStream gifDados = new
BufferedInputStream(rs_gif.getBinaryStream("GIF"));
byte[] buf =new byte[4*1024]; //4Kb buffer
int tam;
while ((tam =gifDados.read(buf,0,buf.length)) != -1){
out.write(buf,0,tam); // Its the PrintWriter of my Servlet
}
}
con.setAutoCommit(true);

--------------------------------------------------------------------

I am runnig postgreSQL 7.0.2 on a RedHat 6.2 linux

Thanks

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Matt Fair 2000-07-15 18:09:09 JDBC Query bug
Previous Message Peter Mount 2000-07-15 09:53:24 Re: How do I use connection pooling?