Beispiel #1
0
        internal IQueueItem ExecGet(QueueMessage request)
        {
            try
            {
                MQueue Q = Get(request.Host);
                if (Q == null)
                {
                    throw new MessageException(MessageState.InvalidMessageHost, "message.Host is invalid " + request.Host);
                }
                switch (request.Command)
                {
                case QueueCmd.Dequeue:
                    return(Q.Dequeue());

                case QueueCmd.DequeuePriority:
                    return(Q.Dequeue(request.Priority));

                case QueueCmd.Peek:
                    return(Q.Peek());

                case QueueCmd.PeekPriority:
                    return(Q.Peek(request.Priority));
                }
            }
            catch (MessageException mex)
            {
                QLogger.ErrorFormat("ExecGet MessageException: " + mex.Message);
            }
            catch (ArgumentException ase)
            {
                QLogger.ErrorFormat("ExecGet ArgumentException: " + ase.Message);
            }
            catch (SerializationException se)
            {
                QLogger.ErrorFormat("ExecGet SerializationException: " + se.Message);
            }
            catch (Exception ex)
            {
                QLogger.ErrorFormat("ExecGet Exception: " + ex.Message);
            }
            return(null);
        }
Beispiel #2
0
        internal MessageState ExecSet(QueueMessage request)
        {
            try
            {
                if (request == null)
                {
                    throw new ArgumentNullException("QueueManager.ExecSet message");
                }
                if (request.Host == null)// || message.Host.Count == 0)
                {
                    throw new ArgumentNullException("QueueManager.ExecSet message.Host is invalid");
                }

                MQueue Q = Get(request.Host);
                if (Q == null)
                {
                    throw new MessageException(MessageState.InvalidMessageHost, "message.Host is invalid " + request.Host);
                }

                Q.Enqueue(request.GetQueueItem());

                //TODO: DISTREBUTING TO HOSTS LIST


                //foreach (var host in request.Host)
                //{
                //    if (host.IsLocal)
                //    {
                //        MQueue Q = Get(host.HostName);
                //        if (Q == null)
                //        {
                //            throw new MessageException(MessageState.InvalidMessageHost, "message.Host is invalid " + message.Host);
                //        }
                //            Q.Enqueue(item);
                //    }
                //    else
                //    {
                //        //TODO:not supported
                //        throw new Exception("Host not IsLocal not supported!");
                //    }
                //}
            }
            catch (MessageException mex)
            {
                QLogger.ErrorFormat("ExecSet MessageException: " + mex.Message);
                return(MessageState.MessageError);
            }
            catch (ArgumentException ase)
            {
                QLogger.ErrorFormat("ExecSet ArgumentException: " + ase.Message);
                return(MessageState.ArgumentsError);
            }
            catch (SerializationException se)
            {
                QLogger.ErrorFormat("ExecSet SerializationException: " + se.Message);
                return(MessageState.SerializeError);
            }
            catch (Exception ex)
            {
                QLogger.ErrorFormat("ExecSet Exception: " + ex.Message);
                return(MessageState.UnExpectedError);
            }
            return(MessageState.Ok);
        }
Beispiel #3
0
        //private void M_db_ItemChanged(object sender, Generic.GenericEventArgs<string, string, IQueueItem> e)
        //{
        //    QLogger.InfoFormat("PriorityPersistQueue ItemChanged : action- {0}, key- {1}", e.Args1, e.Args2, e.Args3);
        //}

        private void M_db_ErrorOcurred(object sender, Generic.GenericEventArgs <string> e)
        {
            QLogger.ErrorFormat("PriorityPersistQueue ErrorOcurred : {0}", e.Args);
        }