Transaktionskontingente

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 1 Minute Lesedauer
  • Mit Transaktionskontingenten können Sie eine Kontingentrichtlinie für verschiedene Arten von Transaktionen definieren. Ein Transaktionskontingent bricht alle Transaktionen ab, die gegen die Richtlinie verstoßen, und benachrichtigt den Benutzer über den Abbruch.

    Das Plugin „Transaction Quotes“ ist standardmäßig bei allen neuen und aktualisierten Instanzen aktiv.
    Abbildung : 1. Transaktion storniert
    Transaktion abgebrochen
    Das Transaktionskontingent schreibt auch die Abbruchnachricht als Warnung in die Protokolldatei.
    Abbildung : 2. Protokoll für Transaktionsabbruch
    Protokoll einer stornierten Transaktion

    In der Regel legen Administratoren Transaktionskontingente fest, um zu verhindern, dass Abfragen und Skripts mit schlechter Leistung Systemressourcen verbrauchen. Dadurch wird sichergestellt, dass keine Transaktion genügend Ressourcen verbraucht, um die Ausführung anderer Transaktionen zu verhindern. Administratoren können auch Abbruchprotokollnachrichten anzeigen, um Transaktionen zu identifizieren, die möglicherweise übermäßige Ressourcen verbrauchen.

    Funktionsweise von Transaktionsmengen

    Für Transaktionen wird der Quotenmanager verwendet, ein Hintergrund-Thread, der Transaktionen abbricht. Der Quotenmanager führt die folgenden Aktionen aus.
    1. Ruft eine Liste aktiver Transaktionen ab, ähnlich der Liste unter Anwenderadministration > Aktive Transaktionenan.
    2. Durchläuft jede Transaktion und prüft alle Mengenregeln mit Bedingungen, die mit der Transaktion übereinstimmen. Das erste Vorkommen, das eine der Kontingentbeschränkungen überschreitet, löst einen Transaktionsabbruch aus. Wenn sich eine Transaktion ändert oder eine neue Mengenregel vorliegt, wertet der Mengenmanager die Transaktion neu aus.
      Hinweis:
      Das Feld Reihenfolge in einer Mengenregel wirkt sich auf die Reihenfolge aus, in der die Mengenregeln überprüft werden. Der Mengenmanager prüft zuerst die Regeln niedrigerer Ordnung (z. B. Reihenfolge 80 vor Reihenfolge 90), aber letztendlich prüft er alle Regeln. Dies kann je nach den Bedingungen der beteiligten Regeln geringfügige Auswirkungen auf die Leistung haben.
    3. Bricht die Transaktion ab, wenn sie länger als das angegebene maximale Kontingent ausgeführt wurde.
    4. Protokolliert die laufenden Transaktionen.
    5. Schläft bis zum nächsten Takt, was durch die glide.quota.manager.heartbeat Systemeigenschaftgesteuert wird.

    Beispiele für Transaktionsabbruch

    Transaktionen können aus mehr als einem Grund storniert werden. Suchen Sie nach den folgenden Indikatoren.

    • maximale Ausführungszeit überschritten: Diese Nachricht wird angezeigt, wenn die glide.quota.manager-Threads die Transaktion abbrechen.
    • von anderer Transaktion abgebrochen: Diese Nachricht wird angezeigt, wenn die Transaktion von dem Sitzungs-Thread abgebrochen wurde, der sie ursprünglich ausgegeben hat, und nicht vom Thread „glide.quota.manager“.
    • Auf Anwenderanfrage abgebrochen: Diese Nachricht wird angezeigt, wenn der Anwender auf die rote Schaltfläche „X“ geklickt hat, um die laufende Transaktion abzubrechen.
    Wenn Sie nach Transaktionen suchen, die von glide.quota.manager abgebrochen wurden, suchen Sie nach der Kombination [Nachricht] [Enthält] [maximale Ausführungszeit überschritten]. Beispiel:
    Cancelling transaction /home.do - Default-thread-11.0 (maximum execution time exceeded): Thread Default-thread-11.0 (Default-thread-11.0, F530DD111B11111111FC031767DA158E), after 30000ms
    an.