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 ? 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] > >