MSMQ on windows server 2008 - msmq

I installed MSMQ on windows server 2008 in workgroup mode. I noticed there is only a private queue and a public queue is missing.
It causes I can't send message from remote computers. I see the messages in outgoing queues. the state is "Waiting to connect" and the Connection History is "No failures reported".
I have two questions:
Can I add the public queue option in any way?
What should I do in order to enable sending message to private queue in remote computer?
(I use WCF.)
Thanks in advane!

On my job we also meet that issue.
The solution was opening the ports that msmq is working with:
TCP: 1801
RPC: 135, 2101*, 2103*, 2105*
UDP: 3527, 1801
Good Luck.

Related

Cannot remotely read from a MSMQ 6.3 private queue cross forest

I am connecting to a MSMQ 6.3 private queue in workgroup mode on a Windows Server 2012R2 machine. This is a cross forest connection. I've gotten to where I can send, but I still cannot receive. I've done everything in John Breakwell's posts. I've given the correct domain user, Anonymous Logon and Everyone Full Control.
I've added the registry entries NewRemoteReadServerAllowNoneSecurityClient and AllowNonauthenticatedRPC.
Disable un-athenticated RPC calls is not checked.
I ran Wireshark and I can see traffic coming in to port 135 then getting passed off to port 2105. There it gets access_denied.
I'm not sure where to go from here.

Failed to connect Winsoc socket in Windows 2012 MSMQ

I have a website uses enterprise library to log using MSMQ trace listener. Site is creating logs. The logs are in MSMQ outgoing queues. However, queues are not being sent to remote computer. Message I get is
Failed to connect Winsock socket. Address:IP=xx.xx.xx.xx
State is in "Waiting to Connect". The queue path I have as queuePath="FormatName:DIRECT=OS:computername\Private$\private queuename"
Am I missing anything? May be firewall rule? when I look at the firewall rule in destination computer, it allows the MSMQ Inbound TCP/UDP for all ports.
Enabling Remote Event Monitor (RPC-EPMAP) inbound rule in firewall fixed the issue I was getting. Now the state is Connected and Connection History is Connection is ready to transfer messages.
Also to add I found that port 1801 which msmq port for allowing incoming traffic need to be opened.
https://support.microsoft.com/en-us/help/183293/how-to-configure-a-firewall-for-msmq-access

"Remote computer is not available." is the error thrown when reading from remote public windows server 2003 queue

I keep getting the error “Remote computer is not available.” when reading from remote public windows server 2003 queue. The queue is on server B. My application is on server A;
Amazingly, server A can drop a message on any queue on server B, i just can't read a message off from B.
The two servers A and B are on the same domain.
all other servers can read and write on B's queues
it happened after I restarted server A
i have restarted A again in vain
msmq is running on A and B
Online suggestions are all not working.
It doesn't look like a trust issue between servers A and B. Please help
I got the solution. The approach in my comment above worked.
The thing is, port 135 was blocked by our IT-Networks guys. This doesn't immediately affect pulling messages. It had to be after restarting server A that B rejected its request due to failed RPC requests.
Again, thanks to MSMQ from the plumber's mate

What Happens To MSMQ When Network Connection Lost

If I am using MSMQ over the web, what happens if the network connection is lost between client and server?
So can you still add messages to the Queue, and if so where are they stored? In the client app, or in the clients OS etc?
For instance if I have a windows service which is adding items to a queue in a different country. What if the network connection is lost, and the windows service is restarted. Do the messages get lost forever?
The other part of the question relates to the route that a message takes, is it sent directly to the receiving queue, or is it written into a queue on the client side? Does that require MSMQ to be installed on the sending server, and how about licensing for that?
Is there any good documentation to explain the required setup?
Update: Regarding your follow up question. Yes you have to install msmq on the sending server. There aren't any licensing cost, because MSMQ is part of windows and not a separate software (just like the IIS). Here is documentation on "Setting Up a Message Queue" on windwos 2003.
Before Update: Outgoing message are stored in the outgoing queue of the sending server. They are not lost if the sending service is restarted. They will wait in the outgoing queues ( which can be inspected with the msmq manager ) for I don't know how long.
if the msmq service or the sending server are restarted. Then "express" messages will be lost. express or recoverable are properties of non-transcriptional messages.

Cannot create private message queue on remote server

I am unable to create a queue on a remote server and the error i get is :
Cannot create a queue with the path FormatName:DIRECT=OS:server\private$\q
the code is as below:
Dim q As MessageQueue
q = MessageQueue.Create("FormatName:Direct=OS:Server\private$\queue")
I have tried with OS, TCP, HTTP and all the possible options given here but I have not been able to create a queue on remote machine. I am running Win 7 Enterprise on my dev box and Win Server 2003 R2 on the MSMQ server.
Am i missing some security / permission settings on the server or some other configuration ? would appreciate any help possible.
You cannot create remote private queues.
You will need to manually create them at the remote machine or run a process there that does what you need.
You cannot create remote queues. Look at MessageQueue.Create Method documenatation.