WICHTIG: Ändern oder Löschen Sie keinen der eingerichteten Datenbankschedules, da dies zu unerwarteten Fehlerzuständen führen kann.
Die Initialisierung des DBQueue Prozessor erfolgt einmalig während der Schemainstallation. Während der Initialisierungsphase werden die folgenden Datenbankschedules erzeugt:
-
QBM_PWatchDog on <database>
Dieser Datenbankschedule übernimmt mehrere Funktionen im One Identity Manager.
-
Er prüft, ob der zentrale Dispatcher des DBQueue Prozessor aktiv ist und startet diesen neu.
-
Er startet einen Datenbankschedule zum Entfernen der bereits verarbeiteten DBQueue Aufträge.
-
Er übernimmt die Prüfung und den Start der Zeitpläne.
-
Er prüft in regelmäßigen Abständen, ob der Einzelbenutzermodus der Datenbank noch erforderlich ist und setzt gegebenenfalls die Angabe zurück.
Dieser Datenbankschedule verfügt über einen aktiven Zeitplan mit einem Intervall von 1 Minute.
-
QBM_PDBQueueProcess_Main on <database>
Dieser Datenbankschedule ist der zentrale Dispatcher des DBQueue Prozessor. Der zentrale Dispatcher übernimmt die Steuerung der Verarbeitung und verteilt die Aufträge der DBQueue an die einzelnen Slots. Bei jedem Lauf des zentralen Dispatchers wird die Anzahl der aktuell verfügbaren Slots ermittelt, die für den aktuellen Lauf verwendet werden können. Der zentrale Dispatcher startet die Datenbankschedules der aktuell verfügbaren Slots einmalig.
Es wird maximal ein Datenbankschedule für den zentralen Dispatcher gestartet. Der Datenbankschedule des zentralen Dispatchers besitzt keinen aktiven Zeitplan, sondern wird durch den Datenbankschedule QBM_PWatchDog on <database> gestartet.
-
QBM_PDBQueueProcess<SlotNumber> on <database>
Während der Initialisierungsphase des DBQueue Prozessor wird die Anzahl der maximal verfügbaren Slots ermittelt. Die Anzahl der maximalen Slots ist abhängig von der Anzahl der Prozessoren auf dem Datenbankserver. Für jeden Slot wird ein zugehöriger Datenbankschedule QBM_PDBQueueProcess<SlotNumber> on <database> eingerichtet. Jeder Datenbankschedule wird mit einem Prozess eingerichtet, der die Aufträge der DBQueue für genau diesen Slot ausführt. Die Datenbankschedules der einzelnen Slots besitzen keine aktiven Zeitpläne. Der Start erfolgt über den zentralen Dispatcher.
-
QBM_PDBQueueProcess_Del on database
Dieser Datenbankschedule entfernt die verarbeiteten DBQueue Aufträge. Der Datenbankschedule besitzt keinen aktiven Zeitplan, sondern wird durch den Datenbankschedule QBM_PWatchDog on <database> gestartet.
Verwandte Themen
Treten bei der Initialisierung des DBQueue Prozessors Fehler auf, werden die Meldungen im Anwendungsprotokoll protokolliert. Das Anwendungsprotokoll können Sie beispielsweise über die Ereignisanzeige in der Microsoft Management Console anzeigen.
Über den Konfigurationsparameter QBM | DBServerAgent | CreateNotification können Sie konfigurieren, in welchen Fällen Meldungen in das Anwendungsprotokoll geschrieben werden. Passen Sie den Konfigurationsparameter bei Bedarf im Designer an.
Zulässige Werte sind:
-
0: Es erfolgt keine Protokollierung.
-
1: Es werden nur Erfolgsmeldungen protokolliert.
-
2: Es werden nur Fehlermeldungen protokolliert (Standard).
-
3: Es werden alle Meldungen protokolliert.
WICHTIG: Verwenden Sie für die Ausführung der SQL Abfragen den Benutzer, den Sie auch für die Migration der Datenbank verwenden.
-
Die Prozedur QBM_PDBQueuePrepare ist einmalig manuell auszuführen, bei Erweiterung der Serverhardware und bei Erstellung kundenspezifischer DBQueue Prozessor Aufträge.
-
Bei Einrichtung einer Referenzdatenbank für eine Test- oder Entwicklungsumgebung sind die Prozeduren QBM_PDBQueuePrepare und QBM_PWatchDogPrepare einmalig auszuführen.
Führen Sie mit einem geeigneten Programm zur Ausführung von SQL Abfragen einmalig die folgenden Prozeduren in der Referenzdatenbank aus.
exec QBM_PWatchDogPrepare
exec QBM_PDBQueuePrepare 0,1
Der Datenbankschedule für den zentralen Dispatcher wird durch den Datenbankschedule QBM_PWatchDog on <database> gestartet. Der zentrale Dispatcher übernimmt die Steuerung der Verarbeitung und verteilt die Aufträge der DBQueue an die einzelnen Slots.
Bei jedem Lauf des zentralen Dispatchers wird zunächst die Anzahl der aktuell verfügbaren Slots ermittelt, die für den aktuellen Lauf verwendet werden können. Je mehr Last auf dem Datenbankserver vorhanden ist, desto weniger Slots können aktuell verwendet werden, mindestens werden jedoch 5 Slots verwendet.
Die Anzahl der aktuell verfügbaren Slots ergibt sich aus :
Anzahl aktuell verfügbarer Slots = Anzahl der maximal verfügbaren Slots - Betrag für alle Prozesse der eigenen Datenbank - Betrag für Prozesse auf anderen Datenbanken des Servers
Der zentrale Dispatcher startet die Datenbankschedules der aktuell verfügbaren Slots einmalig. Jeder Datenbankschedule ist mit einem Prozess eingerichtet, der die Aufträge für genau diesen Slot ausführt.
Sobald Aufträge in die DBQueue eingetragen werden, wird der zentrale Dispatcher benachrichtigt. Der zentrale Dispatcher verteilt die Aufträge in die einzelnen Slots und benachrichtigt die Prozesse der Slots, dass Aufträge zur Verarbeitung anstehen. Jeder Prozess verarbeitet die Aufträge, die für seinen Slot eingestellt werden. Nach Beendigung seines Auftrags sendet jeder Prozess eine Benachrichtigung an den zentralen Dispatcher und wartet auf neue Aufträge.
Der zentrale Dispatcher prüft in definierten Abständen, ob die Slots noch aktiv sind und verteilt neue Aufträge an die Slots. Sind keine Aufträge in der DBQueue vorhanden, geht der zentrale Dispatcher in den Wartezustand und wartet auf die Benachrichtigung über neue Aufträge.
Nach Ablauf der Laufzeit werden die Aufträge aktuell verwendeter Slots noch abgearbeitet. Anschließend werden die Datenbankschedules der Slots gestoppt und der zentrale Dispatcher beendet. Weitere Informationen finden Sie unter Kommunikation des zentralen Dispatchers mit den einzelnen Slots.
Abbildung 39: Steuerung der Verarbeitung