docs: private void deleteRecreateMQLinkHandler(
                                               MQLinkDefinition mqld,
                                               LinkHandler oldLinkHandler,
                                               VirtualLinkDefinition virtualLinkDefinition,
                                               LocalizationDefinition linkLocalizationDefinition,
                                               LocalTransaction transaction) throws SIResourceException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(
                          tc,
                          "deleteRecreateMQLinkHandler",
                          new Object[] { mqld, oldLinkHandler, virtualLinkDefinition, linkLocalizationDefinition, transaction });
  
          MQLinkHandler newLinkHandler = null;
          // Need to set the toBeDeleted flag in the "old" handler
          oldLinkHandler.setToBeDeleted(true);
  
          //  Retain links for lookup by uuid so that inbound
          //messages from other ME's can still be processed.
          linkIndex.delete(oldLinkHandler);
  
          Transaction msTran = txManager.resolveAndEnlistMsgStoreTransaction(transaction);
  
          try
          {
              oldLinkHandler.requestUpdate(msTran);
          } catch (MessageStoreException e)
          {
              // MessageStoreException shouldn't occur so FFDC.
              FFDCFilter.processException(
                                          e,
                                          "com.ibm.ws.sib.processor.impl.DestinationManager.deleteRecreateMQLinkHandler",
                                          "1:7180:1.508.1.7",
                                          this);
  
              SibTr.exception(tc, e);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "deleteRecreateMQLinkHandler", "SIResourceException");
              throw new SIResourceException(e);
          }
  
          // Create a new DestinationHandler, which is created locked
          try
          {
              newLinkHandler =
                              new MQLinkHandler(mqld,
                                              virtualLinkDefinition,
                                              messageProcessor,
                                              this,
                                              transaction,
                                              durableSubscriptions);
          } catch (OutOfCacheSpace e)
          {
              // No FFDC code needed
              SibTr.exception(tc, e);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "deleteRecreateMQLinkHandler", "SIResourceException");
              throw new SIResourceException(e);
          } catch (MessageStoreException e)
          {
              // MessageStoreException shouldn't occur so FFDC.
              FFDCFilter.processException(
                                          e,
                                          "com.ibm.ws.sib.processor.impl.DestinationManager.deleteRecreateMQLinkHandler",
                                          "1:7214:1.508.1.7",
                                          this);
  
              SibTr.exception(tc, e);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "deleteRecreateMQLinkHandler", "SIResourceException");
              throw new SIResourceException(e);
          }
  
          LinkIndex.Type type = new LinkIndex.Type();
          type.local = Boolean.TRUE;
          type.mqLink = Boolean.TRUE;
          type.remote = Boolean.FALSE;
          type.state = State.ACTIVE;
  
          // Set up infrastructure for new destination
          linkIndex.put(newLinkHandler, type);
  
          // Create a new point to point localisation
          newLinkHandler.addNewMQLinkLocalisation(
                                                  transaction,
                                                  messageProcessor.getMessagingEngineUuid(),
                                                  linkLocalizationDefinition);
  
          // Associate the mqlinkObj in the  "old" handler with the new one
          newLinkHandler.setMQLinkObject(((MQLinkHandler) (oldLinkHandler)).getMQLinkObject());
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "deleteRecreateMQLinkHandler", newLinkHandler);
  
          return;
      }