Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Connecting To A Private Remote MSMQ Queue

I'm trying to connect to a remote private MSMQ queue using the path:

"FormatName:DIRECT=OS:remoteMachineName\Private$\MyQueue"

and I'm getting the following error:

"The specified format name does not support the requested operation. For example, a direct queue format name cannot be deleted."

I'm obviously doing something wrong. However this does work using a local queue.

I'm using Spring.Net's Messaging. Here's my config

<objects xmlns="http://www.springframework.net">
  <object id="myQueue" type="Spring.Messaging.Support.MessageQueueFactoryObject, Spring.Messaging">
    <property name="Path" value="FormatName:DIRECT=OS:remoteMachineName\Private$\MyQueue"/>
  </object>

  <object id="messageQueueTemplate" type="Spring.Messaging.Core.MessageQueueTemplate, Spring.Messaging">
    <property name="DefaultMessageQueueObjectName" value="myQueue"/>
  </object>

  <object id="messageGateway" type="My.MessageGateway, My.Assembly">
    <property name="MessageQueueTemplate" ref="messageQueueTemplate"/>
  </object>
</objects>
like image 457
Ian Avatar asked Dec 17 '08 22:12

Ian


People also ask

How does MSMQ queue work?

Message Queuing (MSMQ) technology enables applications running at different times to communicate across heterogeneous networks and systems that may be temporarily offline. Applications send messages to queues and read messages from queues.

Is MSMQ obsolete?

As a Windows component, MSMQ is technically “supported” as long as it's carried by a supported version of Windows. Since it exists in Windows 10 and Windows Server 2019, MSMQ will continue to live on until at least 2029—and much longer assuming it isn't removed from future versions of Windows.

What is MSMQ Formatname?

The format name is a string that uniquely identifies a queue using connection details and the queue's path. Different types of format names can be used to specify how messages are routed, the type of destination, and the type of operation for which the queue is being opened.


1 Answers

Is this a transactional queue? Remote read from transactional queue is not possible. Maybe the spring framework try to check if this a transactional queue, and this is also an operation that is supported only on local queue.

The recommanded why to work with queues is to write to remote queue and read from local queue. In msmq 4.0 ( vista and windows 2008 ) remote transactional read is supported ( so I have heard).

Can you debbug the spring.net code and see the exact code when the process fail?

like image 138
Igal Serban Avatar answered Oct 05 '22 15:10

Igal Serban