I also got these errors even doing conn.setAutoCommit(false); in a high-load enviroment.
The solution is that you have to do a conn.commit(); after acessing the BLOB (even if you're
onlyreading data)
[]'s
Dnesbitt@encryptix.com wrote:
> Andreas,
>
> Are you doing the following prior to your executeQuery() method call?
>
> conn.setAutoCommit(false);
>
> If not, then I think that may be your problem. It may seem weird to do a
> query in a transaction, but that is how it works.
>
> Regards,
> //Dave
>
> > -----Original Message-----
> > From: Andreas Vogler [mailto:Andreas.Vogler@geneon.de]
> > Sent: Sunday, September 24, 2000 6:29 AM
> > To: pgsql-interfaces@postgresql.org
> > Subject: [INTERFACES] JDBC and LO - invalid large object descriptor
> >
> >
> > Hi,
> >
> > I have got a problem with reading large objects from Postgres
> > through JDBC
> > (both 7.0.2):
> > a call to resultset.getBytes(...) results in:
> >
> > FastPath call returned ERROR: lo_tell: invalid large object
> > descriptor (0)
> > at org.postgresql.fastpath.Fastpath.fastpath(Fastpath.java:141)
> > at org.postgresql.fastpath.Fastpath.fastpath(Fastpath.java:191)
> > at org.postgresql.fastpath.Fastpath.getInteger(Fastpath.java:203)
> > at org.postgresql.largeobject.LargeObject.tell(LargeObject.java:232)
> > at org.postgresql.largeobject.LargeObject.size(LargeObject.java:247)
> > at org.postgresql.jdbc2.ResultSet.getBytes(ResultSet.java:370)
> >
> > using "select lo_export(...)" is no problem, so I suppose the
> > data is stored
> > correctly within the DB.
> > Any idea where the 0 is comming from or what the problem could be?
> >
> > Bye
> > Andreas
> >