Hi Olaf
Olaf Geibig wrote:
> It's not your fault, your code is correct - it's a bug in OJB. Better to
> say: it was forgotten to implement the getPBKey() and setPBKey methods
> in org.apache.ojb.broker.server.PersistenceBrokerClient.
>
> I found this out about one week ago and I fixed it. I'm sorry that I
> didn't announce this earlier and publish my patch here, but I I'm under
> strong pressure to finish my works.
> Moreover I resigned from using the
> OJB C/S mode after I ran some tests in the C/S mode. The result was very
> disappointing. In the current C/S mode implementation OJB is horribly
> slow.
> An example query on a table with lots of references to other
> tables took far more than one minute!!! Additionally I couldn't run the
> junit tests successfully in C/S mode - so I gave up on the C/S mode.
I agree. The OJB C/S mode is slow. It is useful only for *very special*
situations. In these situations it is crucial to scale OJB accross
multiple servers and the communication overhead can/must be neclected.
For 99% it won't be neccessary to run OJB in C/S mode.
> I'm currently working on a distributed solution with RMI. Although RMI
> is also not a speed king the results were much better. The same query
> takes me now just 10 seconds. I just have some problems by implementing
> a remote observer to notify all clients of changes on a persistent
> object...
>
> You might say now that 10 seconds is also slow but this was not only the
> time of the query. In both cases I took the time which is was printed
> out by the ant task for running my test client, so that means it
> includes invocation of the java VM, jakarta-ant and the initialization
> of my test client and initialization of OJB.
>
> /olaf
>
>
> But if you want to continue to play around with the C/S mode, you can
> use my 'guerilla patch':
I will integrate your patch !
cheers,
Thomas
>
> 1) org.apache.ojb.broker.server.PersistenceBrokerClient:
> Create a private variable for the pbKey and change the methods
> getPBKey() and setPBKey():
>
> private PBKey pbKey;
>
> ...
>
> public PBKey getPBKey()
> {
> /*@todo implementation*/
> //throw new UnsupportedOperationException("Not implemented!!");
> return pbKey;
> }
>
> public void setPBKey(PBKey key)
> {
> /*@todo implementation*/
> //throw new UnsupportedOperationException("Not implemented!!");
> pbKey = key;
> }
>
> 2) org.apache.ojb.odmg.DatabaseImpl:
> Change the method open(), by adding a line which sets the pbKey.
> ATTENTION: this does not work when the database is not named, ie.
> name=null, when you open the database the first time.
>
> if(name == null)
> {
> if(log.isDebugEnabled()) log.debug("name was null, open
> default database");
> broker =
> PersistenceBrokerFactory.defaultPersistenceBroker();
> pbKey = broker.getPBKey();
> }
> else
> {
> broker =
> PersistenceBrokerFactory.createPersistenceBroker(extractAllTokens(name));
> broker.setPBKey(extractAllTokens(name));
> pbKey = broker.getPBKey();
> }
>
>
>
> --
> To unsubscribe, e-mail: <mailto:[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]>