Verwaiste Anträge aus Queue löschen/ins Log übertragen

    Inhaltsverzeichnis
    keine Gliederung

    Version seit 16:59, 23 Dez 2024

    zu dieser Version.

    Zurück zu Versionshistorie.

    Zeige aktuelle Version

    Falls OMExecute.exe-Prozesse unerwartet abbrechen (z. B. durch System-Neustart bei noch laufenden Anträgen), bleiben die abgebrochenen Anträge in der Queue stehen.

    Um Anträge, zu denen es keine laufende OMExecute.exe mehr gibt, aus der Queue zu entfernen, kann folgendes SQL-Script benutzt werden (VOR AUSFÜHRUNG DISPATCHER-DIENST STOPPEN UND AUF GGF. LAUFENDE OMEXECUTE-PROZESSE PRÜFEN):

     

    Declare @TableRequests Table (RequestId int, MyRowCount Int Identity(1,1))
    Declare @i Int, @MaxI Int, @RequestId int
    Insert into @TableRequests
      Select id
      From tblQueueRequest
      Where (Status='processing')

     Select @MaxI = @@RowCount, @i = 1

    While @i <= @MaxI
    Begin
      Select @RequestId = RequestId from @TableRequests where MyRowCount = @i
      exec sp_DelQueueRequest @RequestId
      Select
      @i = @i + 1, @RequestId = null
    End

     

    Da gelöschte Anträge im Protokoll nicht mehr eingesehen werden können, gibt es auch die Möglichkeit, verwaiste Anträge ins Log zu übertragen. Hierzu ist es notwendig in der Warteschlange des OMHome die RequestId des Mantel-und ggf. des Unterantrags zu ermitteln, bei dem die Ausführung abgebrochen wurde. Anschließend können die Aträge durch Ausführung des folgenden Befehls ins Log kopiert werden:

    exec sp_CopyToLog RequestId

    Unterstützt von MindTouch Core