Large Object Exception/Serializing Java Objects

Поиск
Список
Период
Сортировка
От Joe Shevland
Тема Large Object Exception/Serializing Java Objects
Дата
Msg-id 001101bf4345$9f502f60$6464a8c0@kpi.com.au
обсуждение исходный текст
Список 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: Zat postgresql.fastpath.Fastpath.fastpath(Fastpath.java:159)at
postgresql.fastpath.Fastpath.fastpath(Fastpath.java:188)atpostgresql.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 =
newObjectOutputStream(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
largeobject
 
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@kpi.com.au
http://www.kpi.com.au



В списке pgsql-interfaces по дате отправления:

Предыдущее
От: Assaf Arkin
Дата:
Сообщение: Re: [INTERFACES] Transaction support in 6.5.3/JDBC
Следующее
От: Adolfo Diaz
Дата:
Сообщение: Apache+PostgreSQL+PHP3