Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Calling Queued Component on Win2K3 from Win2K Client

2 views
Skip to first unread message

mrashi...@hotmail.com

unread,
May 27, 2005, 8:00:01 AM5/27/05
to
Hi,
I have searched through various MSMQ newsgroups but couldn't find
answer to my problem.
Let me explain my application deployment architecture first. Its
deployed on a 4-machine setup, all running Windows 2000 servers. One of
the machines acts as the PDC of the domain. All machines have got
multiple COM+ components installed with queueing enabled. All (except
PDC) have private queues (i.e. not using ADS).
Recently I have added another machine, this time a Windows 2003 machine
(with private queues) to the domain, installed some of my queued
components there and made it part of the domain. However I am unable to
make a call to any of the queued component hosted by the 2003 machine
from my Win2K machines. The call doesn't generate any error but the
message sits there in the outgoing queue of the caller machine. This,
however, does not happen on PDC machine which is able to send queued
call to any component on the 2003 machine.
I tried calling Win2K hosted queued components from my 2003 machines
and it works fine. I haven't changed any security settings for my COM+
applications and/or MSMQ, just moved/copied some of my components from
Win2K machine to 2003. Here's a sample call (VB)

Dim oQueuedInterface As IMyQueuedInterface
Dim sRequest As String

' Read request from file/other object etc.
Set oQueuedInterface =
GetObject("Queue:FormatName=DIRECT=OS:MYWIN2KSERVER\Private$\MyQueuedCOMPlusApp/new:Component.ProgID")
oQueuedInterface.ProcessRequest sRequest
Set oQueuedInterface = Nothing

The above sample doesn't generate any error, however it just increases
the outgoing queue message count and no actual processing happens
(except when run on the PDC). The same sample when run on 2003 machine
to access a 2000 hosted queued component runs OK.

Chris

unread,
May 27, 2005, 11:04:02 AM5/27/05
to
I hope someone can help you (and me). I have the exact same problem running
C++ and have been fighting it for a couple of days. I can see the messages
in the Win2K3 destination queue using perfmon from the Win2K source computer,
but never see the messages in the queue on the Win2K3 computer using perfmon
to look at the specific queue nor do I see the total incoming message count
go up on the Win2K3 destination computer's perfmon msmq/session/incoming
messages count.

Chris

unread,
May 27, 2005, 11:19:09 AM5/27/05
to
I think this must be related to correctly installing MSMQ "downlevel client
support", but I cannot confirm this because I do not have domain admin rights
in my domain. If you can install this MSMQ component (Add/Remove Programs,
Windows Components, Application Server/Message Queueing/Downlevel Client
Support), I think it will solve our problems. I did not realize Win2K was
considered a "downlevel client" but it is, 2.0 vs Win2K3 at 3.0. Good luck.

mrashi...@hotmail.com

unread,
May 30, 2005, 1:53:32 AM5/30/05
to
I have reviewed windows 2003 installation help. It seems that downlevel
client support is required ONLY when you are installing Windows 2003 on
the PDC and you have one or more computers in your domain that have an
earlier version of MSMQ (i.e. all OS except XP). Installing this
support is required when you are going to have public queues (i.e.
using ADS) on 2003 and you want them to be accessible to the client
machines. However, I will try more installation options (along with
this one) to see if this resolves the issue; will post here if some
resolution to the problem is found :)

mrashi...@hotmail.com

unread,
May 31, 2005, 2:42:17 AM5/31/05
to
I have done a few more experiments but none of them actually worked for
my scenario. I tried posting directly to the Win2k3 com+ component
queue from windows 2000 machine (by using MSMQ.MSMQMessage,
MSMQ.MSMQQueue(Info) etc. and using
FormatName="DIRECT=OS:WIN2K3SERVER\Private$\COMPlusAppName"). This
worked and message appeared on the destination queue on Windows 2003.
However calling a queued object method still doesn't work. I also
changed MSMQ service account on Windows 2000 machine from Local System
to domain administrator account (to remove any potential access
problem(s)) but this didn't work either. The outgoing queue shows a
status of Connected with Correct IP in Next hop but the message just
sits there. Event logs on both machines don't report anything.

mrashi...@hotmail.com

unread,
May 31, 2005, 9:10:11 AM5/31/05
to
Got it working at last!
There is a new Security Option (Local Security Policy->Local
Policies->Security Options) in Windows 2003 which is called "Network
access: Let Everyone permissions apply to anonymous users". This is
disabled by default (i.e. Anonymous logon is not part of Everyone group
by default). Under Windows 2000, anonymous is part of Everyone group by
default. MSMQ uses anonymouse access to send messages to remote queues
which requires correct security setings to be in place. Enabling this
new security option resolves the issue (Windows 2003 machine needs to
be restarted after changing this option).

Frank Boyne

unread,
Jun 1, 2005, 3:24:59 PM6/1/05
to
<mrashi...@hotmail.com> wrote in message
news:1117545011....@g49g2000cwa.googlegroups.com...

> There is a new Security Option (Local Security Policy->Local
> Policies->Security Options) in Windows 2003 which is called "Network
> access: Let Everyone permissions apply to anonymous users".

Note that turning this option on affects all sorts of things on the system,
not just MSMQ. For example, any file with read access granted to "Everyone"
would now be readable by anonymous users.

An alternative approach might be to explicitly grant the built-in "Anonymous
Users" the same queue access rights that "Everyone" has been given. That
should limit your change to just the queue (or queues) you modify the
permissions of.


0 new messages