code: public void addAsyncResource(JTAAsyncResourceBase resource) throws SystemException
      {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "addAsyncResource", new Object[] { this, resource });
  
          if (_asyncResourceObjects == null) {
              _asyncResourceObjects = new ArrayList<JTAAsyncResourceBase>();
          } else {
              for (JTAAsyncResourceBase asyncRes : _asyncResourceObjects) {
                  if (resource.getKey().equals(asyncRes.getKey())) {
                      // Caller to determine appropriate action
                      final SystemException se = new SystemException("Cannot register two asynchronous resources with the same keys: " + asyncRes.getKey());
                      if (tc.isEntryEnabled())
                          Tr.exit(tc, "addAsyncResource", se);
                      throw se;
                  }
              }
          }
  
          resource.setResourceStatus(StatefulResource.REGISTERED);
          _asyncResourceObjects.add(resource);
  
          if (tc.isEventEnabled())
              Tr.event(tc, "(SPI) SERVER registered with Transaction. TX: " + _transaction.getLocalTID() + ", Resource: " + resource);
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "addAsyncResource");
      }
docs: Adds a reference to a Resource object to the list in the registered state.
  
  This is intended to be used for registering WSAT Async Resource objects which do not need any start association.
  
  @param resource
  
  @return