public void invalidateFromCache()
{
}
public void ejbHomeInvalidateCompleteOrders(Collection/*<orderlocal>*/ orders) { Iterator iter = orders.iterator(); while(iter.hasNext()) { OrderLocal order = (OrderLocal)iter.next(); // this just adds the option A bean to this transaction so that when we rollback below // it gets discarded, i.e. removed from the cache. order.invalidateFromCache(); } myEntityCtx.setRollbackOnly(); }
BookLocal book = ivBookHome.findByPrimaryKey(ivOrder.getSymbol()); Collection/*<OrderKey>*/ completedOrders = book.acceptOrder(session, pub, ivOrder, cache); // invalidate all completed orders from the CMP option A cache. try { if(!completedOrders.isEmpty()) ivOrderHome.invalidateCompleteOrders(completedOrders); } catch (Exception e) { // ignore expected exception }
public Collection/*<OrderLocal>*/ acceptOrder(…) Collection completeOrders = new LinkedList(); OrderLocal buyer = ...; OrderLocal seller = ...; ... some business logic.... if(buyer.getIsComplete()) completeOrders.add(buyer); if(seller.getIsComplete()) completeOrders.add(seller); … return completedOrders; }
이 코드는 처리를 완료한 캐시된 오브젝트를 제거하는 응용프로그램을 보여줍니다. 응용프로그램에서 오브젝트를 제거하지 않으면 캐시에 유용한 인스턴스 및 유용하지 않은 인스턴스가 모두 존재합니다. 유용한 인스턴스는 계속 필요하거나 보류 중이거나 완료되지 않은 레코드입니다. 캐싱이 완료된 레코드 지점이 없습니다. 응용프로그램에서는 이 접근 방법을 사용하여 완료한 오브젝트를 제거할 수 있습니다.
Related concepts
특정 CMP 데이터 파티션