Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Posted this sucker on StackOverflow, but I think its probably more germane to this crowd :

Having an issue with sending an MSMQ message to the second DNS name on a server. If we send the IP for that same server, we're fine, but thats not where we are going architecturally. Any ideas as to why MSMQ would care about which name it receives?

Here is our example :

Server Information: The physical server load-int-01, has a second IP and DNS name associated with it. First ip/dns: load-int-01, with IP 10.0.10.10 Second ip/dns: load-intv, with IP 10.0.10.20

Queue Path Formats Used: FormatName:DIRECT=OS:load-int-01\private$\MyQueue -> Works Fine FormatName:DIRECT=OS:load-intv\private$\MyQueue -> Returns the error “The queue does not exist or you do not have sufficient permissions to perform this operation”

We have also tried using the IP addresses instead, and both sets of IPs work fine. FormatName:DIRECT=TCP:10.0.10.10\private$\MyQueue -> Works Fine FormatName:DIRECT=TCP:10.0.10.20\private$\MyQueue -> Works Fine

Thanks! -Bob

share|improve this question
add comment

4 Answers

up vote 2 down vote accepted

Could be due to reverse lookup. I'm not sure how MSMQ gets its hostname info, but if it's getting the hostname from Windows and not the DNS hostname of the second IP then a reverse lookup for the second IP would fail since it would return the second dns hostname which is different then the actual hostname of the server.

share|improve this answer
    
Tried that. Reverse lookups of both IPs returned the correct DNS names. –  Bob Jun 4 '09 at 20:13
    
Right, but if MSMQ is expecting any reverse lookup to come back with the actual comptername of the server then your reverse lookup for the 2nd IP is going to fail as it will have a different name than your machine name. Just a thought. –  squillman Jun 4 '09 at 20:24
1  
Yup, just got off the phone with Microsoft.... This is a limitation of MSMQ. You can not receive on queues with aliased DNS names. You can SEND to queues with an aliased DNS name provided you use two registry keys, OptionalNames (listed below) and IgnoreOSNameValidation. to implement the IgnoreOSNameValidation key, use this article: support.microsoft.com/default.aspx?scid=kb;EN-US;899611 Back to virtual ip's for us, or we might keep the virtual name for the sending connection strings (with the reg settings) and use .\ for the receiving servername...that works. –  Bob Jun 5 '09 at 20:18
add comment

MSMQ is probably expecting the computer's netbios name to match the dns hostname used to get there. It's the same problem you have when you try to use a CNAME to map a drive to a Windows server.

There is a way to alias the name for it by adding a registry entry:

HKEY_Local_Machine\System\CurrentControlSet\Services\LanmanServer\Parameters
Add Value: OptionalNames REG_SZ with as value the name of the alias 
If you make it a type REG_MULTI_SZ, you can add multiple aliases.
share|improve this answer
add comment

Are you sending on the same machine (local to load-intv) or from a remote machine?

Also, what IP addresses are actually returned when you query DNS for load-intv and load-int-01? Just the ones you mention - 10.0.10.20 and 10.0.10.10 respectively - or extra ones?

Any HOSTS files involved? If so, do you have any other DNS names mapped to 10.0.10.20?

Cheers John Breakwell (MSFT)

share|improve this answer
    
We're using the connection string both locally and remotely...same results. No hosts files, and no names other than the two provided. Thanks! –  Bob Jun 5 '09 at 13:24
add comment

To resolve via DNS use the DNS name rather than the IP this way--both should resolve:

FORMATNAME:Direct=OS:load-intv\private$\MyQueue
FORMATNAME:Direct=OS:load-int-01\private$\MyQueue 

Additionally, run the following registry script on the MSMQ server (per http://support.microsoft.com/kb/306785):

reg.exe ADD HKLM\Software\Microsoft\MSMQ\Parameters /V IgnoreOSNameValidation /t REG_DWORD /d 1 /f
share|improve this answer
    
BTW on Win2k3 this doesn't work if the client and the MSMQ server are on the same box. –  Geoffrey McGrath Apr 3 '12 at 16:08
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.