I have seen wierd things in my environment lately. Basically after 4pm on
random days (havent checked everyday)
it seems the server where our app resides (mostly sending messages) the
messages stop being sent. they go into the outgoing queues
but just sit there. the total bytes in all queues is < 150 MB. This
machine is running windows 2000 server. The total bytes in all queues does
increase as time passes. Also, our MSMQ service RAM increases throughout
the day. is there possibly a leak? btw, we are sending
using direct OS, total life of a message in the system is 8 hours. and we
are using MSMQ 2.0. At about 3 o clock we have a bunch
of users go offline, but we still try to send messages to them. and it just
sits in the outgoing queues for 8 hours as mentioned earlier
then gets purged.
Anyone have any ideas or want more details??
"Doron Juster [MS]" <Dor...@Microsoft.com> wrote in message
news:uboMnmTmCHA.1216@tkmsftngp02...
> Two common reasons:
>
> 1) All licenses are exhausted. You must wait until receiver frees
resources
> (close queues, cleanup sessions) and make a license available. A common
case
> is deployment that uses only non-server operating system. MSMQ on
non-server
> operating system can establish only 10 msmq sessions with other non-server
> computers. So for example, if one non-server computer wants to send
messages
> to 50 other non-servers, then it first connects to ten destinations and
send
> the messages, then it wait until these ten sessions are cleaned up and
> connect to other ten, etc.
>
> 2) Machine Quota exhausted on receiver side. When this happen, receiver
side
> may teardown the session.
>
>
> Thanks, Doron
> --
> This posting is provided "AS IS" with no warranties, and confers no
rights.
>
>
> "Sanjay Kedare" <sanjay...@yahoo.com> wrote in message
> news:1fabc01c297d6$810466a0$89f82ecf@TK2MSFTNGXA01...
> > Hi,
> >
> > I am trying to send messages, my outgoing queue state
> > changes from "not connected" to "connected", sends one
> > message, again the queue state changes to "not connected",
> > after some time its able to "connect" and send the
> > remaining messages.
> >
> > The target machine is always available. What could be the
> > reason of this state change. Also when it connects for the
> > first time, why dont it send all the messages.
> >
> >
> > Thanks in advance,
> > Sanjay Kedare
>
>
For performance reasons, MSMQ runs "garbage collection" on the messages only
every 6 hours. Within the 6 hours interval, messages always occupy the
maximum amount of memory they needed since the last cleanup.
You can control this interval by setting
HKLM\Software\Microsoft\MSMQ\Parameters\MessageCleanupInterval . Note that
the value is in milliseconds - so the default value is 6 * 60 * 60 * 1000,
or 21600000 .
When a receiver is offline, messages will wait in the sender's outgoing
queues till either the receiver comes back online or the messages expire.
HTH,
Yoel
--
This posting is provided "AS IS" with no warranties, and confers no rights.
"basket_baller" <basket...@spam.hotmail.com> wrote in message
news:uHRdJUN3...@TK2MSFTNGP09.phx.gbl...
What you responded is very accurate and expected. And I am not too worried
about the cleanup because
we programmatically do this.
However, sometime after 4 pm we see that even users that are online, we cant
send messages to. they just get dispatched to
the queue manager and put in an outgoing queue and just sit there. So in
addition to messages being sent to these clients offline,
we are sendign to our online clients as well. In both cases however, the
messages just sit in outgoing queue with an inactive state.
i really dont get it. our msmqservice goes from 37mb Ram usage in the
morning, to 60mb at lunch, to 140 in evening.
we send all recoverable messages. also, each machine has the potential to
have many queues. so if we have 100 machines,
we may have 20 open remote queues on the server / client. sorry for the
confusion and i am not sure i made it too clear after
this time either. just ask more questions and i will try to help :) thanks
for the help!
"Yoel Arnon [MSFT]" <yo...@online.microsoft.com> wrote in message
news:OMR4#FO3CH...@TK2MSFTNGP12.phx.gbl...
MSMQ is using a thread pool to handle its incoming and outgoing sessions.
The number of threads, by default, is (Number Processors)*3 on a W2K Pro,
and (Number Processors)*5+3 on a W2K server. For example, if your machine is
a W2K server with 2 processors, the number of threads will be 13, while a
W2K Pro with 1 processor will have just 3 threads.
When all the computer's sessions (either outgoing queues or acknowledges to
incoming messages) are created easily, even three threads can handle lots of
sessions easily. However, when a large number of sessions cannot be created
because the other side went offline, each of these may hold a thread for up
to 20 seconds, waiting for RPC timeout. If you have a large number of
disconnected outgoing queues, your system may appear to be hanged.
A fix in W2K SP3 mitigated some of the negative consequences of such
situation (in particular, it caused recoverable send from the application to
hang) but not all.
What I advice you to do is to increase the number of threads till your
machine works flawlessly in the end of the day. You can do that by setting
HKLM\Software\Microsoft\MSMQ\Parameters\QMThreadNo to the desirable number
of threads.
For more details, see
http://support.microsoft.com/default.aspx?scid=kb;en-us;280087 and
http://www.microsoft.com/windows2000/techinfo/reskit/en-us/regentry/58703.as
p?frame=true .
HTH,
Yoel
--
This posting is provided "AS IS" with no warranties, and confers no rights.
"basket_baller" <basket...@spam.hotmail.com> wrote in message
news:eQn4pLR3...@TK2MSFTNGP11.phx.gbl...
Hi Yoel!
A question about the Thread Pool.
It is great that is possible is availible with SP3 (and Windows 2003
Server too I assume), we had a very similiar issue. But I have a
question that concernes the KB article that you reffer to:
http://www.microsoft.com/windows2000/techinfo/reskit/en-us/regentry/58703.as
p?frame=true .
The KB says that 16 threads is maximum. This is still very low for us,
but when we try to set a (much) higer value it looks like it works
fine (tested on Windows 2000 Server SP3) and the mqsvc.exe process
seems to create all the threads. Is the KB value obsolete of will we
experince problems if we use more threads.
Thanks!
-----------------------------------------------------
Regards,
Thorbjörn Sjövold
no_spam...@specialoperationssuite.com
(please remove no_spam_ when responding)
Special Operations Suite Dev Team - Knowledge Factory
www.specialoperationssuite.com
-----------------------------------------------------