protected override bool Initialize()
        {
            if (_theProcessor == null)
            {
                // Force a read context to be opened.  When developing the retry mechanism
                // for startup when the DB was down, there were problems when the type
                // initializer for enumerated values were failng first.  For some reason,
                // when the database went back online, they would still give exceptions.
                // changed to force the processor to open a dummy DB connect and cause an
                // exception here, instead of getting to the enumerated value initializer.
                using (IReadContext readContext = PersistentStoreRegistry.GetDefaultStore().OpenReadContext())
                {
                    readContext.Dispose();
                }

                var xp = new WorkQueueManagerExtensionPoint();
                IWorkQueueManagerExtensionPoint[] extensions = CollectionUtils.Cast <IWorkQueueManagerExtensionPoint>(xp.CreateExtensions()).ToArray();
                foreach (IWorkQueueManagerExtensionPoint extension in extensions)
                {
                    try
                    {
                        extension.OnInitializing(this);
                    }
                    catch (Exception)
                    {
                        ThreadRetryDelay = (int)_retryDelay.TotalMilliseconds;
                        return(false);
                    }
                }

                _theProcessor = new WorkQueueProcessor(_threadCount, ThreadStop, Name);
            }

            return(true);
        }
		protected override bool Initialize()
		{
			if (_theProcessor == null)
			{
				// Force a read context to be opened.  When developing the retry mechanism 
				// for startup when the DB was down, there were problems when the type
				// initializer for enumerated values were failng first.  For some reason,
				// when the database went back online, they would still give exceptions.
				// changed to force the processor to open a dummy DB connect and cause an 
				// exception here, instead of getting to the enumerated value initializer.
				using (IReadContext readContext = PersistentStoreRegistry.GetDefaultStore().OpenReadContext())
				{
					readContext.Dispose();
				}

                var xp = new WorkQueueManagerExtensionPoint();
                IWorkQueueManagerExtensionPoint[] extensions = CollectionUtils.Cast<IWorkQueueManagerExtensionPoint>(xp.CreateExtensions()).ToArray();
                foreach (IWorkQueueManagerExtensionPoint extension in extensions)
                {
                    try
                    {
                        extension.OnInitializing(this);
                    }
                    catch (Exception)
                    {
                        ThreadRetryDelay = (int) _retryDelay.TotalMilliseconds;
                        return false;
                    }
                }

                _theProcessor = new WorkQueueProcessor(_threadCount, ThreadStop, Name);

			}

            return true;
        }