Hi Olaf, I'm playing with C/S mode since last Friday (thanks for your PBKey "fix"!).
It helps to put a logger.error() in the catch clause of PersistencBrokerClient.callServer() Method to get a little more info. However, I encountered a performance problem when using Iterators. OJB needs 3 Server request for each "hasNext(), next(), getObjectByID()" cycle, each taking 100 msecs, which delivers 3-4 objects per second. This is not very fast in these days... I will investigate this further, but don't know how much time I can spend on this topic. Uli > -----Urspr�ngliche Nachricht----- > Von: Olaf Geibig [mailto:[EMAIL PROTECTED]] > Gesendet am: Dienstag, 17. September 2002 11:43 > An: OJB Users List > Betreff: Re: [GENERAL] C/S mode strange behaviour > > 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.callServe > r(PersistenceBrokerClient.java:257) > > at > org.apache.ojb.broker.server.PersistenceBrokerClient.callServe > r(PersistenceBrokerClient.java:147) > > at > org.apache.ojb.broker.server.PersistenceBrokerClient.close(Per > sistenceBrokerClient.java:793) > > at org.apache.ojb.broker.Identity.<init>(Identity.java:206) > > at > org.apache.ojb.odmg.locking.PersistentLockMapImpl.getWriter(Pe > rsistentLockMapImpl.java:134) > > at > org.apache.ojb.odmg.locking.AbstractLockStrategy.getWriter(Abs > tractLockStrategy.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(L > ockManagerDefaultImpl.java:119) > > at > org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:234) > > at > org.apache.ojb.odmg.TransactionImpl.lockCollections(Transactio > nImpl.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(Transactio > nImpl.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(Transaction > Impl.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(Transaction > Impl.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(Transactio > nImpl.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(DatabaseCr > eator.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.callServe > r(PersistenceBrokerClient.java:257) > > at > org.apache.ojb.broker.server.PersistenceBrokerClient.callServe > r(PersistenceBrokerClient.java:147) > > at > org.apache.ojb.broker.server.PersistenceBrokerClient.close(Per > sistenceBrokerClient.java:793) > > at org.apache.ojb.broker.Identity.<init>(Identity.java:206) > > at > org.apache.ojb.odmg.locking.PersistentLockMapImpl.getWriter(Pe > rsistentLockMapImpl.java:134) > > at > org.apache.ojb.odmg.locking.AbstractLockStrategy.getWriter(Abs > tractLockStrategy.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(L > ockManagerDefaultImpl.java:119) > > at > org.apache.ojb.odmg.TransactionImpl.lock(TransactionImpl.java:234) > > at > org.apache.ojb.odmg.TransactionImpl.lockCollections(Transactio > nImpl.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(Transactio > nImpl.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(Transaction > Impl.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(Transaction > Impl.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(Transactio > nImpl.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(DatabaseCr > eator.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.ClassNotPersistenceCapableExce > ption: 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(Transaction > Impl.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(Transactio > nImpl.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(DatabaseCr > eator.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.ClassNotPersistenceCapableExce > ption: 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(Transaction > Impl.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(Transactio > nImpl.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(DatabaseCr > eator.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(Transactio > nImpl.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(DatabaseCr > eator.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(Transactio > nImpl.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(DatabaseCr > eator.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(DatabaseCr > eator.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.ClassNotPersistenceCapableExcep > tion: 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.callServe > r(PersistenceBrokerClient.java:257) > > at > org.apache.ojb.broker.server.PersistenceBrokerClient.callServe > r(PersistenceBrokerClient.java:147) > > at > org.apache.ojb.broker.server.PersistenceBrokerClient.abortTran > saction(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(DatabaseCr > eator.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.ClassNotPersistenceCapableExce > ption: 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(DatabaseCr > eator.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.callServe > r(PersistenceBrokerClient.java:257) > > at > org.apache.ojb.broker.server.PersistenceBrokerClient.callServe > r(PersistenceBrokerClient.java:147) > > at > org.apache.ojb.broker.server.PersistenceBrokerClient.close(Per > sistenceBrokerClient.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(DatabaseCr > eator.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.callServe > r(PersistenceBrokerClient.java:257) > > at > org.apache.ojb.broker.server.PersistenceBrokerClient.callServe > r(PersistenceBrokerClient.java:147) > > at > org.apache.ojb.broker.server.PersistenceBrokerClient.beginTran > saction(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(DatabaseCr > eator.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:ojb-user-> [EMAIL PROTECTED]> > >For > additional commands, > e-mail: <mailto:[EMAIL PROTECTED]>Some > > > > > -- > To unsubscribe, e-mail: > <mailto:ojb-user-> [EMAIL PROTECTED]> > For > additional commands, > e-mail: <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
