docs: private void startInternal(int startMode) throws MessageStoreException {
          if (TraceComponent.isAnyTracingEnabled()
              && tc.isEntryEnabled())
              SibTr.entry(tc, "startInternal", new Integer(startMode));
  
          /**
           * The following code has been moved from initialize under defect 233412
           * as the PMI stats config needs to be refreshed in start() following a
           * failover restart.
           */
  
          // lohith liberty change
  
          // Removing PMI related classses
  
          /*
           * // register SIB.processor component's StatsTemplateLookup class
           * try {
           * Class lookupClass = Class
           * .forName("com.ibm.ws.pmi.preprocess.sib_processor_impl_StatsTemplateLookup");
           * 
           * 
           * 
           * StatsFactory .registerStatsTemplateLookup((StatsTemplateLookup)
           * lookupClass .newInstance());
           * 
           * } catch (Exception e) {
           * // FFDC
           * FFDCFilter
           * .processException(
           * e,
           * "com.ibm.ws.sib.processor.impl.MessageProcessor.startInternal",
           * "1:1470:1.445", this);
           * 
           * SIErrorException finalE = new SIErrorException(
           * nls
           * .getFormattedMessage(
           * "INTERNAL_MESSAGING_ERROR_CWSIP0002",
           * new Object[] {
           * "com.ibm.ws.sib.processor.impl.MessageProcessor",
           * "1:1477:1.445", e }, null), e);
           * 
           * SibTr.exception(tc, finalE);
           * SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0002", new Object[] {
           * "com.ibm.ws.sib.processor.impl.MessageProcessor",
           * "1:1483:1.445", SIMPUtils.getStackTrace(e) });
           * 
           * if (TraceComponent.isAnyTracingEnabled()
           * && tc.isEntryEnabled())
           * SibTr.exit(tc, "startInternal", finalE);
           * 
           * throw finalE;
           * }
           */
  
          /*
           * The following code has been moved from initialise under defect
           * 170161.1 as a change to the startup order means we cannot use the
           * message store until it has been driven through its start() method.
           */
  
          _msgStore = (MessageStore) _engine.getMessageStore();
          _txManager = new SIMPTransactionManager(this, _msgStore);
  
          _mpAlarmManager = new MPAlarmManager(this,
                          SIMPConstants.MPAM_PERCENT_LATE,
                          SIMPConstants.MPAM_ALARM_POOL_SIZE);
  
          // create the batch handlers
          _publicationBatchHandler = new BatchHandler(
                          SIMPConstants.PUBLICATION_BATCH_SIZE,
                          SIMPConstants.PUBLICATION_BATCH_TIMEOUT, _txManager,
                          _mpAlarmManager);
          _sourceBatchHandler = new BatchHandler(_customProperties
                          .get_source_batch_size(), _customProperties
                          .get_source_batch_timeout(), _txManager, _mpAlarmManager);
          _targetBatchHandler = new BatchHandler(_customProperties
                          .get_target_batch_size(), _customProperties
                          .get_target_batch_timeout(), _txManager, _mpAlarmManager);
  
          // Create the access checker for destination authorization
          String theBus = _engine.getBusName();
  
          // Create the MP access checker
          _accessChecker = new AccessChecker(this);
  
          // Security Code changes for Liberty: Sharath Start
          _authentication = runtimeSecurityService.getAuthenticationInstance();
          _authorization = runtimeSecurityService.getAuthorizationInstance();
          // Security Code changes for Liberty: Sharath End
  
          // Set the security enablement flag
          _isBusSecure = _authorisationUtils.isBusSecure(getMessagingEngineBus());
  
          // Create a new Object Pool for the search results objects.
          _searchResultsPool = new SearchResultsObjectPool(
                          "MatchingSearchResults", _customProperties
                                          .get_searchResultsPoolSize());
  
          // Set up selection criteria factory
          _selectionCriteriaFactory = (SelectionCriteriaFactory) getSingletonInstance(SIMPConstants.JS_SELECTION_CRITERIA_FACTORY);
  
          _connections = new HashMap<SICoreConnection, SICoreConnection>();
  
          /*
           * Recover persistent state information or create structure if
           * necessary. Feature 174199.2.1
           */
          boolean warmStarted = reconstitute(startMode);
  
          if (TraceComponent.isAnyTracingEnabled()
              && tc.isDebugEnabled())
              SibTr.debug(tc, "Warm start state : " + warmStarted);
  
          if (!warmStarted) {
              //Venu mock mock
              //Create ME uuid
              this._engine.setMEUUID(new SIBUuid8());
  
              coldStart();
          } else {
  
              //Venu  mock mock
              this._engine.setMEUUID(getMessagingEngineUuid());
  
              // alert the destinationManager.that we are in the reconcile
              // phase of startup. This allows the manager to build lists of
              // destinations that will
              // need to be deleted.
              _destinationManager.prepareToReconcile();
          }
  
          if (_linkManager == null) {
              // Venu liberty change.
              // For this verion of Liberty profile. no TrmMeMain. Hence removing the code
              // and making linkManager as NULL
              // try again to get the link manager
              _linkManager = null;
          }
          if (_linkManager != null)
              _linkManager.setChangeListener(_linkChangeListener);
          else {
              if (TraceComponent.isAnyTracingEnabled()
                  && tc.isDebugEnabled())
                  SibTr.debug(tc, "Link Manager is null");
          }
  
          //Venu Liberty change:
          // Now Admin wil not be having List of localisation to a destination
          //For this version of Liberty profile, it is this ME.
          _localistySet.add(_engine.getUuid().toString());
  
          // Load Admin/WCCM defined destinations
          _engine.loadLocalizations();
  
          /*
           * Tick generator has to be initialised after
           * 
           * 1. Any previously persistently stored tick is available. 2 An
           * initially cold started persistent store is added to the msgstore.
           * This is because the tick generator immediately persists its tick
           * value when it is created.
           * 
           * Outside of these restrictions, we can initialise independently of
           * other objects in the start sequence.
           * 
           * Feature 174199.2.11
           */
          initializeTickGenerator();
  
          // create the temporary destination receiver
          try {
              _tdReceiverAddr = SIMPUtils.createJsSystemDestinationAddress(
                                                                           SIMPConstants.TDRECEIVER_SYSTEM_DESTINATION_PREFIX,
                                                                           getMessagingEngineUuid());
              _tdReceiverAddr.setBusName(getMessagingEngineBus());
              if (!_destinationManager.destinationExists(_tdReceiverAddr)) {
                  _tdReceiverAddr = _destinationManager
                                  .createSystemDestination(SIMPConstants.TDRECEIVER_SYSTEM_DESTINATION_PREFIX);
              }
          } catch (SIException e) {
              FFDCFilter
                              .processException(
                                                e,
                                                "com.ibm.ws.sib.processor.impl.MessageProcessor.startInternal",
                                                "1:1615:1.445", this);
  
              // SIException will occur if there's some problem creating the
              // temporary destination receiver.
              SIErrorException finalE = new SIErrorException(
                              nls
                                              .getFormattedMessage(
                                                                   "INTERNAL_MESSAGING_ERROR_CWSIP0002",
                                                                   new Object[] {
                                                                                 "com.ibm.ws.sib.processor.impl.MessageProcessor",
                                                                                 "1:1626:1.445", e }, null), e);
  
              SibTr.exception(tc, finalE);
  
              SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0002", new Object[] {
                                                                                  "com.ibm.ws.sib.processor.impl.MessageProcessor",
                                                                                  "1:1636:1.445", SIMPUtils.getStackTrace(e) });
  
              if (TraceComponent.isAnyTracingEnabled()
                  && tc.isEntryEnabled())
                  SibTr.exit(tc, "startInternal", finalE);
  
              throw finalE;
          }
  
          // Create the dynamic config manager
          createDynamicConfigManager();
  
          if (warmStarted) {
              // Write to console that reconciliation has started
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(this, tc, "Messaging engine " + getMessagingEngineName() + " is starting to reconcile the destination.");
  
              // First check that it is safe to delete unreconciled destinations
              _destinationManager.validateUnreconciled();
              // Reconcile WCCM and MP.reconstituted data for local destinations
              _destinationManager.reconcileLocal();
  
              // Venu mock mock .. no reconcileMQLinks, no reconcileLocalLinks, no reconcileMQLinkPubSubBridgeQs
              // no reconcileRemote, no reconcileRemoteTemporary, no  reconcileRemoteLinks
              // for this version of Liberty profile
              /*
               * // Reconcile WCCM and MP.reconstituted data for mqlinks
               * _destinationManager.reconcileMQLinks();
               * 
               * // Reconcile WCCM and MP.reconstituted data for local links
               * _destinationManager.reconcileLocalLinks();
               * 
               * // Reconcile any system destinations and topicspaces no longer
               * // required by
               * // the MQ pubsub bridge
               * _destinationManager.reconcileMQLinkPubSubBridgeQs();
               * 
               * // Reconcile WCCM and MP.reconstituted data for remote destinations
               * _destinationManager.reconcileRemote();
               * 
               * // Reconcile WCCM and MP.reconstituted data for remote temporary
               * // destinations
               * _destinationManager.reconcileRemoteTemporary();
               * 
               * // Reconcile WCCM and MP.reconstituted data for remote links
               * _destinationManager.reconcileRemoteLinks();
               */
  
              // Write to console that reconciliation has completed
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(this, tc, "Messaging engine " + getMessagingEngineName() + " has finished reconciling the destination.");
  
              // Spin off an asynchronous deletion thread to clean up
              _destinationManager.start();
          }
  
          // Venu mock mock ...
          // For now dont call _multiMEProxyHandler.initalised();
  
          /*
           * // Indicate that this has now started.
           * try {
           * _multiMEProxyHandler.initalised();
           * } catch (SIResourceException e1) {
           * // No FFDC code needed
           * if (TraceComponent.isAnyTracingEnabled()
           * && tc.isEntryEnabled())
           * SibTr.exit(tc, "startInternal", "SIErrorException");
           * throw new SIErrorException(e1);
           * }
           */
  
          // Start the expirer as the very last startup action so that we can be
          // sure
          // we have everything required to process an expiration set up.
          _msgStore.expirerStart();
  
          _msgStore.deliveryDelayManagerStart();
  
          synchronized (_mpStartStopLock) {
              _started = true;
          }
  
          // They will wait until WAS has also started before continuing into the
          // started or stopped state.
          _destinationManager.announceMPStarted(startMode);
  
          // If security is enabled then we'll load discriminator ACLs
          if (_isBusSecure) {
              _accessChecker.listTopicAuthorisations();
          }
  
          // Create the MulticastProperties object if multicast is enabled
          if (_customProperties.get_multicastEnabled())
              _multicastProperties = new MulticastPropertiesImpl(
                              _customProperties.get_multicastInterfaceAddress(),
                              _customProperties.get_multicastPort(), _customProperties
                                              .get_multicastPacketSize(), _customProperties
                                              .get_multicastTTL(), _customProperties
                                              .get_multicastGroupAddress(), _customProperties
                                              .get_multicastUseReliableRMM());
  
          // If the WAS started event occured before MP was started, then call it
          // now
          synchronized (_mpStartStopLock) {
              if (isWASOpenForEBusiness())
                  serverStarted();
          }
  
          if (TraceComponent.isAnyTracingEnabled()
              && tc.isEntryEnabled())
              SibTr.exit(tc, "startInternal");
      }