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