private void CrashAndInitializeAgain() { //crash InputDisruptorPublisher.Shutdown(); OutputDisruptor.ShutDown(); inputEventStore.ShutDown(); outputEventStore.ShutDown(); inputJournaler.ShutDown(); outputJournaler.ShutDown(); ContextRegistry.Clear(); //initialize inputEventStore = new RavenNEventStore(Constants.INPUT_EVENT_STORE); outputEventStore = new RavenNEventStore(Constants.OUTPUT_EVENT_STORE); inputJournaler = new Journaler(inputEventStore); outputJournaler = new Journaler(outputEventStore); IList <CurrencyPair> currencyPairs = new List <CurrencyPair>(); currencyPairs.Add(new CurrencyPair("BTCUSD", "USD", "BTC")); currencyPairs.Add(new CurrencyPair("BTCLTC", "LTC", "BTC")); currencyPairs.Add(new CurrencyPair("BTCDOGE", "DOGE", "BTC")); _exchange = new Exchange(currencyPairs); InputDisruptorPublisher.InitializeDisruptor(new IEventHandler <InputPayload>[] { _exchange, inputJournaler }); OutputDisruptor.InitializeDisruptor(new IEventHandler <byte[]>[] { outputJournaler }); _applicationContext = ContextRegistry.GetContext(); LimitOrderBookReplayService service = new LimitOrderBookReplayService(); service.ReplayOrderBooks(_exchange, outputJournaler); ManualResetEvent resetEvent = new ManualResetEvent(false); resetEvent.WaitOne(20000); }