Re: how to clear cache
Armin Waibel <[email protected]> Fri, 28 Sep 2007 15:25:00 +0200
| Newsgroups | gmane.comp.jakarta.ojb.user |
|---|---|
| Message-ID | <[email protected]> |
Alessandro Colantoni wrote: > > I think you are using the cache ObjectCachePerBrokerImpl. > Or the recommended two-level cache which has a session cache too. > In the method findbroker to put a condition that if the entry of > Mandragora.properties broker.useUserBroker is true, return the userbroker in > place of create a new broker. > > And in all methods of OjbPbDAO , when they close the broker, put a > condition that if broker.useUserBroker = true don't close, else close. > > So it is user responsibility to create and close the broker. > > With all of this your code should work. Of course remember to close the > broker. > > Someone else (Armin? )agree with this? > I hope have been clear enough. If OjbPbDAO can differ between user-PB and new-PB this should work, else a user got problems when using both strategies - e.g. most times inject a user-PB, but from time to time using the ServiceLocator without injection of a user-PB (e.g. with default settings, based on the current PBKey, to perform a simple query). In general, I think implementing ServiceLocator and DAO as singletons cause some drawbacks, because singletons make it impossible to use different PBKey (e.g. different databases) in the same web-project/application or in a multi-threaded environment. If ServiceLocator isn't a singleton it can have a state (e.g. the user can specify a PBKey to force creation of specific PB instances). regards, Armin > > Anyway Hans, download the source, and have a look, so you can help. look at > the OjbDAO methods. > They just use Ojb so it is very easy and we can solve this together. > > if you and Armin agree I start as soon as possible, even if I'm going on > travel tomorrow until October the 3th > > > Thanks > and regards > > Alessandro > > > > > > > > On 9/26/07, Hans Novak <[email protected]> wrote: >> Hi Allesandro, >> >> i think im stupid - or - how we in germany say: i dont see the wood for >> the trees ... ;-) >> im my (ojb) dao class i use >> >> >> public class PartnerFactoryCore { >> private PersistenceBroker broker = null; >> static Logger logger = Logger.getLogger("osf"); >> >> public PartnerFactoryCore() { >> try { >> broker = >> PersistenceBrokerFactory.defaultPersistenceBroker(); >> } catch (Exception e) { >> e.printStackTrace(); >> MsgBoxHn.msgBoxOK(e.getMessage().toString() + >> "\n\n\nProgrammende."); >> System.exit(0); >> } >> } >> >> .... >> } >> >> >> I use mandragora for example to store an object like this: >> >> >> >> private void saveData(){ >> formPartner = getPartnerFromForm(); >> LOGGER.debug("Data Saving..."); >> >> //old way!!! - do not delete objects in the collection tree >> //partnerFactoryCore.store(formPartner); //from >> >> // new Way with mandragora >> try { >> BD bd = >> ServiceLocator.getInstance >> ().getManagerBD("BDFactoryDefaultClass","StandardBDDefaultClass"); >> bd.updateCollectionReferences(formPartner); >> } catch (Exception e) { >> e.printStackTrace(); >> } >> >> LOGGER.debug(formPartner.toString(0)); >> } >> >> >> >> how can i put this 2 things together ? >> >> >> Hans >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> >