Re: MSMQT Dummy Problem
From: Iuliu Rus (iuliur_at_microsoft.com)
Date: Wed, 02 Jun 2021 17:23:13 GMT
I'll try. First, InOrdAckT. The MSMQ protocol uses order acks to guarantee
only once and in order delivery. It works like this: the sender puts
sequence numbers in every MSMQ message that it sends to a queue. Because of
network issues, some messages might be lost. To guarantee that delivery,
the sender needs to resend the messages that get lost. To do that, he needs
to figure out what messages reached the destination and what messages were
lost. Here the receiver comes into play. For every queue, the receiver
maintains the last good sequence number that it got from the network. For
example if the receiver gets M1, M2, M3 and M6 from the network, he
discards M6 (because M4 and M5 are missing) and sets the last good sequence
number to 3. Periodically (every X minutes) the receiver sends back to the
sender a special message called an Order Ack, that contains the last good
sequence number. It is a way of saying "I have all the messages up to 3,
please resend M4 and above" (M6 will be resent again).
InOrdAckT is a timer message that MSMQT posts to itself to remind him to
send order ack for this queue. MSMQT cannot use in-memory timers because
there might be more that one physical computer that needs that timer, so it
uses the Biztalk routing infrastructure to post a message himself.
Second, InReleaseT. Because MSMQT needs to guarantee ordered delivery, at
any point in time only one thread on only one computer in the group must
process messages that are delivered to a specific queue. This thread works
on some persistent data that is saved and loaded from the database. We call
this a MSMQT instance. When the thread is running on a specific computer,
we say that the MSMQT instance is "Active". When the data is persisted in
the database and there is no one working on it we say that the instance is
"Dehydrated". An active MSMQT instance maintains a lock on the queue object
in the database, so that no other active instance on any other computer can
work on this queue. For load-balancing purposes and to save memory, active
MSMQT instances are dehydrated if the queue wasn't used in a while.
InReleaseT is a special timer message that MSMQT posts to all instances to
remind them to dehydrate if the queue wasn't used since the last time they
received this message.
If a queue wasn't used in a long, long time, MSMQT will delete any database
objects and state associated with that queue. InCleanT is message that
posts to itself to remind him to check if the queue was used and to delete
the database objects if it wasn't
- Re: Buying from clarity.it
... "If you don't offer customers the courtesy of telephone communication you ...
joins the queue though, so well done there for taking the time to write ... queue there"
we now have disgraceful customer service? ... Also, to be teeth-grittingly helpful, if
you want it sent Special Delivery ... (uk.telecom.broadband)
- Re: Reading message form a MSMQT queue?
... >then i want to retrieve from same queue 'test' using a MSMQT receive port
... transport layer, which looks to see if there is a receive port that has the ...
if someone sends data to this machine using MSMQ ... (microsoft.public.biztalk.general)
- Buying from clarity.it
... deliveries are always lamentably slow and this time I emailed an enquiry ...
"I know from several previous orders that speed of delivery is not your ... the queue
like everyone else" or as it would have been, "ok, I've pulled ... queue there" we now have disgraceful
customer service? ... (uk.telecom.broadband)
- Re: MSMQT issue
... A critical point about using MSMQ: I read a post by EldarM explaining the ...
two (MSMQT and MSMQ) and he said something like with BTS2004 MSMQ doesnt ... One of our
services pumps messages into a queue that is ... one will care and when the subscriber
comes up again, ... (microsoft.public.biztalk.general)
- Re: MSMQT Dummy Problem
... If you have a MSMQT receive location combined with a xml validating (or ...
> sequence numbers in every MSMQ message that it sends to a queue. ... > on some
persistent data that is saved and loaded from the database. ... > InReleaseT is a special
timer message that MSMQT posts to all instances to ... (microsoft.public.biztalk.general)