Пример #1
0
 protected void closeResources() {
   Iterator i = resources.entrySet().iterator();
   while (i.hasNext()) {
     Map.Entry entry = (Map.Entry) i.next();
     final Object value = entry.getValue();
     if (value instanceof MuleXaObject) {
       MuleXaObject xaObject = (MuleXaObject) value;
       if (!xaObject.isReuseObject()) {
         try {
           xaObject.close();
           i.remove();
         } catch (Exception e) {
           logger.error("Failed to close resource " + xaObject, e);
         }
       }
     }
   }
 }
Пример #2
0
  public synchronized void bindResource(Object key, Object resource) throws TransactionException {
    if (resources.containsKey(key)) {
      throw new IllegalTransactionStateException(
          CoreMessages.transactionResourceAlreadyListedForKey(key));
    }

    resources.put(key, resource);

    if (key == null) {
      logger.error("Key for bound resource " + resource + " is null");
    }

    if (resource instanceof MuleXaObject) {
      MuleXaObject xaObject = (MuleXaObject) resource;
      xaObject.enlist();
    } else if (resource instanceof XAResource) {
      enlistResource((XAResource) resource);
    } else {
      logger.error("Bound resource " + resource + " is neither a MuleXaObject nor XAResource");
    }
  }
Пример #3
0
 protected void delistResources() {
   Iterator i = resources.entrySet().iterator();
   while (i.hasNext()) {
     Map.Entry entry = (Map.Entry) i.next();
     final Object xaObject = entry.getValue();
     if (xaObject instanceof MuleXaObject) {
       // there is need for reuse object
       try {
         ((MuleXaObject) xaObject).delist();
       } catch (Exception e) {
         logger.error("Failed to delist resource " + xaObject, e);
       }
     }
   }
 }