RE: [INTERFACES] Large Object Exception/Serializing Java Objects
От | Peter Mount |
---|---|
Тема | RE: [INTERFACES] Large Object Exception/Serializing Java Objects |
Дата | |
Msg-id | 1B3D5E532D18D311861A00600865478C70BF66@exchange1.nt.maidstone.gov.uk обсуждение исходный текст |
Список | 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@kpi.com.au] Sent: Friday, December 10, 1999 7:35 PM To: pgsql-interfaces@postgreSQL.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: 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.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 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 по дате отправления: