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
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? |