docs: public final AnycastOutputHandler getAnycastOutputHandler(DestinationDefinition definition,
                                                              boolean restartFromStaleBackup)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
        SibTr.entry(tc, 
                    "getAnycastOutputHandler",
                    new Object[]{ 
                      definition,
                      Boolean.valueOf(restartFromStaleBackup)});
                    
      if (_anycastOutputHandler == null)
      { // lazy creation of AnycastOutputHandler
        try
        {
          // check if aoContainerItemStream already exists
          if (_aoContainerItemStream == null)
          {
            // need to create one first
            AOContainerItemStream aostream = new AOContainerItemStream(null, null);
            LocalTransaction tran = _baseDestinationHandler.getTransactionManager().createLocalTransaction(true);
            _baseDestinationHandler.addItemStream(aostream, (Transaction) tran);
            tran.commit();
  
            _aoContainerItemStream = aostream;
          }
  
          // TODO - should be using something better than System.currentTimeMillis() for the dmeVersion.
          _anycastOutputHandler =
            new AnycastOutputHandler(
              definition.getName(), definition.getUUID(), 
              definition.isReceiveExclusive(),
              _baseDestinationHandler,
              null,
              _aoContainerItemStream,
              _messageProcessor,
              _destinationManager.getAsyncUpdateThread(),
              _destinationManager.getPersistLockThread(),
              System.currentTimeMillis(),
              restartFromStaleBackup);
        }
        catch (Exception e)
        {
          // Exception shouldn't occur so FFDC.
          FFDCFilter.processException(
            e,
            "com.ibm.ws.sib.processor.impl.destination.AbstractRemoteSupport.getAnycastOutputHandler",
            "1:834:1.25",
            this);
  
          SibTr.exception(tc, e);
          
          SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0003",
              new Object[] {
                "com.ibm.ws.sib.processor.impl.destination.AbstractRemoteSupport",
                "1:842:1.25",
                e,
                _baseDestinationHandler.getName() });
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(tc, "getAnycastOutputHandlerInternal", "SIErrorException");
                      
          throw new SIErrorException(nls.getFormattedMessage(
              "INTERNAL_MESSAGING_ERROR_CWSIP0003",
              new Object[] {
               "com.ibm.ws.sib.processor.impl.destination.AbstractRemoteSupport.getAnycastOutputHandler",
               "1:853:1.25",
                e,
                _baseDestinationHandler.getName() },
              null),
              e);
        }
      }
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "getAnycastOutputHandler", _anycastOutputHandler);
  
      return _anycastOutputHandler;
    }