Message queue verarbeitung hört einfach auf

25/02/2008 - 15:10 von AndyL | Report spam
Hallo,

ich habe hier mal wieder einen tollen Effekt den ich mir nicht erklàren
kann. Ich arbeite mit message queues. Wird eines Message empfangen wird ein
thread gestartet er die messages verarbeitet.

void mqDfsConnectorReceive_ReceiveCompleted(object sender,
ReceiveCompletedEventArgs e)
{
try
{
System.Threading.Thread dfsServerThread = new Thread(new
ParameterizedThreadStart(DfsReceiveTask));
dfsServerThread.Name = "DfsServerThread_" + e.Message.Label;
dfsServerThread.Start(e.Message.Body);
}
catch (System.Messaging.MessageQueueException mqE)
{
log(2024, "ProcMan",LogSeverity.error, mqE.Message);
}
System.Threading.Thread.Sleep(100);
mqDfsConnectorReceive.BeginReceive();
}

Das funktioniert auch ganz gut. Jetzt kommt es manchmal vor das sehr viele
messages in die queue gestellt (mehr als 100) werden. Dann werden die ersten
30-40 Messages bearbeitet und danach passiert nichts und mein programm
verhàlt sich so als wàre keine message in der queue. Kommt jetzt nur eine
einzige message in die queue werden wieder 30-40 Messages abgearbeitet.

Hat jemand eine Idee an was das liegen könnte?

mfg

Andy Lucas
 

Lesen sie die antworten

#1 AndyL
25/02/2008 - 16:22 | Warnen spam
Hallo,

der code ist doch richtig. Der Fehler lag in der tieferen verarbeitung

sorry für das unnütze posting

AndyL

"AndyL" wrote:

Hallo,

ich habe hier mal wieder einen tollen Effekt den ich mir nicht erklàren
kann. Ich arbeite mit message queues. Wird eines Message empfangen wird ein
thread gestartet er die messages verarbeitet.

void mqDfsConnectorReceive_ReceiveCompleted(object sender,
ReceiveCompletedEventArgs e)
{
try
{
System.Threading.Thread dfsServerThread = new Thread(new
ParameterizedThreadStart(DfsReceiveTask));
dfsServerThread.Name = "DfsServerThread_" + e.Message.Label;
dfsServerThread.Start(e.Message.Body);
}
catch (System.Messaging.MessageQueueException mqE)
{
log(2024, "ProcMan",LogSeverity.error, mqE.Message);
}
System.Threading.Thread.Sleep(100);
mqDfsConnectorReceive.BeginReceive();
}

Das funktioniert auch ganz gut. Jetzt kommt es manchmal vor das sehr viele
messages in die queue gestellt (mehr als 100) werden. Dann werden die ersten
30-40 Messages bearbeitet und danach passiert nichts und mein programm
verhàlt sich so als wàre keine message in der queue. Kommt jetzt nur eine
einzige message in die queue werden wieder 30-40 Messages abgearbeitet.

Hat jemand eine Idee an was das liegen könnte?

mfg

Andy Lucas

Ähnliche fragen