/** * {@inheritDoc} */ public void onLeaseSuspended(Object leaseOwner, Lease lease) { if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "The lease for {0} has been suspended. Rolling back delivered messages\n", this); } CacheFactory.getCache(Subscription.CACHENAME).invoke(getIdentifier(), new SubscriptionRollbackProcessor()); }
/** * {@inheritDoc} */ public void onLeaseExpiry(Object leaseOwner, Lease lease) { if (isDurable()) { if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "The lease for durable {0} has expired. Rolling back delivered messages\n", this); } CacheFactory.getCache(Subscription.CACHENAME).invoke(getIdentifier(), new SubscriptionRollbackProcessor()); } else { super.onLeaseExpiry(leaseOwner, lease); } }
/** * {@inheritDoc} */ public void rollback() { ensureActive(); resetMessageSequenceVerification(); if (!isAutoCommitting()) { // ensure that we have a subscription from which we can retrieve // messages ensureSubscription(); // clear the delivered list for the subscription CacheFactory.getCache(Subscription.CACHENAME).invoke(getSubscriptionIdentifier(), new SubscriptionRollbackProcessor()); } }
/** * {@inheritDoc} */ public void rollback() { ensureActive(); resetMessageSequenceVerification(); if (!isAutoCommitting()) { // ensure that we have a subscription from which we can retrieve // messages ensureSubscription(); // determine the range of messages that are visible // (these are the ones we must rollback) MessageTracker messageTracker = (MessageTracker) CacheFactory.getCache(Subscription.CACHENAME).invoke(getSubscriptionIdentifier(), new ExtractorProcessor("getVisibleMessageTracker")); NamedCache destinationCache = CacheFactory.getCache(Destination.CACHENAME); destinationCache.invoke(getDestinationIdentifier(), new RollbackMessageProcessor(getSubscriptionIdentifier(), messageTracker)); // clear the delivered list for the subscription CacheFactory.getCache(Subscription.CACHENAME).invoke(getSubscriptionIdentifier(), new SubscriptionRollbackProcessor()); } }