From: | "Joe Shevland" <shevlandj(at)kpi(dot)com(dot)au> |
---|---|
To: | <pgsql-interfaces(at)postgresql(dot)org> |
Subject: | Large Object Exception/Serializing Java Objects |
Date: | 1999-12-10 19:34:43 |
Message-ID: | 001101bf4345$9f502f60$6464a8c0@kpi.com.au |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-interfaces |
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.java:34
3)
at
org.ejboss.managers.EnterpriseBeanWrapperManager$LRUThread.run(EnterpriseBea
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
From | Date | Subject | |
---|---|---|---|
Next Message | gouri | 1999-12-10 20:14:12 | pgaccess |
Previous Message | Sergio A. Kessler | 1999-12-10 13:23:51 | Re: [INTERFACES] Apache+PostgreSQL+PHP3 |