static void Main() { // load settings from App.config string host = ConfigurationManager.AppSettings["hostName"]; string queueManagerName = ConfigurationManager.AppSettings["queueManagerName"]; string channel = ConfigurationManager.AppSettings["channel"]; int port = Int32.Parse(ConfigurationManager.AppSettings["port"]); int putSleepTimeMillisecs = Int32.Parse(ConfigurationManager.AppSettings["putSleepTimeMillisecs"]); int getPollingTimeMillisecs = Int32.Parse(ConfigurationManager.AppSettings["getPollingTimeMillisecs"]); int iterations = Int32.Parse(ConfigurationManager.AppSettings["iterations"]); string[] queuePairNames = new string[8] { "queuePair1", "queuePair2", "queuePair3", "queuePair4", "queuePair5", "queuePair6", "queuePair7", "queuePair8" }; List<string> validQueuePairNames = new List<string>(); foreach (string qpName in queuePairNames) { string queuePairName = ConfigurationManager.AppSettings[qpName]; if (!String.IsNullOrEmpty(queuePairName)) { validQueuePairNames.Add(queuePairName); } } List<QueueLoader> queueLoaders = new List<QueueLoader>(); foreach (string queuePairName in validQueuePairNames) { string[] queuePair = queuePairName.Split(','); QueueLoader ql = new QueueLoader(queuePair[0], queuePair[1], queueManagerName, channel, host, port, putSleepTimeMillisecs, iterations); queueLoaders.Add(ql); ThreadStart queueLoadJob = new ThreadStart(ql.Run); Thread queueLoadThread = new Thread(queueLoadJob); queueLoadThread.Start(); QueueUnloader qu = new QueueUnloader(queuePair[1], queueManagerName, channel, host, port, getPollingTimeMillisecs); ThreadStart queueUnloadJob = new ThreadStart(qu.Run); Thread queueUnloadThread = new Thread(queueUnloadJob); queueUnloadThread.Start(); } Console.WriteLine("\nMaking MQSeries connections..."); Console.WriteLine(String.Format(" MQ Host: {0}", host)); Console.WriteLine(String.Format(" Queue Manager: {0}", queueManagerName)); Console.WriteLine(String.Format(" Channel: {0}", channel)); Console.WriteLine(String.Format(" Port: {0}\n", port)); Console.WriteLine("Queues:"); foreach (string queuePairName in validQueuePairNames) { Console.WriteLine(String.Format(" {0}", queuePairName)); } Console.WriteLine("-------------------------------------------\n"); long numMsgs = 0; while (numMsgs < (iterations * validQueuePairNames.Count)) { numMsgs = 0; foreach (QueueLoader ql in queueLoaders) { numMsgs += ql.NumMsgs; } Console.WriteLine("Messages: {0}", numMsgs); Thread.Sleep(500); } }