Discussion:
Installing and Configuring MSMQ
(too old to reply)
BillyTWorthington
2008-12-12 13:42:11 UTC
Permalink
We are trying to deploy a new vendor application that requires MSMQ to
function between the Web Server and Application Server. They have no
documentation on setup and configuration and we have never tried to do this
before. We did a basic install of MSMQ on the App server and created the two
Private Queues that they requested but the web server piece cannot talk to
the App server. We are running Windows 2003 x64 R2 SP2 on both machines and
I figure we need some kind of client on the Web server for it to be talking
to the App server.

Any help would be greatly appreciated.
John Breakwell (MSFT)
2008-12-12 15:04:00 UTC
Permalink
Hi

You need the MSMQ client running on both sender and receiver.

How is the web service coded to send messages to the private queues on the
application server?
If there is a problem then you should be seeing an hResult error code being
returned.
For example, 0xC00E000B means MSMQ service not available.

All the documentation you need is either in the help that comes with the OS
or on the MSDN/TecxhNet websites.

Cheers
John Breakwell (MSFT)
Post by BillyTWorthington
We are trying to deploy a new vendor application that requires MSMQ to
function between the Web Server and Application Server. They have no
documentation on setup and configuration and we have never tried to do this
before. We did a basic install of MSMQ on the App server and created the two
Private Queues that they requested but the web server piece cannot talk to
the App server. We are running Windows 2003 x64 R2 SP2 on both machines and
I figure we need some kind of client on the Web server for it to be talking
to the App server.
Any help would be greatly appreciated.
BillyTWorthington
2008-12-12 15:11:02 UTC
Permalink
I figured as much but I cannot see any options in the Add / Remove programs
for an MSMQ client on either machine. The only checkboxes in there are:

Active Directory Integration
Core Functionality
Downlevel Client Support
MSMQ HTTP Support
Routing Support
Triggers

None of them have any ability to be detailed.
Post by John Breakwell (MSFT)
Hi
You need the MSMQ client running on both sender and receiver.
How is the web service coded to send messages to the private queues on the
application server?
If there is a problem then you should be seeing an hResult error code being
returned.
For example, 0xC00E000B means MSMQ service not available.
All the documentation you need is either in the help that comes with the OS
or on the MSDN/TecxhNet websites.
Cheers
John Breakwell (MSFT)
Post by BillyTWorthington
We are trying to deploy a new vendor application that requires MSMQ to
function between the Web Server and Application Server. They have no
documentation on setup and configuration and we have never tried to do this
before. We did a basic install of MSMQ on the App server and created the two
Private Queues that they requested but the web server piece cannot talk to
the App server. We are running Windows 2003 x64 R2 SP2 on both machines and
I figure we need some kind of client on the Web server for it to be talking
to the App server.
Any help would be greatly appreciated.
John Breakwell (MSFT)
2008-12-12 17:19:07 UTC
Permalink
Hi Billy

The base client is "Core Functionality".
Everything else is optional.

"Active Directory Integration" is required if you want to make use of public
queues (and other AD functionality)
"Downlevel Client Support" is when you have Windows 2000 clients
"MSMQ HTTP Support" is sending messages over HTTP.
"Routing Support" does what it says. rarely required as MSMQ can usually
make a direct network connection.
"Triggers" are queue monitors for launching code when messages arrive.

Cheers
John Breakwell (MSFT)
Post by BillyTWorthington
I figured as much but I cannot see any options in the Add / Remove programs
Active Directory Integration
Core Functionality
Downlevel Client Support
MSMQ HTTP Support
Routing Support
Triggers
None of them have any ability to be detailed.
Post by John Breakwell (MSFT)
Hi
You need the MSMQ client running on both sender and receiver.
How is the web service coded to send messages to the private queues on the
application server?
If there is a problem then you should be seeing an hResult error code being
returned.
For example, 0xC00E000B means MSMQ service not available.
All the documentation you need is either in the help that comes with the OS
or on the MSDN/TecxhNet websites.
Cheers
John Breakwell (MSFT)
Post by BillyTWorthington
We are trying to deploy a new vendor application that requires MSMQ to
function between the Web Server and Application Server. They have no
documentation on setup and configuration and we have never tried to do this
before. We did a basic install of MSMQ on the App server and created
the
two
Private Queues that they requested but the web server piece cannot talk to
the App server. We are running Windows 2003 x64 R2 SP2 on both
machines
and
I figure we need some kind of client on the Web server for it to be talking
to the App server.
Any help would be greatly appreciated.
BillyTWorthington
2008-12-15 13:35:00 UTC
Permalink
We did just the Core Functionality piece but still cannot figure out how it
connects. When we try this from a x32 machine, we actually are prompted for
the messaging server that the client will connect to.
Post by John Breakwell (MSFT)
Hi Billy
The base client is "Core Functionality".
Everything else is optional.
"Active Directory Integration" is required if you want to make use of public
queues (and other AD functionality)
"Downlevel Client Support" is when you have Windows 2000 clients
"MSMQ HTTP Support" is sending messages over HTTP.
"Routing Support" does what it says. rarely required as MSMQ can usually
make a direct network connection.
"Triggers" are queue monitors for launching code when messages arrive.
Cheers
John Breakwell (MSFT)
Post by BillyTWorthington
I figured as much but I cannot see any options in the Add / Remove programs
Active Directory Integration
Core Functionality
Downlevel Client Support
MSMQ HTTP Support
Routing Support
Triggers
None of them have any ability to be detailed.
Post by John Breakwell (MSFT)
Hi
You need the MSMQ client running on both sender and receiver.
How is the web service coded to send messages to the private queues on the
application server?
If there is a problem then you should be seeing an hResult error code being
returned.
For example, 0xC00E000B means MSMQ service not available.
All the documentation you need is either in the help that comes with the OS
or on the MSDN/TecxhNet websites.
Cheers
John Breakwell (MSFT)
Post by BillyTWorthington
We are trying to deploy a new vendor application that requires MSMQ to
function between the Web Server and Application Server. They have no
documentation on setup and configuration and we have never tried to do this
before. We did a basic install of MSMQ on the App server and created
the
two
Private Queues that they requested but the web server piece cannot talk to
the App server. We are running Windows 2003 x64 R2 SP2 on both
machines
and
I figure we need some kind of client on the Web server for it to be talking
to the App server.
Any help would be greatly appreciated.
John Breakwell (MSFT)
2008-12-15 14:28:20 UTC
Permalink
Hi Billy,

I think you're misinterpreting the prompt you saw.
MSMQ is a peer-to-peer product. Each machine is a server, regardless of
operating system
(unless you are talking Dependent Clients but they are a rarely used special
case).

If you are prompted for a machine name then this is usually when you have
selected Active Directory Integration but a domain controller cannot be
found within the logical site. Setup is asking you for a domain controller
that it can contact. This machine is not involved in sending messages - it
is just the client's contact point for querying directory services. So being
prompted is not the norm.

"We did just the Core Functionality piece but still cannot figure out how it
connects."
MSMQ dynamically connects one machine to another when you send a message.
There is no static configuration.
Your application addresses the message and sends it - the MSMQ queue manager
does the rest.

Cheers
John Breakwell (MSFT)
Post by BillyTWorthington
We did just the Core Functionality piece but still cannot figure out how it
connects. When we try this from a x32 machine, we actually are prompted for
the messaging server that the client will connect to.
Post by John Breakwell (MSFT)
Hi Billy
The base client is "Core Functionality".
Everything else is optional.
"Active Directory Integration" is required if you want to make use of public
queues (and other AD functionality)
"Downlevel Client Support" is when you have Windows 2000 clients
"MSMQ HTTP Support" is sending messages over HTTP.
"Routing Support" does what it says. rarely required as MSMQ can usually
make a direct network connection.
"Triggers" are queue monitors for launching code when messages arrive.
Cheers
John Breakwell (MSFT)
Post by BillyTWorthington
I figured as much but I cannot see any options in the Add / Remove programs
Active Directory Integration
Core Functionality
Downlevel Client Support
MSMQ HTTP Support
Routing Support
Triggers
None of them have any ability to be detailed.
Post by John Breakwell (MSFT)
Hi
You need the MSMQ client running on both sender and receiver.
How is the web service coded to send messages to the private queues on the
application server?
If there is a problem then you should be seeing an hResult error code being
returned.
For example, 0xC00E000B means MSMQ service not available.
All the documentation you need is either in the help that comes with
the
OS
or on the MSDN/TecxhNet websites.
Cheers
John Breakwell (MSFT)
in
Post by BillyTWorthington
We are trying to deploy a new vendor application that requires MSMQ to
function between the Web Server and Application Server. They have no
documentation on setup and configuration and we have never tried to
do
this
before. We did a basic install of MSMQ on the App server and created
the
two
Private Queues that they requested but the web server piece cannot
talk
to
the App server. We are running Windows 2003 x64 R2 SP2 on both
machines
and
I figure we need some kind of client on the Web server for it to be talking
to the App server.
Any help would be greatly appreciated.
BillyTWorthington
2008-12-18 00:31:01 UTC
Permalink
So if I were to install MSMQ - the default is Core Functionality and Active
Directory Integration" - is there anything else to configure on either
server? I cannot believe it is as simple as two check boxes and some Private
Queues or is it?

Is there something in MSMQ that will send test messages from one server to
another to ensure that it is working correctly before trying to make their
application work?
Post by John Breakwell (MSFT)
Hi Billy,
I think you're misinterpreting the prompt you saw.
MSMQ is a peer-to-peer product. Each machine is a server, regardless of
operating system
(unless you are talking Dependent Clients but they are a rarely used special
case).
If you are prompted for a machine name then this is usually when you have
selected Active Directory Integration but a domain controller cannot be
found within the logical site. Setup is asking you for a domain controller
that it can contact. This machine is not involved in sending messages - it
is just the client's contact point for querying directory services. So being
prompted is not the norm.
"We did just the Core Functionality piece but still cannot figure out how it
connects."
MSMQ dynamically connects one machine to another when you send a message.
There is no static configuration.
Your application addresses the message and sends it - the MSMQ queue manager
does the rest.
Cheers
John Breakwell (MSFT)
Post by BillyTWorthington
We did just the Core Functionality piece but still cannot figure out how it
connects. When we try this from a x32 machine, we actually are prompted for
the messaging server that the client will connect to.
Post by John Breakwell (MSFT)
Hi Billy
The base client is "Core Functionality".
Everything else is optional.
"Active Directory Integration" is required if you want to make use of public
queues (and other AD functionality)
"Downlevel Client Support" is when you have Windows 2000 clients
"MSMQ HTTP Support" is sending messages over HTTP.
"Routing Support" does what it says. rarely required as MSMQ can usually
make a direct network connection.
"Triggers" are queue monitors for launching code when messages arrive.
Cheers
John Breakwell (MSFT)
Post by BillyTWorthington
I figured as much but I cannot see any options in the Add / Remove programs
Active Directory Integration
Core Functionality
Downlevel Client Support
MSMQ HTTP Support
Routing Support
Triggers
None of them have any ability to be detailed.
Post by John Breakwell (MSFT)
Hi
You need the MSMQ client running on both sender and receiver.
How is the web service coded to send messages to the private queues on the
application server?
If there is a problem then you should be seeing an hResult error code being
returned.
For example, 0xC00E000B means MSMQ service not available.
All the documentation you need is either in the help that comes with
the
OS
or on the MSDN/TecxhNet websites.
Cheers
John Breakwell (MSFT)
in
Post by BillyTWorthington
We are trying to deploy a new vendor application that requires MSMQ to
function between the Web Server and Application Server. They have no
documentation on setup and configuration and we have never tried to
do
this
before. We did a basic install of MSMQ on the App server and created
the
two
Private Queues that they requested but the web server piece cannot
talk
to
the App server. We are running Windows 2003 x64 R2 SP2 on both
machines
and
I figure we need some kind of client on the Web server for it to be talking
to the App server.
Any help would be greatly appreciated.
Frank Boyne
2008-12-19 01:39:49 UTC
Permalink
Post by BillyTWorthington
So if I were to install MSMQ - the default is Core Functionality and Active
Directory Integration"
Or just Core Functionality if you don;t need support for public queues.
Post by BillyTWorthington
- is there anything else to configure on either
server? I cannot believe it is as simple as two check boxes and some Private
Queues or is it?
Nope that's it. Install the MSMQ Windows component on each computer,
create a queue and off you go.
Post by BillyTWorthington
Is there something in MSMQ that will send test messages from one server to
another to ensure that it is working correctly before trying to make their
application work?
I prefer to just use a small piece of VBScript. Paste the following
into notepad, save as msmqsend.vbs and then run it using the command
cscript msmqsend.vbs (after changing the machine name, or using one of
the other FormatName values to identify the queue)

Option Explicit

Dim qi
set qi = WScript.CreateObject("MSMQ.MSMQQueueInfo")

qi.FormatName = "DIRECT=OS:BadWolf\private$\testqueue"
'qi.FormatName = "DIRECT=OS:192.162.1.1\private$\testqueue"
'qi.FormatName =
"DIRECT=HTTPS://BadWolf.example.com/msmq/private$/testqueue"

Dim q
set q = qi.Open(2,0) ' MQ_SEND_ACCESS,MQ_DENY_NONE

Dim msg
set msg = WScript.CreateObject("MSMQ.MSMQMessage")

msg.Body = "VBScript test message (msmqsend.vbs)" + String (200, "*")
msg.Label = "VBScript test message Label (msmqsend.vbs)"
msg.Journal = 1 ' MQMSG_DEADLETTER
msg.delivery = 1 ' MQMSG_DELIVERY_RECOVERABLE

Dim i
For i = 1 to 1 '0000
msg.Send q
Next

q.Close()
John Breakwell (MSFT)
2008-12-19 17:43:02 UTC
Permalink
Post by BillyTWorthington
So if I were to install MSMQ - the default is Core Functionality and Active
Directory Integration" - is there anything else to configure on either
server? I cannot believe it is as simple as two check boxes and some Private
Queues or is it?
No, MSMQ is really that easy to set up for simply sending messages from one
machine to another on an intranet.
Post by BillyTWorthington
Is there something in MSMQ that will send test messages from one server to
another to ensure that it is working correctly before trying to make their
application work?
Here's a list of what tools are available to use with MSMQ:
http://blogs.msdn.com/johnbreakwell/archive/2007/12/13/what-publically-available-tools-are-available-for-troubleshooting-msmq-problems.aspx

Cheers
John Breakwell (MSFT)
Trevor Miles
2009-02-10 17:49:33 UTC
Permalink
Hi John

I hope you don't mind me jumping on this thread, but I am having some of the
same issues. In my case I have 2 x Windows Server 2003 x86 machines running
in workgroup mode called "AppServer" and "Solver". From Solver, the
receiving machine, I can click on "My Computer"->"Manage" and then expand
"Message Queueing". Under "Outgoing Queues" I see a queue called
"DIRECT=OS:appserver\private$\icso", which is correct. I can even create
messages in this queue from Solver. Using a downloadable application called
QueueExplorer I can even purge the messages in the queue.

But I cannot create a Message Queue in VS Express 2008 on SOlver using the
path "DIRECT=OS:appserver\private$\icso". I get an error "Invalid queue path
name." The code I am using to create the MessageQueue is as follows:

Private mq_Path As String = "DIRECT=OS:appserver\private$\iCSO"
Private mq_iCSO As New System.Messaging.MessageQueue

Try
' The following section of code accesses a local queue
' and completes without an error
mq_iCSO.Path = ".\private$\iCSO"
mq_iCSO.Send("", "From VS on Solver")
If Not MessageQueue.Exists(".\private$\iCSO") Then
'MessageQueue.Create(mq_Path)
End If

' This section of code tries to access an existing queue on
another server
' and does not complete successfully
mq_iCSO.Path = mq_Path
mq_iCSO.Send("", "From VS on Solver")
If Not MessageQueue.Exists(mq_Path) Then
'MessageQueue.Create(mq_Path)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
John Breakwell (MSFT)
2009-02-11 11:02:11 UTC
Permalink
Hi Trevor,

"But I cannot create a Message Queue in VS Express 2008 on SOlver using the
path "DIRECT=OS:appserver\private$\icso". I get an error "Invalid queue
path name." "

Correct. You are trying to create a remote private queue which isn't going
to work.

MSMQ FAQ

http://download.microsoft.com/download/F/C/9/FC9989A2-DA75-4D96-B654-4BD29CF6AEE1/MSMQ_faq_updated.doc



Q5.1 Can I manage private queues from a remote computer?



Q14.3 I can send a message to a local private queue, using the path
.\private$\queue, but I cannot send to a remote private queue, using
computer\private$\queue. Why?



and especially this one:



Q18.8 How do I choose between public and private queues? And what about
format names?


Cheers
John Breakwell (MSFT)
Post by Trevor Miles
Hi John
I hope you don't mind me jumping on this thread, but I am having some of the
same issues. In my case I have 2 x Windows Server 2003 x86 machines running
in workgroup mode called "AppServer" and "Solver". From Solver, the
receiving machine, I can click on "My Computer"->"Manage" and then expand
"Message Queueing". Under "Outgoing Queues" I see a queue called
"DIRECT=OS:appserver\private$\icso", which is correct. I can even create
messages in this queue from Solver. Using a downloadable application called
QueueExplorer I can even purge the messages in the queue.
But I cannot create a Message Queue in VS Express 2008 on SOlver using the
path "DIRECT=OS:appserver\private$\icso". I get an error "Invalid queue path
Private mq_Path As String = "DIRECT=OS:appserver\private$\iCSO"
Private mq_iCSO As New System.Messaging.MessageQueue
Try
' The following section of code accesses a local queue
' and completes without an error
mq_iCSO.Path = ".\private$\iCSO"
mq_iCSO.Send("", "From VS on Solver")
If Not MessageQueue.Exists(".\private$\iCSO") Then
'MessageQueue.Create(mq_Path)
End If
' This section of code tries to access an existing queue on
another server
' and does not complete successfully
mq_iCSO.Path = mq_Path
mq_iCSO.Send("", "From VS on Solver")
If Not MessageQueue.Exists(mq_Path) Then
'MessageQueue.Create(mq_Path)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Loading...