public void rollbackBreakIteration(List objectsToStore)
    {
        // now we mix up different api's and use PB-api too
        log.info("rollbackBreakIteration");
        /*
        store list of objects, then get these objects with Iterator, start
        iteration, then break
        */
        storeObjects(objectsToStore);
        Class searchClass = objectsToStore.get(0).getClass();
        PersistenceBroker broker = getBroker();
        try
        {
            Query q = new QueryByCriteria(searchClass);
            // we get the iterator and step into the first found object
            Iterator it = broker.getIteratorByQuery(q);
            it.next();
        }
        /*
        Now we want to break iteration or something wrong. In this case we have to
        cleanup the used PB instance by a close call
        */
        finally
        {
            if(broker != null) broker.close();
        }

        // to notify the client about the failure we throw an exception
        // if we don't throw such an exception the client don't get notified
        // about the failure
        throw new EJBException("## Testing of rollback behaviour - rollbackBreakIteration ##");
    }
public void rollbackBreakIteration ( List objectsToStore ) { log . info ( "rollbackBreakIteration" ) ; storeObjects ( objectsToStore ) ; Class searchClass = objectsToStore . get ( 0 ) . getClass ( ) ; PersistenceBroker broker = getBroker ( ) ; try { Query q = new QueryByCriteria ( searchClass ) ; Iterator it = broker . getIteratorByQuery ( q ) ; it . next ( ) ; } finally { if ( broker != null ) broker . close ( ) ; } throw new EJBException ( "## Testing of rollback behaviour - rollbackBreakIteration ##" ) ; }
We use several OJB services, start to iterate a query result and do
an odmg-tx.abort call.

@ejb:interface-method