docs: private LinkHandler createRemoteLink(
                                           VirtualLinkDefinition virtualLinkDefinition,
                                           LocalTransaction transaction) throws SIResourceException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "createRemoteLink", new Object[] { virtualLinkDefinition, transaction });
  
          LinkHandler linkHandler = null;
          boolean linkCreated = false;
  
          synchronized (linkIndex)
          {
              DestinationHandler dh = linkIndex.findByUuid(virtualLinkDefinition.getUuid(), null);
  
              if (dh != null)
              {
                  linkHandler = (LinkHandler) dh;
              }
              else
              {
                  // Create a new LinkHandler, which is created locked
                  linkHandler =
                                  new LinkHandler(virtualLinkDefinition,
                                                  messageProcessor,
                                                  this,
                                                  transaction,
                                                  durableSubscriptions);
  
                  LinkIndex.Type type = new LinkIndex.Type();
                  type.local = Boolean.FALSE;
                  type.mqLink = Boolean.FALSE;
                  type.remote = Boolean.TRUE;
                  type.state = State.ACTIVE;
                  linkIndex.put(linkHandler, type);
  
                  linkCreated = true;
              }
          }
  
          if (linkCreated)
          {
              synchronized (linkHandler)
              {
                  LinkSelection s = null;
                  LinkManager linkManager = messageProcessor.getLinkManager();
                  try
                  {
                      s = linkManager.select(linkHandler.getUuid());
                  } catch (LinkException e)
                  {
                      //Error during create of the link.  Trace an FFST.
                      FFDCFilter.processException(
                                                  e,
                                                  "com.ibm.ws.sib.processor.impl.DestinationManager.createRemoteLink",
                                                  "1:6286:1.508.1.7",
                                                  this);
  
                      SibTr.exception(tc, e);
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                          SibTr.exit(tc, "createRemoteLink", e);
                      throw new SIResourceException(e);
                  }
  
                  SIBUuid8 localisingME = null;
                  if (s != null)
                  {
                      localisingME = s.getInboundMeUuid();
                      if (localisingME == null)
                      {
                          //MQLinks dont have an inboundMEUuid so we send to the outboundMEUuid
                          localisingME = s.getOutboundMeUuid();
                      }
                  }
                  else
                  {
                      localisingME = new SIBUuid8(SIMPConstants.UNKNOWN_UUID);
                  }
  
                  linkHandler.addNewPtoPLocalization(true, transaction, localisingME, null, true);
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "createRemoteLink", linkHandler);
  
          return linkHandler;
      }