msmq

How to do a transactional get from Websphere MQ in .NET?

て烟熏妆下的殇ゞ 提交于 2019-12-03 21:27:28
问题 I’m writing a client that receives messages from an external Websphere MQ Queue and puts them on an internal MSMQ Queue. The client will use MQ Client or, preferably, be purely managed (MQC.TRANSPORT_MQSERIES_MANAGED). Based on an example from IBM, I have a version up and running that can do a simple IBM.WMQ.MQQueue.Get(…). How can this operation be done within a transaction? I'm thinking of using non-XA transactions. 回答1: The WMQ Single-Phase Commit is enabled by using the MQC.MQPMO

Why do we need service bus frameworks like NService Bus/MassTransit on top of message queuing systems like MSMQ/RabbitMQ etc?

左心房为你撑大大i 提交于 2019-12-03 18:00:08
问题 In the distributed message transaction world, am trying to understand the different parts that are involved in developing distributed systems. From what I understand you can design messaging system using enterprise bus backed with a message queue system. Why is it a good idea to use both? Can the same be achieved by programming against just the message queuing system? What are the advantages of using both together? 回答1: You certainly can code directly against the messaging infrastructure and

WCF in IIS, using MSMQ in workgroup mode

别说谁变了你拦得住时间么 提交于 2019-12-03 17:38:53
问题 I've been trying out MSMQ with WCF, but I can't seem to get it to work properly. I've got the client (which sends messages to the queue) working, by using WCF and a service reference. The code that does this is more or less this: static void Main(string[] args) { var client = new MsmqServiceReference.MsmqContractClient(); client.SendMessage("TEST"); client.Close(); Console.ReadKey(); } Where MsmqContractClient is a proxy generated by visual studio when I add a service reference. The endpoint

Permissions error accessing MSMQ from ASP .Net Web Service

↘锁芯ラ 提交于 2019-12-03 17:16:21
I have written a web service that reads from a message queue . This works fine under Cassini. Now that I have deployed the service under IIS, I receive an error message when the service tries to access the queue: The queue does not exist or you do not have sufficient permissions to perform the operation. I have set the anonymous access user on the IIS virtual directory to be my own domain account, which is a member of the administrators group on the local machine. I have granted this same user full permissions on the queue, as well as NETWORK SERVICE and ASPNET. I still get the same error

MSMQ messages disappear from outbound queue but never arrive in the inbound queue

天涯浪子 提交于 2019-12-03 16:21:22
I have a strange issue setting up an existing application on our new internal Cloud. I have a simple messaging system that pushes a message from one server (Server1) onto a MSMQ on another server (Server2). The messages disappear off the outbound but never appear in the inbound queue. When I take Server2 msmq off line the messages build up on Server1. Restarting Msmq on Server2 causes the messages in the outbound queue on Server1 to disappear - but the message still never arrives at Server2. The details: MSMQ is set up in Workgroup mode, as that's the virtual networks requirement. Queues are

How to receive message from a private workgroup queue

梦想与她 提交于 2019-12-03 16:17:11
I have a private queue on a remote machine that everyone and the anonymous login have full access to. The following code produces and error when trying to receive: var qpath = @"FormatName:DIRECT=TCP:xx.xx.xx.xx\PRIVATE$\QueueName"; var q = new MessageQueue(qpath); var msg = new Message(); msg.AttachSenderId = false; msg.Recoverable = true; msg.Body = "hello"; q.Send(msg); // <-- this works! var recMsg = q.Receive(TimeSpan.Zero); // <-- this breaks! :| The Error message is: Message Queue service is not available. The sent message are ending up in the queue on the remote machine The same

Connecting To A Private Remote MSMQ Queue

断了今生、忘了曾经 提交于 2019-12-03 15:02:36
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

MSMQ Issue reading remote private queues (again)

匆匆过客 提交于 2019-12-03 12:53:19
问题 Ok my issue is similar to How to receive message from a private workgroup queue (and I am basically using the same code). I am creating the queue on the host machine using MessageQueue.Create(@".\Private$\MyNewPrivateQueue"); Opening the queue on the remote machine with var queue = new MessageQueue(@"FormatName:DIRECT=TCP:xxx.xxx.xxx.xxx\PRIVATE$\MyNewPrivateQueue"); And writing/reading data using queue.send() and queue.Receive() I have two systems that I am experimenting with. Windows 7 Home

How to implement a competing consumer solution?

此生再无相见时 提交于 2019-12-03 11:36:50
As a exercise I'm trying to find an example which implements competing consumer. many producers - > MSMQueue <- competing consumers So far I did not find any documentation on how to achieve this. My first attempt to figure out how is implemented in MassTransit or NServiceBus failed to many layers of indirection. Any help will be greatly appreciated. Cocowalla With MassTransit and MSMQ you can achieve this using the Distributor component. Note that if you use MassTransit with RabbitMQ instead of MSMQ, you can implement a competing consumer scenario without using the Distributor, simply by

How to change Msmq configuration from workgroup mode to domain mode?

删除回忆录丶 提交于 2019-12-03 11:32:55
问题 There is a public queue named queue1 on machine A. I want to send messages to this queue from machine B. In order to achieve this, I wrote that c# code. if (MessageQueue.Exists("machineA\queue1")) { label1.Text = "queue found"; } else { label1.Text = "queue could not be found"; } But Exists() method return false on machine B. The same code works well on machine C. I found somethings related with msmq domain mode and workgroup mode. I think that msmq installed in workgoup mode on machine B.