code: protected void open()
          throws EFapsException
      {
          AbstractResource.LOG.debug("open resource:{}", this);
          if (this.opened) {
              AbstractResource.LOG.error("resource already opened");
              throw new EFapsException(AbstractResource.class, "open.AlreadyOpened");
          }
          try {
              final Context context = Context.getThreadContext();
              context.getTransaction().enlistResource(this);
          } catch (final RollbackException e) {
              AbstractResource.LOG.error("exception occurs while delisting in transaction, " + "commit not possible", e);
              throw new EFapsException(AbstractResource.class, "open.RollbackException", e);
          } catch (final SystemException e) {
              AbstractResource.LOG.error("exception occurs while delisting in transaction, " + "commit not possible", e);
              throw new EFapsException(AbstractResource.class, "open.SystemException", e);
          }
          this.opened = true;
      }
docs: Opens this connection resource and enlisted this resource in the
  transaction.
  
  @throws EFapsException if the resource is already opened or this
  resource could not be enlisted