コード例 #1
0
		public MessageQueueConnection(IMsmqEndpointAddress address, QueueAccessMode accessMode)
		{
			_address = address;
			_accessMode = accessMode;
			_multicastAddress = null;

			switch (_accessMode)
			{
				case QueueAccessMode.Send:
					_formatName = _address.OutboundFormatName;
					break;

				case QueueAccessMode.Peek:
				case QueueAccessMode.PeekAndAdmin:
				case QueueAccessMode.Receive:
				case QueueAccessMode.ReceiveAndAdmin:
					_formatName = _address.InboundFormatName;
					_multicastAddress = address.MulticastAddress;
					break;

				default:
					throw new EndpointException(_address.Uri, "An endpoint connection cannot be send and receive");
			}

			_needReconnect = true;
		}
 public static bool ValidateQueueAccessMode(QueueAccessMode value)
 {
     if ((((value != QueueAccessMode.Send) && (value != QueueAccessMode.Peek)) && ((value != QueueAccessMode.Receive) && (value != QueueAccessMode.PeekAndAdmin))) && (value != QueueAccessMode.ReceiveAndAdmin))
     {
         return (value == QueueAccessMode.SendAndReceive);
     }
     return true;
 }
コード例 #3
0
ファイル: MsmqBusOptions.cs プロジェクト: liyg02/OnlineStore
 public MsmqBusOptions(string path, bool sharedModeDenyReceive, bool enableCache, QueueAccessMode queueAccessMode, bool useInternalTransaction)
 {
     this.SharedModeDenyReceive = sharedModeDenyReceive;
     this.EnableCache = enableCache;
     this.QueueAccessMode = queueAccessMode;
     this.Path = path;
     this.UseInternalTransaction = useInternalTransaction;
 }
コード例 #4
0
ファイル: Msmq.cs プロジェクト: do0g/ServiceBusMQManager
    public static MessageQueue Create(string serverName, string queueName, QueueAccessMode accessMode) {
      if( !queueName.StartsWith("private$\\") )
        queueName = "private$\\" + queueName;

      queueName = string.Format("FormatName:DIRECT=OS:{0}\\{1}", !Tools.IsLocalHost(serverName) ? serverName : ".", queueName);

      return new MessageQueue(queueName, false, true, accessMode);
    }
コード例 #5
0
 /// <summary>
 /// Initializes a new instance of <c>MSMQBusOptions</c> class.
 /// </summary>
 /// <param name="path">The location of the queue referenced by this System.Messaging.MessageQueue,
 /// which can be "." for the local computer.</param>
 /// <param name="sharedModeDenyReceive">The <see cref="System.Boolean"/> value which indicates whether
 /// the exclusive read access should be granted to the first application 
 /// that accesses the queue.</param>
 /// <param name="enableCache">The <see cref="System.Boolean"/> value which indicates whether
 /// a connection cache should be created and used.</param>
 /// <param name="queueAccessMode">The value that indicates the access mode for the queue.</param>
 /// <param name="useInternalTransaction">The <see cref="System.Boolean"/> value which indicates whether the internal
 /// transaction should be used when sending or receiving messages.</param>
 /// <param name="messageFormatter">The formatter used to serialize an object into or deserialize
 /// an object from the body of a message read from or written to the queue.</param>
 public MSMQBusOptions(string path, bool sharedModeDenyReceive, bool enableCache, QueueAccessMode queueAccessMode, bool useInternalTransaction, IMessageFormatter messageFormatter)
 {
     this.SharedModeDenyReceive = sharedModeDenyReceive;
     this.EnableCache = enableCache;
     this.QueueAccessMode = queueAccessMode;
     this.Path = path;
     this.UseInternalTransaction = useInternalTransaction;
     this.MessageFormatter = messageFormatter;
 }
コード例 #6
0
ファイル: ValidationUtility.cs プロジェクト: JianwenSun/cc
 public static bool ValidateQueueAccessMode(QueueAccessMode value)
 {
     //
     // note that QueueAccessMode has disjoined values
     //
     return (value == QueueAccessMode.Send) ||
            (value == QueueAccessMode.Peek) ||
            (value == QueueAccessMode.Receive) ||
            (value == QueueAccessMode.PeekAndAdmin) ||
            (value == QueueAccessMode.ReceiveAndAdmin) ||
            (value == QueueAccessMode.SendAndReceive);
 }
コード例 #7
0
 public MessageQueue CreateQueue(string queueName, QueueAccessMode accessMode, IMessageFormatter formatter)
 {
     var queue = new MessageQueue(queueName, accessMode)
     {
         Formatter = formatter ?? new JsonMessageFormatter(),
         MessageReadPropertyFilter = new MessagePropertyFilter
         {
             ArrivedTime = true,
             Body = true
         }
     };
     return (queue);
 }
 public static QueueAccessModeHolder GetQueueAccessModeHolder(QueueAccessMode accessMode)
 {
     if (holders.ContainsKey(accessMode))
     {
         return holders[accessMode];
     }
     lock (holders)
     {
         QueueAccessModeHolder holder = new QueueAccessModeHolder(accessMode);
         holders[accessMode] = holder;
         return holder;
     }
 }
コード例 #9
0
ファイル: QueueInfo.cs プロジェクト: BiYiTuan/rhino-esb
		public OpenedQueue Open(QueueAccessMode access, IMessageFormatter formatter)
		{
			var messageQueue = new MessageQueue(QueuePath, access);
			if (formatter != null)
				messageQueue.Formatter = formatter;
			var openedQueue = new OpenedQueue(this, messageQueue, QueueUri.ToString(),Transactional)
			{
				Formatter = formatter
			};
			if (SubQueue != null)
				return openedQueue.OpenSubQueue(SubQueue.Value, access);
			return openedQueue;
		}
コード例 #10
0
 public MessageQueue(string QueuePath, QueueAccessMode access)
 {
     this.QueuePath = QueuePath;
     this.access    = access;
 }
コード例 #11
0
 public OpenedQueue OpenSiblngQueue(SubQueue subQueue, QueueAccessMode accessMode)
 {
     return(new OpenedQueue(info, new MessageQueue(info.QueuePath + "#" + subQueue), queueUrl + "#" + subQueue, transactional));
 }
 private QueueAccessModeHolder(QueueAccessMode accessMode)
 {
     this.accessMode = accessMode;
 }
コード例 #13
0
	public MessageQueue(string path, bool sharedModeDenyReceive, bool enableCache, QueueAccessMode accessMode) {}
コード例 #14
0
ファイル: OpenedQueue.cs プロジェクト: eyantiful/rhino-esb
 public OpenedQueue OpenSubQueue(SubQueue subQueue, QueueAccessMode access)
 {
     var messageQueue = new MessageQueue(info.QueuePath + ";" + subQueue);
     if (Formatter != null)
         messageQueue.Formatter = Formatter;
     return new OpenedQueue(this, messageQueue, queueUrl+";"+subQueue);
 }
コード例 #15
0
        private static MessageQueue CreateSubscriptionQueue(Uri subscriptionQueue, QueueAccessMode accessMode)
        {
            var description = MsmqUtil.GetQueuePath(subscriptionQueue);

            MessageQueue queue;
            try
            {
                queue = new MessageQueue(description, accessMode);
            }
            catch (Exception e)
            {
                throw new SubscriptionException("Could not open subscription queue (" + subscriptionQueue + ")", e);
            }
            queue.Formatter = new XmlMessageFormatter(new[] { typeof(string) });
            return queue;
        }
コード例 #16
0
ファイル: Native.cs プロジェクト: busterwood/MsmqPatterns
 public static extern int OpenQueue(string formatName, QueueAccessMode access, QueueShareReceive shareMode, out QueueHandle handle);
コード例 #17
0
 public static MessageQueue Create(string queueFormatName, QueueAccessMode accessMode)
 {
     return(new MessageQueue(queueFormatName, false, true, accessMode));
 }
コード例 #18
0
 private QueueAccessModeHolder(QueueAccessMode accessMode)
 {
     this.accessMode = accessMode;
 }
コード例 #19
0
        /// <summary>
        /// Initalise the message queue.
        /// Setting up all options as required.
        /// </summary>
        internal void InitaliseMessageQueue(QueueAccessMode mode)
        {
            //Connect to the queue if needed
            if (_MessageQueue == null || _MessageQueue.AccessMode != mode)
            {
                if(string.IsNullOrEmpty(QueueName)) throw new Exception("Queuename has not been set.");
                _MessageQueue = new MessageQueue(QueueName, mode);

            }
        }
コード例 #20
0
 public MessageQueueImpl(string path, bool sharedModeDenyReceive, bool enableCache, QueueAccessMode accessMode)
 {
     _wrapped = new MessageQueue(path, sharedModeDenyReceive, enableCache, accessMode);
 }
コード例 #21
0
 public MessageQueueImpl(string path, QueueAccessMode accessMode)
 {
     _wrapped = new MessageQueue(path, accessMode);
 }
コード例 #22
0
 public MsmqBusOptions(string path, bool sharedModeDenyReceive, bool enableCache, QueueAccessMode queueAccessMode, bool useInternalTransaction)
 {
     this.SharedModeDenyReceive = sharedModeDenyReceive;
     this.EnableCache           = enableCache;
     this.QueueAccessMode       = queueAccessMode;
     this.Path = path;
     this.UseInternalTransaction = useInternalTransaction;
 }
コード例 #23
0
 /// <summary>
 /// Initializes a new instance of <see cref="MessageQueue"/>.
 /// </summary>
 /// <param name="path">The location of the queue referenced by this <see cref="MessageQueue"/>, which can be "<value>.</value>" for the local computer.</param>
 /// <param name="accessMode">One of the <see cref="QueueAccessMode"/> values.</param>
 public MessageQueue(String path, QueueAccessMode accessMode)
     : base(path, sharedModeDenyReceive: false, enableCache: true, accessMode: accessMode)
 {
 }
コード例 #24
0
 public EnumerableMessageQueue(string path, QueueAccessMode accessMode)
     : base(path, accessMode)
 {
 }
コード例 #25
0
ファイル: OpenedQueue.cs プロジェクト: eyantiful/rhino-esb
 public OpenedQueue OpenSiblngQueue(SubQueue subQueue, QueueAccessMode accessMode)
 {
     return new OpenedQueue(info, new MessageQueue(info.QueuePath + "#" + subQueue), queueUrl + "#" + subQueue, transactional);
 }
コード例 #26
0
ファイル: MessageQueue.cs プロジェクト: nlhepler/mono
		public MessageQueue (string path, QueueAccessMode accessMode) :
			this (GetMessageQueue (path))
		{
		}
コード例 #27
0
ファイル: MsmqUtil.cs プロジェクト: JackWangCUMT/rhino-esb
        public static MessageQueue OpenOrCreateQueue(string newQueuePath, QueueAccessMode accessMode, MessageQueue parentQueue)
        {
            try
            {
                bool exists;
                try
                {
                    exists = MessageQueue.Exists(newQueuePath);
                }
                catch (InvalidOperationException)// probably a queue on a remote machine
                {
                    return new MessageQueue(newQueuePath);
                }
                if (exists == false)
                {
                    try
                    {
                        CreateQueue(newQueuePath, parentQueue.Transactional);
                    }
                    catch (Exception e)
                    {
                        throw new TransportException("Queue " + newQueuePath + " doesn't exists and we failed to create it", e);
                    }
                }

                return new MessageQueue(newQueuePath, accessMode);
            }
            catch (Exception e)
            {
                throw new MessagePublicationException("Could not open queue (" + newQueuePath + ")", e);
            }
        }
コード例 #28
0
 public static MessageQueue AsMessageQueue(this Queue queue, QueueAccessMode mode = QueueAccessMode.Receive)
 {
     return(new MessageQueue(queue.FormatName, mode));
 }
コード例 #29
0
ファイル: QueueInfo.cs プロジェクト: BiYiTuan/rhino-esb
		public OpenedQueue Open(QueueAccessMode access)
		{
			return Open(access, null);
		}
コード例 #30
0
        /// <inheritdoc />
        public System.Messaging.MessageQueue Get(string serverName, string name, bool privateQueue, QueueAccessMode mode)
        {
            try
            {
                lock (_lock)
                {
                    System.Messaging.MessageQueue.ClearConnectionCache();

                    return(Exists(serverName, name, privateQueue) ? new System.Messaging.MessageQueue(Path(serverName, name, privateQueue), mode) : null);
                }
            }
            catch (MessageQueueException exception)
            {
                _logger.Warning(exception, "Error Getting Message Queue");

                return(null);
            }
        }
コード例 #31
0
	public MessageQueue(string path, QueueAccessMode accessMode) {}
コード例 #32
0
 public CN100MessageQueue(string path, bool sharedModeDenyReceive, bool enableCache, QueueAccessMode accessMode)
     : base(path, sharedModeDenyReceive, enableCache, accessMode)
 { }
コード例 #33
0
ファイル: Msmq.cs プロジェクト: do0g/ServiceBusMQManager
		public static MessageQueue Create(string queueFormatName, QueueAccessMode accessMode)
		{
			return new MessageQueue(queueFormatName, false, true, accessMode);
		}
コード例 #34
0
ファイル: MessageQueue.cs プロジェクト: raj581/Marvin
 public MessageQueue(string path, QueueAccessMode accessMode) :
     this(GetMessageQueue(path))
 {
 }
コード例 #35
0
 public OpenedQueue OpenSubQueue(OpenedQueue queue, SubQueue subQueue, QueueAccessMode accessMode)
 {
     return queue.OpenSubQueue(subQueue, accessMode);
 }
コード例 #36
0
 public EnumerableMessageQueue(string path, bool sharedModeDenyReceive, bool enableCache, QueueAccessMode accessMode)
     : base(path, sharedModeDenyReceive, enableCache, accessMode)
 {
 }
コード例 #37
0
ファイル: QueueExtensions.cs プロジェクト: 4lx/Profiler
 public static MessageQueue AsMessageQueue(this Queue queue, QueueAccessMode mode = QueueAccessMode.Receive)
 {
     return new MessageQueue(queue.FormatName, mode);
 }
コード例 #38
0
 public CN100MessageQueue(string path, QueueAccessMode accessMode)
     : base(path, accessMode)
 {
 }
コード例 #39
0
 private OpenedQueue CreateSubscriptionQueue(Uri subscriptionQueueUri, QueueAccessMode accessMode)
 {
     OpenedQueue queue;
     try
     {
         var endpoint = endpointRouter.GetRoutedEndpoint(subscriptionQueueUri);
         queue = MsmqUtil.GetQueuePath(endpoint).Open(accessMode, new XmlMessageFormatter(new[] { typeof(string) }));
     }
     catch (Exception e)
     {
         throw new SubscriptionException("Could not open subscription queue (" + subscriptionQueueUri + ")", e);
     }
     return queue;
 }
コード例 #40
0
 public OpenedQueue OpenSubQueue(OpenedQueue queue, SubQueue subQueue, QueueAccessMode accessMode)
 {
     return(queue.OpenSiblngQueue(subQueue, accessMode));
 }