Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Remote » SQL Remote-Deployment und -Administration » SQL Remote-Administration » SQL Remote-Performance verbessern » Performance beim Nachrichtenempfang verbessern

 

Die Anforderungen zum erneuten Senden von Nachrichten anpassen

Wenn eine Nachricht in einer Sequenz fehlt, wartet der Nachrichtenagent (dbremote) eine angegebene Anzahl von Abrufen, bevor er anfordert, dass die fehlende Nachricht erneut gesendet wird. Die Anzahl der Abrufe, die der Nachrichtenagent (dbremote) wartet, wird als Wartestatus bezeichnet. Standardmäßig hat der Nachrichtenagent (dbremote) einen Wartestatus von 1.

Wenn der Nachrichtenagent (dbremote) einen Wartestatus von 1 hat und erwartet, dass er Nachricht 6 empfangen wird, aber Nachricht 7 empfängt, führt der Nachrichtenagent (dbremote) keine Aktion durch. Statt dessen wartet der Nachrichtenagent (dbremote) auf die Ergebnisse des nächsten Abrufs. Wenn nach dem nächsten Abruf Nachricht 6 weiterhin fehlt, gibt der Nachrichtenagent (dbremote) eine Neusendeanforderung für Nachricht 6 aus.

Neusende-Wartestatus erhöhen

Angenommen, Sie haben ein sehr kleines Abrufintervall und ein Nachrichtensystem, das die Reihenfolge nicht aufrecht erhält, in der Nachrichten eintreffen. Es ist zu erwarten, dass Nachrichten außerhalb der Reihenfolge eintreffen, nachdem zwei oder drei Abrufe stattgefunden haben. In diesem Beispiel wird empfohlen, dass Sie die Befehlszeilenoption -rp verwenden, um den Wartestatus des Nachrichtenagenten (dbremote) zu erhöhen, damit nicht eine große Anzahl unnötiger Neusendeanforderungen gesendet wird. Die Befehlszeilenoption -rp wird oft in Verbindung mit der Option -rd verwendet, mit der das Abrufintervall eingestellt wird. Weitere Hinweise finden Sie unter Das Abrufintervall zum Überprüfen auf neue Nachrichten anpassen.

Beispiel

Es gibt zwei entfernte Benutzer namens Benutzer1 und Benutzer2, die beide den Nachrichtenagenten (dbremote) mit einem Abrufintervall von 30 Sekunden und einem Wartestatus von 3 Abrufen ausführen. Sie verwenden beispielsweise den folgenden Befehl, um ihre Nachrichtenagenten (dbremote) auszuführen:

dbremote -c "DSN=SQL Anywhere 11 Demo"  -rd 30s -rp 3

In der folgenden Sequenz von Vorgängen werden Nachrichten als BenutzerX.n markiert, wobei X der Benutzername und n die Nachrichtennummer ist. Beispiel: Benutzer1.5 ist die fünfte Nachricht von Benutzer1. Der Nachrichtenagent (dbremote) erwartet, dass für beide Benutzer die Nachrichten bei Nummer 1 beginnen.

Zum Zeitpunkt 0 Sekunden:

  1. Der Nachrichtenagent (dbremote) liest Benutzer1.1, Benutzer2.4.

  2. Der Nachrichtenagent (dbremote) verarbeitet Benutzer1.1.

  3. Der Wartestatus des Nachrichtenagenten (dbremote) ist jetzt: Benutzer1: k.A., Benutzer2: 3, da eine Nachricht außerhalb der Reihenfolge von Benutzer 2 angekommen ist

Zum Zeitpunkt 30 Sekunden:

  1. Der Nachrichtenagent (dbremote) liest: keine neuen Nachrichten.

  2. Der Nachrichtenagent (dbremote) verarbeitet: nichts.

  3. Der Wartestatus des Nachrichtenagenten (dbremote) ist jetzt: Benutzer1: k.A., Benutzer2: 2.

Zum Zeitpunkt 60 Sekunden:

  1. Der Nachrichtenagent (dbremote) liest Benutzer1.3.

  2. Der Nachrichtenagent (dbremote) verarbeitet: keine neuen Nachrichten.

  3. Der Wartestatus des Nachrichtenagenten (dbremote) ist: Benutzer1: 3, Benutzer2: 1.

Zum Zeitpunkt 90 Sekunden:

  1. Der Nachrichtenagent (dbremote) liest: Benutzer1.4.

  2. Der Nachrichtenagent (dbremote) verarbeitet: nichts.

  3. Der Wartestatus des Nachrichtenagenten (dbremote) ist: Benutzer1: 3, Benutzer2: 0.

  4. Der Nachrichtenagent (dbremote) gibt eine Neusendeanforderung an den Benutzer2 aus.

Wenn ein Benutzer eine neue Nachricht erhält, setzt er den Wartestatus des Nachrichtenagenten (dbremote) zurück, auch wenn die Nachricht nicht jene ist, die er erwartet hat.

Zum Zeitpunkt 120 Sekunden:

  1. Der Nachrichtenagent (dbremote) liest: Benutzer1.2 und Benutzer2.2.

  2. Der Nachrichtenagent (dbremote) verarbeitet Benutzer1.2, Benutzer1.3, Benutzer1.4 und Benutzer2.2.

  3. Der Wartestatus des Nachrichtenagenten (dbremote) ist Benutzer1: k.A., Benutzer2: k.A.

Siehe auch