예제 #1
0
 /*
  * (non-Javadoc)
  *
  * @see org.mule.transaction.xa.AbstractResourceManager#doRollback(org.mule.transaction.xa.AbstractTransactionContext)
  */
 protected void doRollback(AbstractTransactionContext context) throws ResourceManagerException {
   QueueTransactionContext ctx = (QueueTransactionContext) context;
   if (ctx.removed != null) {
     for (Iterator it = ctx.removed.entrySet().iterator(); it.hasNext(); ) {
       Map.Entry entry = (Map.Entry) it.next();
       QueueInfo queue = (QueueInfo) entry.getKey();
       List queueRemoved = (List) entry.getValue();
       if (queueRemoved != null && queueRemoved.size() > 0) {
         for (Iterator itRemoved = queueRemoved.iterator(); itRemoved.hasNext(); ) {
           Object id = itRemoved.next();
           queue.putNow(id);
         }
       }
     }
   }
   ctx.added = null;
   ctx.removed = null;
 }
예제 #2
0
 /*
  * (non-Javadoc)
  *
  * @see org.mule.transaction.xa.AbstractResourceManager#doCommit(org.mule.transaction.xa.AbstractTransactionContext)
  */
 protected void doCommit(AbstractTransactionContext context) throws ResourceManagerException {
   QueueTransactionContext ctx = (QueueTransactionContext) context;
   try {
     if (ctx.added != null) {
       for (Iterator it = ctx.added.entrySet().iterator(); it.hasNext(); ) {
         Map.Entry entry = (Map.Entry) it.next();
         QueueInfo queue = (QueueInfo) entry.getKey();
         List queueAdded = (List) entry.getValue();
         if (queueAdded != null && queueAdded.size() > 0) {
           for (Iterator itAdded = queueAdded.iterator(); itAdded.hasNext(); ) {
             Object object = itAdded.next();
             Object id = doStore(queue, object);
             queue.putNow(id);
           }
         }
       }
     }
     if (ctx.removed != null) {
       for (Iterator it = ctx.removed.entrySet().iterator(); it.hasNext(); ) {
         Map.Entry entry = (Map.Entry) it.next();
         QueueInfo queue = (QueueInfo) entry.getKey();
         List queueRemoved = (List) entry.getValue();
         if (queueRemoved != null && queueRemoved.size() > 0) {
           for (Iterator itRemoved = queueRemoved.iterator(); itRemoved.hasNext(); ) {
             Object id = itRemoved.next();
             doRemove(queue, id);
           }
         }
       }
     }
   } catch (Exception e) {
     // throw new ResourceManagerException("Could not commit
     // transaction", e);
     // TODO: add an i18n Message
     throw new ResourceManagerException(e);
   } finally {
     ctx.added = null;
     ctx.removed = null;
   }
 }