Some addidtions to my old email.
First of all I wonder that there was no response to my email - I thought
that probably more people need the C/S mode.
Now I ran OJB's junit tests on a freshly unpacked and compiled OJB in
C/S mode and they also fail because of similar exceptions. So I think if
the junit tests fail the C/S mode must be really *not* working right
now. When I ran the junit tests with the client and server on two
different machines there were even more failures. So there is my question:
Is there anybody who is using the C/S mode successfully?
I find the C/S mode very buggy, the not existent getPBKey(), etc, etc. .
Probably the developers are more concentrating on other features. For me
the feature is quite important. So, that means I have write my own
little server or I try to work on the OJB server.... How to become a
contributor?
/olaf
Olaf Geibig wrote:
> Hello
>
> I'm getting more and more desperate about OJB's behaviour in C/S mode.
> I cannot make it work for me in a stable way. Probably it's a
> communication problem, but I'm running server and client on the same
> machine on localhost. Client and server are sharing also the
> OJB.properties file.
>
> OJB-0.9.5, jdk 1.3.1, server mode, ODMG interface, HSQLDB server mode.
>
> I run the same test code over and over again always an a freshly setup
> empty database and a freshly started OJB-server and I'm getting lots
> of different exceptions in every run - I mean different test runs
> result in diffrent exceptions then in the previous test runs. Moreover
> in singleVM mode everything is working fine. The exceptions are coming
> up in C/S mode *only*.
>
> For sure the execptions are thrown when I try to update objects in a
> n:m relation, sometimes but quite rare they also come up when storing
> the other objects with 1:n relations.
>
> Here is my code for the creation / update of m:n objects. Semester and
> CourseGroup have a m:n relation with no role.
>
> cg = new CourseGroup();
> cg.setName("Methodisch/Technologisch orientierter Schwerpunkt");
> cg.setHours(8);
> cg.setCollSemester(new Vector());
> s = (Semester)tool.querySelectFirst(odmg, Semester.class,
> "number=7");
> cg.getCollSemester().add(s);
> s = (Semester)tool.querySelectFirst(odmg, Semester.class,
> "number=6");
> cg.getCollSemester().add(s);
> cg.setCollCourse(new Vector());
> Transaction tx = odmg.newTransaction();
> tx.begin();
> db.makePersistent(cg);
> tx.commit();
>
> s = (Semester)tool.querySelectFirst(odmg, Semester.class,
> "number=6");
> cg = new CourseGroup();
> cg.setName("Aktuelle Tendenzen der WI");
> cg.setHours(4);
> cg.setCollSemester(new Vector());
> cg.getCollSemester().add(s);
> cg.setCollCourse(new Vector());
> Transaction tx2 = odmg.newTransaction();
> tx2.begin();
> db.makePersistent(cg);
> tx2.commit();
>
> I attached three different exceptions resulting from three different
> test runs with identical conditions. But for sure there is a
> org.apache.ojb.broker.PersistenceBrokerException: Error while
> communicating with OJB server
>
>------------------------------------------------------------------------
>
>[BOOT] INFO: OJB.properties: file:/C:/Documents and Settings/Olaf/My
>Documents/Devel/projects/stundenplan/run/server/OJB.properties
>(util.DatabaseCreator 148 ) Opening database timetable...
>(util.DatabaseCreator 148 ) creating Room...
>(DEFAULT 264 ) OJB Descriptor Repository:
>file:/C:/Documents and Settings/Olaf/My
>Documents/Devel/projects/stundenplan/run/server/repository.xml
>(DEFAULT 289 ) ...Finished parsing
>(util.DatabaseCreator 148 ) creating Season...
>(util.DatabaseCreator 148 ) creating Study...
>(util.DatabaseCreator 148 ) creating Curriculum...
>(util.DatabaseCreator 148 ) creating Semester...
>(util.DatabaseCreator 148 ) creating CourseGroup...
>(odmg.TransactionImpl 253 ) Locking obj
>og.timetable.persistent.Curriculum@5337d3 with lock mode 4 failed
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.callServer(PersistenceBrokerClient.java:257)
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.callServer(PersistenceBrokerClient.java:147)
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.close(PersistenceBrokerClient.java:793)
> at org.apache.ojb.broker.Identity.<init>(Identity.java:206)
> at
>org.apache.ojb.odmg.locking.PersistentLockMapImpl.getWriter(PersistentLockMapImpl.java:134)
> at
>org.apache.ojb.odmg.locking.AbstractLockStrategy.getWriter(AbstractLockStrategy.java:98)
> at
>org.apache.ojb.odmg.locking.ReadUncommittedStrategy.writeLock(ReadUncommittedStrategy.java:100)
> at
>org.apache.ojb.odmg.locking.ReadUncommittedStrategy.writeLock(ReadUncommittedStrategy.java:106)
> at
>org.apache.ojb.odmg.locking.LockManagerDefaultImpl.writeLock(LockManagerDefaultImpl.java:119)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:234)
> at
>org.apache.ojb.odmg.TransactionImpl.lockCollections(TransactionImpl.java:782)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:636)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at
>org.apache.ojb.odmg.TransactionImpl.lockCollections(TransactionImpl.java:782)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:636)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at org.apache.ojb.odmg.TransactionImpl.lockReferences(TransactionImpl.java:821)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:630)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at org.apache.ojb.odmg.TransactionImpl.lockReferences(TransactionImpl.java:821)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:630)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at
>org.apache.ojb.odmg.TransactionImpl.lockCollections(TransactionImpl.java:782)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:636)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at og.timetable.util.OJBTool.store(OJBTool.java:153)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:168)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.callServer(PersistenceBrokerClient.java:257)
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.callServer(PersistenceBrokerClient.java:147)
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.close(PersistenceBrokerClient.java:793)
> at org.apache.ojb.broker.Identity.<init>(Identity.java:206)
> at
>org.apache.ojb.odmg.locking.PersistentLockMapImpl.getWriter(PersistentLockMapImpl.java:134)
> at
>org.apache.ojb.odmg.locking.AbstractLockStrategy.getWriter(AbstractLockStrategy.java:98)
> at
>org.apache.ojb.odmg.locking.ReadUncommittedStrategy.writeLock(ReadUncommittedStrategy.java:100)
> at
>org.apache.ojb.odmg.locking.ReadUncommittedStrategy.writeLock(ReadUncommittedStrategy.java:106)
> at
>org.apache.ojb.odmg.locking.LockManagerDefaultImpl.writeLock(LockManagerDefaultImpl.java:119)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:234)
> at
>org.apache.ojb.odmg.TransactionImpl.lockCollections(TransactionImpl.java:782)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:636)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at
>org.apache.ojb.odmg.TransactionImpl.lockCollections(TransactionImpl.java:782)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:636)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at org.apache.ojb.odmg.TransactionImpl.lockReferences(TransactionImpl.java:821)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:630)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at org.apache.ojb.odmg.TransactionImpl.lockReferences(TransactionImpl.java:821)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:630)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at
>org.apache.ojb.odmg.TransactionImpl.lockCollections(TransactionImpl.java:782)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:636)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at og.timetable.util.OJBTool.store(OJBTool.java:153)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:168)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>Error while communicating with OJB server
>(DEFAULT 199 )
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
>(DEFAULT 199 )
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
>(odmg.TransactionImpl 253 ) Locking obj
>og.timetable.persistent.Semester@7050f5 with lock mode 4 failed
>org.apache.ojb.broker.metadata.ClassNotPersistenceCapableException: Error while
>communicating with OJB server
> at org.apache.ojb.broker.Identity.<init>(Identity.java:200)
> at
>org.apache.ojb.odmg.locking.LockManagerDefaultImpl.releaseLock(LockManagerDefaultImpl.java:140)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:252)
> at org.apache.ojb.odmg.TransactionImpl.lockReferences(TransactionImpl.java:821)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:630)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at
>org.apache.ojb.odmg.TransactionImpl.lockCollections(TransactionImpl.java:782)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:636)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at og.timetable.util.OJBTool.store(OJBTool.java:153)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:168)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>org.apache.ojb.broker.metadata.ClassNotPersistenceCapableException: Error while
>communicating with OJB server
> at org.apache.ojb.broker.Identity.<init>(Identity.java:200)
> at
>org.apache.ojb.odmg.locking.LockManagerDefaultImpl.releaseLock(LockManagerDefaultImpl.java:140)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:252)
> at org.apache.ojb.odmg.TransactionImpl.lockReferences(TransactionImpl.java:821)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:630)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at
>org.apache.ojb.odmg.TransactionImpl.lockCollections(TransactionImpl.java:782)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:636)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at og.timetable.util.OJBTool.store(OJBTool.java:153)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:168)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>Error while communicating with OJB server
>(odmg.TransactionImpl 253 ) Locking obj
>og.timetable.persistent.CourseGroup@46df77 with lock mode 4 failed
>org.odmg.LockNotGrantedException: Error while communicating with OJB server
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:256)
> at
>org.apache.ojb.odmg.TransactionImpl.lockCollections(TransactionImpl.java:782)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:636)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at og.timetable.util.OJBTool.store(OJBTool.java:153)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:168)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>org.odmg.LockNotGrantedException: Error while communicating with OJB server
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:256)
> at
>org.apache.ojb.odmg.TransactionImpl.lockCollections(TransactionImpl.java:782)
> at org.apache.ojb.odmg.TransactionImpl.register(TransactionImpl.java:636)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:248)
> at og.timetable.util.OJBTool.store(OJBTool.java:153)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:168)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>Error while communicating with OJB server
>(util.OJBTool 172 ) Lock not granted on object
>og.timetable.persistent.CourseGroup@46df77
>org.odmg.LockNotGrantedException: Error while communicating with OJB server
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:256)
> at og.timetable.util.OJBTool.store(OJBTool.java:153)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:168)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>(odmg.TransactionImpl 496 ) Abort transaction was called on tx
>org.apache.ojb.odmg.TransactionImpl@144823, associated PB was
>org.apache.ojb.broker.server.PersistenceBrokerClient@c02cc
>(DEFAULT 199 )
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
>(odmg.OJB 150 )
>org.apache.ojb.broker.metadata.ClassNotPersistenceCapableException: Error while
>communicating with OJB server
>(util.DatabaseCreator 204 ) DatabaseCreator.setupDB() error:
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.callServer(PersistenceBrokerClient.java:257)
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.callServer(PersistenceBrokerClient.java:147)
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.abortTransaction(PersistenceBrokerClient.java:340)
> at org.apache.ojb.odmg.TransactionImpl.abort(TransactionImpl.java:505)
> at og.timetable.util.OJBTool.store(OJBTool.java:157)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:168)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>
>------------------------------------------------------------------------
>
>[BOOT] INFO: OJB.properties: file:/C:/Documents and Settings/Olaf/My
>Documents/Devel/projects/stundenplan/run/server/OJB.properties
>(util.DatabaseCreator 148 ) Opening database timetable...
>(util.DatabaseCreator 148 ) creating Room...
>(DEFAULT 264 ) OJB Descriptor Repository:
>file:/C:/Documents and Settings/Olaf/My
>Documents/Devel/projects/stundenplan/run/server/repository.xml
>(DEFAULT 289 ) ...Finished parsing
>(util.DatabaseCreator 148 ) creating Season...
>(util.DatabaseCreator 148 ) creating Study...
>(util.DatabaseCreator 148 ) creating Curriculum...
>(util.DatabaseCreator 148 ) creating Semester...
>(util.DatabaseCreator 148 ) creating CourseGroup...
>(DEFAULT 199 )
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
>(util.DatabaseCreator 204 ) DatabaseCreator.setupDB() error:
>org.apache.ojb.broker.metadata.ClassNotPersistenceCapableException: Error while
>communicating with OJB server
> at org.apache.ojb.broker.Identity.<init>(Identity.java:200)
> at
>org.apache.ojb.odmg.locking.LockManagerDefaultImpl.releaseLock(LockManagerDefaultImpl.java:140)
> at org.apache.ojb.odmg.TransactionImpl.removeLock(TransactionImpl.java:439)
> at org.apache.ojb.odmg.TransactionImpl.doClose(TransactionImpl.java:339)
> at org.apache.ojb.odmg.TransactionImpl.commit(TransactionImpl.java:472)
> at og.timetable.util.OJBTool.querySelectFirst(OJBTool.java:111)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:165)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>
>
>178 instances
>
>------------------------------------------------------------------------
>
>[BOOT] INFO: OJB.properties: file:/C:/Documents and Settings/Olaf/My
>Documents/Devel/projects/stundenplan/run/server/OJB.properties
>(util.DatabaseCreator 148 ) Opening database timetable...
>(util.DatabaseCreator 148 ) creating Room...
>(DEFAULT 264 ) OJB Descriptor Repository:
>file:/C:/Documents and Settings/Olaf/My
>Documents/Devel/projects/stundenplan/run/server/repository.xml
>(DEFAULT 289 ) ...Finished parsing
>(util.DatabaseCreator 148 ) creating Season...
>(util.DatabaseCreator 148 ) creating Study...
>(util.DatabaseCreator 148 ) creating Curriculum...
>(util.DatabaseCreator 148 ) creating Semester...
>(util.DatabaseCreator 148 ) creating CourseGroup...
>(DEFAULT 199 )
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
>(DEFAULT 199 )
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
>(DEFAULT 199 )
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
>(util.OJBTool 172 ) Transaction aborted on object
>og.timetable.persistent.CourseGroup@68afdd
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.callServer(PersistenceBrokerClient.java:257)
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.callServer(PersistenceBrokerClient.java:147)
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.close(PersistenceBrokerClient.java:793)
> at org.apache.ojb.broker.Identity.<init>(Identity.java:206)
> at
>org.apache.ojb.odmg.locking.LockManagerDefaultImpl.releaseLock(LockManagerDefaultImpl.java:140)
> at org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:252)
> at og.timetable.util.OJBTool.store(OJBTool.java:153)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:168)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>(util.DatabaseCreator 204 ) DatabaseCreator.setupDB() error:
>org.apache.ojb.broker.PersistenceBrokerException: Error while communicating with OJB
>server
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.callServer(PersistenceBrokerClient.java:257)
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.callServer(PersistenceBrokerClient.java:147)
> at
>org.apache.ojb.broker.server.PersistenceBrokerClient.beginTransaction(PersistenceBrokerClient.java:359)
> at org.apache.ojb.odmg.TransactionImpl.begin(TransactionImpl.java:535)
> at og.timetable.util.OJBTool.querySelectFirst(OJBTool.java:87)
> at
>og.timetable.util.DatabaseCreator.createCourseGroup(DatabaseCreator.java:170)
> at og.timetable.util.DatabaseCreator.setupDB(DatabaseCreator.java:131)
> at og.timetable.util.TimetableTool.main(TimetableTool.java:46)
>
>
>216 instances
>
>
>------------------------------------------------------------------------
>
>--
>To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>Some
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>