That's great, Armin. Thanks. "Armin Waibel" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Hi Sean, > > Sean Dockery wrote: > > > Two questions... > > > > 1) Getting connections from a PersistenceBroker... > > > > In the documentation, it says that you can acquire a connection object > > directly from the PB API. By the fact that you can also acquire brokers > > from an Implementation instance, can I assume that the following is legal? > > > > Implementation odmg = OJB.getInstance(); > > Transaction tx = odmg.getTransaction(); > > tx.beginTransaction(); > > PersistenceBroker broker = ((HasBroker) tx).getBroker(); > > Connection connection = broker.serviceConnectionManager().getConnection(); > > PreparedStatement statement = connection.prepareStatement(sql); > > ResultSet resultSet = statement.executeQuery(); > > //... > > tx.commitTransaction(); > > > > The docs says to NOT close a connection... but what about Statement and > > ResultSet resources? > > > > The Statement and ResultSet are straightly opened by yourself, so you > have to close these resources by yourself. > > > 2) Using PersistenceBroker.getIteratorByQuery... > > > > Is the iterator returned by PersistenceBroker.getIteratorByQuery valid > > after the persistence broker has been closed (either explicitly because I'm > > using the PB API or implicitly by closing the an ODMG transaction. That > > is, is this valid... > > > > Implementation odmg = OJB.getInstance(); > > Transaction tx = odmg.getTransaction(); > > tx.beginTransaction(); > > PersistenceBroker broker = ((HasBroker) tx).getBroker(); > > Criteria criteria = new Criteria(); > > criteria.addEqualTo("category.id", category.getId()); > > criteria.addOrderByAscending("name"); > > Query query = QueryFactory.newQuery(Product.class, criteria); > > Iterator iterator = broker.getIteratoryByQuery(query); > > tx.commitTransaction(); > > > > while(iterator.hasNext()) { > > Product product = (Product) iterator.next(); > > // blah blah blah > > } > > > > Is it valid to use the iterator after the transaction has been committed > > (i.e.: broker has been closed)? > > > > This will (should ;-)) cause an exception, because the DB resources used > by the iterator will be closed at tx.commit. > So the answer is no. > After the PB instance was closed, the instance itself (the PB handle) > will become invalid, all further method calls should cause an exception > (except PB.close(), PB.isClosed(), PB.isInTransaction()) > > regards, > Armin > > > Thanks for your time...
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
