Обсуждение: JDBC and LO - invalid large object descriptor

Поиск
Список
Период
Сортировка

JDBC and LO - invalid large object descriptor

От
"Andreas Vogler"
Дата:
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?

ByeAndreas



RE: JDBC and LO - invalid large object descriptor

От
Dnesbitt@encryptix.com
Дата:
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
> 


Re: JDBC and LO - invalid large object descriptor

От
Nelson Ferreira Jr
Дата:
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
> >