Re: JDBC and LO - invalid large object descriptor

Lists: pgsql-interfaces
From: Dnesbitt(at)encryptix(dot)com
To: Andreas(dot)Vogler(at)geneon(dot)de
Cc: Dnesbitt(at)encryptix(dot)com, pgsql-interfaces(at)postgresql(dot)org
Subject: RE: JDBC and LO - invalid large object descriptor
Date: 2000-09-29 02:20:55
Message-ID: 19016070071ED411B61300508BAC4B75041A61@exch1etix.encryptix.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

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(dot)Vogler(at)geneon(dot)de]
> Sent: Sunday, September 24, 2000 6:29 AM
> To: pgsql-interfaces(at)postgresql(dot)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
>


From: Nelson Ferreira Jr <nelson(at)radix(dot)com(dot)br>
To: Dnesbitt(at)encryptix(dot)com, pgsql-interfaces(at)postgresql(dot)org
Subject: Re: JDBC and LO - invalid large object descriptor
Date: 2000-10-02 18:58:01
Message-ID: 39D8DAB9.35A9F517@radix.com.br
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

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 only reading data)

[]'s

Dnesbitt(at)encryptix(dot)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(dot)Vogler(at)geneon(dot)de]
> > Sent: Sunday, September 24, 2000 6:29 AM
> > To: pgsql-interfaces(at)postgresql(dot)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
> >