using proxies ? Oh, i see now. Proxy opens and closes broker well. that's it ?
I didn't think to that. Tsss... I'm sorry. It seems that i'm looking for my lost brokers since too much time ago. I guess i'm going to check all my DAOs and all my transactions again (or may be someone else now ;-) ) Thanks again. Bye. On 4/25/06, Armin Waibel <[EMAIL PROTECTED]> wrote: > > Hi Bruno, > > Bruno CROS wrote: > > Hi Armin, > > > > Here's is a schematic example : > > > > Consider a service method that returns an object "ProductBean". > ProductBean > > is not O/R mapped but the reading calls a second method that read O/R > > mapped Product object. Then, relations are followed, to find description > of > > his Category (Consider that a product have 1 Category. > > > > 2nd method looks like that (classic): > > > > public static Product getProduct(String id) { > > PersistenceBroker broker = null; > > try { > > PersistenceBroker brojer = > > PersistenceBrokerFactory.defaultPersistenceBroker(); > > Identity oid = broker.serviceIdentity().buildIdentity(Product.class, > > id); > > Product product = (Product) broker.getObjectByIdentity(oid); > > return product; > > } finally { > > if (broker !=null ) > > { broker.close(); > > } > > } > > } > > > > Frst method looks like that : > > > > public static ProductBean getProductBean(String id) > > { Product p = getProduct(id); // 2nd method call > > if (p!=null) > > { ProductBean product = new ProductBean(); > > product.setDescription(p.getDescription()); > > product.setID(p.getId()); > > // and here's the O/R recall > > product.setCategoryDescription( p.getCategory().getDescription() ); > > // now, broker is open... how does it close ? > > Sorry, I didn't get it. The Category object associated with Product p > was materialized too when getProduct(id) was called (auto-retrieve is > true). Why does p.getCategory() open a new PB instance? > > regards, > Armin > > > return product; > > } > > return null; > > } > > > > I tried to wrap the code of first method with a tx.open() and tx.abort(), > to > > be sure that broker is released at the end with the abort(). > > > > > > thanks > > > > regards. > > > > > > > > On 4/25/06, Armin Waibel <[EMAIL PROTECTED]> wrote: > >> Hi Bruno, > >> > >> Bruno CROS wrote: > >>> Hi, > >>> > >>> It seems that read objects with a broker, can read related objects by > >>> auto-retrieve set to "true" despite broker is closed. > >> I can't see what you mean. When OJB materialize an object with related > >> objects and auto-retrieve is 'true', the full materialized object is > >> returned. Thus it's not possible to close the PB instance while object > >> materialization (except by an illegal concurrent thread). > >> > >> Or do you mean materialization of proxy references? In this case OJB > try > >> to lookup the current PB instance and if not found internally a PB > >> instance is used for materialization and immediately closed after use. > >> > >> Could you please describe more detailed (with example code)? > >> > >> regards, > >> Armin > >> > >>> I suppose that a getDefaultBroker is done, and the borrowed broker is > >> never > >>> closed (because no reference on it). > >>> Note : This occurred because, application has been written with > several > >>> layers, one for dao, one for services, one for UI. > >>> > >>> How can i avoid "auto-retrieves" readings to take brokers in the > PBPool > >> by > >>> themselves ? > >>> > >>> Thanks. > >>> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >