RE: [INTERFACES] Large Object Exception/Serializing Java Objects

From: Peter Mount <petermount(at)it(dot)maidstone(dot)gov(dot)uk>
To: "'Joe Shevland'" <shevlandj(at)kpi(dot)com(dot)au>, pgsql-interfaces(at)postgresql(dot)org
Subject: RE: [INTERFACES] Large Object Exception/Serializing Java Objects
Date: 1999-12-10 07:38:53
Message-ID: 1B3D5E532D18D311861A00600865478C70BF66@exchange1.nt.maidstone.gov.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Joe, what version of the driver are you using?

The Z error I thought was fixed some time ago. Originally the fastpath
code was based on libpq, but I found that the backend also send a packet
labeled Z, so added a check for it.

Peter

--
Peter Mount
Enterprise Support
Maidstone Borough Council
Any views stated are my own, and not those of Maidstone Borough Council.

-----Original Message-----
From: Joe Shevland [mailto:shevlandj(at)kpi(dot)com(dot)au]
Sent: Friday, December 10, 1999 7:35 PM
To: pgsql-interfaces(at)postgreSQL(dot)org
Subject: [INTERFACES] Large Object Exception/Serializing Java Objects

Hi all,

I'm trying to persist some Java objects in a PostgreSQL database using
JDBC
(2.0).

I get the following error:

Fri Dec 10 11:26:15 PST 1999 - [copyright] EJBoss - The EJB Open Source
Server v0.9
Fri Dec 10 11:26:48 PST 1999 - [Exception]
Fri Dec 10 11:26:48 PST 1999 - FastPath protocol error: Z
FastPath protocol error: Z
at postgresql.fastpath.Fastpath.fastpath(Fastpath.java:159)
at postgresql.fastpath.Fastpath.fastpath(Fastpath.java:188)
at postgresql.fastpath.Fastpath.getInteger(Fastpath.java:200)
at
postgresql.largeobject.LargeObjectManager.create(LargeObjectManager.java
:176
)
at
org.ejboss.storage.PGSecondaryStorage.serialize(PGSecondaryStorage.java:
245)
at
org.ejboss.storage.PGSecondaryStorage.store(PGSecondaryStorage.java:117)
at
org.ejboss.ejb.EnterpriseBeanWrapper.passivate(EnterpriseBeanWrapper.jav
a:34
3)
at
org.ejboss.managers.EnterpriseBeanWrapperManager$LRUThread.run(Enterpris
eBea
nWrapperManager.java:403)
at java.lang.Thread.run(Thread.java:479)

This occurs upon trying to create the large object... before going to
the
source I just wanted to check that this is supposed to work and all
that.

Out of interest, here's the offending code fragment (it may be just
plain
wrong... any ideas appreciated!):

private int serialize(EnterpriseBean bean)
throws IOException, SQLException
{
ByteArrayOutputStream byte_out = new ByteArrayOutputStream();
ByteArrayInputStream byte_in;
ObjectOutputStream obj_out = new
ObjectOutputStream(byte_out);

byte[] classbytes;
byte buf[] = new byte[2048];
int read=0;

// lobj was created in the constructor...

// Create the ejb object using the PostgreSQL specific blob
support
int oid =
lobj.create(LargeObjectManager.READ|LargeObjectManager.WRITE);

LargeObject obj = lobj.open(oid,LargeObjectManager.WRITE);
DriverManager.println("[PGSecondaryStorage] Got large object
obj="+obj);

// Copy the EJB to a temporary byte array
obj_out.writeObject( bean );
obj_out.flush();
classbytes = byte_out.toByteArray();
byte_in = new ByteArrayInputStream(classbytes);

// Copy the data to the large object
while((read=byte_in.read(buf,0,2048))>0) {
obj.write(buf,0,read);
}

obj.close();

return oid;
}

Thanks,
Joe.

---
Joe Shevland
Principal Consultant
KPI Logistics Pty Ltd
mailto:shevlandj(at)kpi(dot)com(dot)au
http://www.kpi.com.au

************

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Peter Mount 1999-12-10 11:56:58 RE: [INTERFACES] Large Object Exception/Serializing Java Objects
Previous Message Peter Mount 1999-12-10 07:27:20 RE: [INTERFACES] Transaction support in 6.5.3/JDBC