docs: public void attachDurableFromRemote(ControlCreateStream request)
                      throws
                      SIDestinationLockedException,
                      SIDurableSubscriptionMismatchException,
                      SIDurableSubscriptionNotFoundException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "attachDurableFromRemote", request);
  
          String subName = request.getDurableSubName();
          SIBUuid8 sender = request.getGuaranteedSourceMessagingEngineUUID();
          String destName =
                          _baseDestinationHandler.constructPseudoDurableDestName(
                                                                                 request.getGuaranteedTargetMessagingEngineUUID().toString(),
                                                                                 subName);
  
          // Instantiate selection criteria
          SelectionCriteria criteria =
                          _messageProcessor.getSelectionCriteriaFactory().createSelectionCriteria(
                                                                                                  request.getDurableDiscriminator(),
                                                                                                  request.getDurableSelector(),
                                                                                                  SelectorDomain.getSelectorDomain(request.getDurableSelectorDomain()));
  
          //create a state object representing a subscription
          ConsumerDispatcherState subState =
                          new ConsumerDispatcherState(
                                          request.getDurableSubName(),
                                          request.getGuaranteedTargetDestinationDefinitionUUID(),
                                          criteria,
                                          request.isNoLocal(),
                                          _messageProcessor.getMessagingEngineName(),
                                          null,
                                          null);
  
          //defect 259036
          subState.setIsCloned(request.isCloned());
          subState.setTopicSpaceName(_baseDestinationHandler.getDefinition().getName());
          subState.setTopicSpaceBusName(_baseDestinationHandler.getBus());
  
          String user = request.getSecurityUserid();
          // Retrieve SIBServerSubject flag from the message.
          boolean isSIBServerSubject = request.isSecurityUseridSentBySystem();
          // Set the security id into the CD state
          subState.setUser(user, isSIBServerSubject);
  
          // If the AOH already exists (e.g. new connection request, or
          // resend of a previous request), then check if the request
          // matches the CD and, if so, delegate to the existing AOH.
          if (_pubSubRemoteSupport.locateExistingAOH(request,
                                                     sender,
                                                     destName,
                                                     subState) == null)
          {
  
              // Create a LocalConsumerPoint and a ConsumerDispatcherState and try to attach
              // locally.  Synchronize against the consumerDispatcherTable to resolve any
              // races with other concurrent attachers.
              synchronized (_consumerDispatchersDurable)
              {
                  // Create the CDS based on the existing CDS, or throw an exception
                  // if the subscription is unknown.
                  ConsumerDispatcher cd =
                                  (ConsumerDispatcher) _consumerDispatchersDurable.get(subName);
                  if (cd == null)
                  {
                      // No dice, throw the exception
                      SIDurableSubscriptionNotFoundException e =
                                      new SIDurableSubscriptionNotFoundException(
                                                      nls.getFormattedMessage(
                                                                              "SUBSCRIPTION_DOESNT_EXIST_ERROR_CWSIP0146",
                                                                              new Object[] {
                                                                                            subName,
                                                                                            _messageProcessor.getMessagingEngineName() },
                                                                              null));
                      SibTr.exception(tc, e);
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                          SibTr.exit(
                                     tc,
                                     "attachDurableFromRemote",
                                     "Subscription does not exist");
                      throw e;
                  }
                  else if (cd.getConsumerDispatcherState().getTargetDestination() != null)
                  {
                      // Subscription was an internal one so reject the attach
                      SIDurableSubscriptionMismatchException e =
                                      new SIDurableSubscriptionMismatchException(
                                                      nls.getFormattedMessage(
                                                                              "INTERNAL_SUBSCRIPTION_ACCESS_DISALLOWED_CWSIP0147",
                                                                              new Object[] {
                                                                                            subName,
                                                                                            _messageProcessor.getMessagingEngineName() },
                                                                              null));
                      SibTr.exception(tc, e);
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                          SibTr.exit(
                                     tc,
                                     "attachDurableFromRemote",
                                     "Attaching to internal subscriptions is not allowed");
                      throw e;
                  }
  
                  // Copy noLocal and isCloned
                  subState.setNoLocal(cd.getConsumerDispatcherState().isNoLocal());
                  subState.setIsCloned(cd.getConsumerDispatcherState().isCloned());
  
                  // Check cardinality next
                  if (cd.hasConsumersAttached() && !subState.isCloned())
                  {
                      Exception e =
                                      new SIDestinationLockedException(
                                                      nls.getFormattedMessage(
                                                                              "SUBSCRIPTION_IN_USE_ERROR_CWSIP0152",
                                                                              new Object[] {
                                                                                            subState.getSubscriberID(),
                                                                                            _messageProcessor.getMessagingEngineName() },
                                                                              null));
                      SibTr.exception(tc, e);
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                          SibTr.exit(
                                     tc,
                                     "attachDurableFromRemote",
                                     "Consumers already attached");
                      throw (SIDestinationLockedException) e;
                  }
  
                  // Attach to the consumerDispatcher if it is EXACTLY the same
                  if (!cd.getConsumerDispatcherState().isReady()
                      || !cd.getConsumerDispatcherState().equals(subState))
                  {
                      SIDurableSubscriptionMismatchException e =
                                      new SIDurableSubscriptionMismatchException(
                                                      nls.getFormattedMessage(
                                                                              "SUBSCRIPTION_ALREADY_EXISTS_ERROR_CWSIP0143",
                                                                              new Object[] {
                                                                                            subState.getSubscriberID(),
                                                                                            _messageProcessor.getMessagingEngineName() },
                                                                              null));
                      SibTr.exception(tc, e);
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                          SibTr.exit(tc, "attachDurableFromRemote", subState);
                      throw e;
                  }
  
                  // Ok, all that worked so create the AOH and forward the request.
                  // This should cause attachment to occur.
                  DestinationDefinition pseudoDest = null;
                  AnycastOutputHandler pseudoHandler = null;
  
                  try
                  {
                      // Create the pseudo destination ID and hack up a definition for it
                      // NOTE: have to create the destination first since we need it's ID
                      // for the container stream below.
                      pseudoDest =
                                      _messageProcessor.createDestinationDefinition(
                                                                                    DestinationType.TOPICSPACE,
                                                                                    destName);
  
                      //defect 259036: if cloned then we are NOT receive
                      //exclusive
                      pseudoDest.setReceiveExclusive(!subState.isCloned());
  
                      // Create the stream next
                      AOContainerItemStream aostream =
                                      new AOContainerItemStream(pseudoDest.getUUID(), subName);
                      LocalTransaction siTran =
                                      _baseDestinationHandler.
                                                      getTransactionManager().
                                                      createLocalTransaction(true);
                      _baseDestinationHandler.addItemStream(aostream, (Transaction) siTran);
                      siTran.commit();
  
                      // TODO - should be using something better than System.currentTimeMillis() for the dmeVersion.
                      pseudoHandler =
                                      new AnycastOutputHandler(
                                                      pseudoDest.getName(),
                                                      pseudoDest.getUUID(),
                                                      pseudoDest.isReceiveExclusive(),
                                                      null,
                                                      cd,
                                                      aostream,
                                                      _messageProcessor,
                                                      _destinationManager.getAsyncUpdateThread(),
                                                      _destinationManager.getPersistLockThread(),
                                                      System.currentTimeMillis(),
                                                      false);
  
                      // Store the destination in our map and make sure the DestinationManager
                      // knows about it for future messages.
                      _pubSubRemoteSupport.
                                      storePseudoDestination(pseudoHandler,
                                                             destName,
                                                             pseudoDest);
  
                      // Finally, deliver the message to the aoh
                      pseudoHandler.handleControlMessage(
                                                         sender,
                                                         request);
                  } catch (Exception e)
                  {
                      // Exception shouldn't occur so FFDC.
                      FFDCFilter.processException(
                                                  e,
                                                  "com.ibm.ws.sib.processor.impl.destination.PubSubRealization.attachDurableFromRemote",
                                                  "1:3304:1.35.2.4",
                                                  this);
                      SibTr.exception(tc, e);
  
                      // Then cleanup anything we managed to create
                      if (pseudoDest != null)
                      {
                          _pubSubRemoteSupport.
                                          cleanupPseudoDestination(destName, pseudoDest);
                      }
  
                      //TODO: does this get rid of the AOContainerStream as well?
                      if (pseudoHandler != null)
                          pseudoHandler.close();
  
                      // And finally throw an SIErrorException so that DurableOutputHandler sends something
                      // back to the caller.
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                          SibTr.exit(tc, "attachDurableFromRemote", "SIErrorException");
                      SIErrorException x =
                                      new SIErrorException(
                                                      nls.getFormattedMessage(
                                                                              "INTERNAL_MESSAGING_ERROR_CWSIP0002",
                                                                              new Object[] {
                                                                                            "com.ibm.ws.sib.processor.impl.destination.PubSubRealization.attachDurableFromRemote",
                                                                                            "1:3329:1.35.2.4",
                                                                                            e },
                                                                              null));
                      FFDCFilter.processException(
                                                  e,
                                                  "com.ibm.ws.sib.processor.impl.destination.PubSubRealization.attachDurableFromRemote",
                                                  "1:3335:1.35.2.4",
                                                  this);
  
                      SibTr.exception(tc, e);
  
                      SibTr.error(
                                  tc,
                                  "INTERNAL_MESSAGING_ERROR_CWSIP0002",
                                  new Object[] {
                                                "com.ibm.ws.sib.processor.impl.destination.PubSubRealization.attachDurableFromRemote",
                                                "1:3345:1.35.2.4",
                                                e });
                      throw x;
                  }
              } // synchronized (consumerDispatchersDurable)
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "attachDurableFromRemote");
      }