Freigeben über


So finden Sie eine Benutzer-ID, die einer Sitzungs-ID in einem Fehler im Anwendungsprotokoll auf dem AOS-Server in Microsoft Dynamics AX zugeordnet ist

Gilt für: Microsoft Dynamics AX 2009
Ursprüngliche KB-Nummer: 953375

Übersicht

In diesem Artikel wird beschrieben, dass Sie die folgende Fehlermeldung im Anwendungsprotokoll in Microsoft Dynamics AX erhalten:

RPC-Fehler: RPC-Ausnahme 1726 ist in der Sitzung <SessionID> aufgetreten.

Außerdem wird in diesem Artikel beschrieben, wie Sie die Sitzungs-ID in der Fehlermeldung einer Benutzer-ID zuordnen.

Weitere Informationen

Betrachten Sie das folgende Szenario in Microsoft Dynamics AX 2009.

Sie stellen fest, dass die Arbeitsspeicherauslastung auf dem AOS-Server zunimmt. Überprüfen Sie dann das Anwendungsprotokoll auf dem AOS-Server, um die Ursache zu ermitteln. In diesem Szenario stellen Sie fest, dass ein Ereignis im Anwendungsprotokoll protokolliert wird.

In diesem Szenario möchten Sie möglicherweise eine Microsoft Dynamics AX-Benutzer-ID finden, die der Sitzungs-ID in der Fehlermeldung zugeordnet ist. Und Sie möchten den Geschäftsprozess verstehen und was der Endbenutzer zu dem Zeitpunkt getan hat, zu dem Sie Probleme haben.

Um festzustellen, ob das Problem durch einen Endbenutzer oder durch den Geschäftsprozess verursacht wird, können Sie die Sitzungs-ID aus der Fehlermeldung im Anwendungsprotokoll auf dem AOS-Server verwenden. Anschließend können Sie die Sitzungs-ID mit der Sysuserlog-Tabelle in der Microsoft Dynamics AX-Datenbank verknüpfen. Gehen Sie dazu wie folgt vor:

  1. Führen Sie eine SQL-Anweisung in SQL Query Analyzer oder sql Server Management Studio aus. Sie führen beispielsweise die folgende SQL-Anweisung in SQL Query Analyzer oder in SQL Server Management Studio aus:

    select * from sysuserlog where sessionid = <SessionID> and createddate > '2007/7/17' order by createddate desc
    

    Notiz

    • In diesem Skript <ist SessionID> der Platzhalter für die tatsächliche Sitzungs-ID in der Fehlermeldung im Anwendungsprotokoll.
    • Verwenden Sie in diesem Skript ein erstelltes Datum, das größer als (>) ein Tag oder mehrere Tage vor dem tatsächlichen Datum in der Fehlermeldung ist. Anschließend können Sie das Datum abrufen, an dem sich der Endbenutzer bei Microsoft Dynamics AX angemeldet hat, anstelle des Datums der tatsächlichen Fehlermeldung.
  2. Sehen Sie sich die Ergebnisse der Aussage an. Beispielsweise gibt es drei Datensätze in den Ergebnissen der folgenden Aussage.

    USERID Typ COMPUTERNAME Kundentyp Abmeldezeit Abmeldedatum BUILDNUM Sitzungs-ID Dokument abgeschlossen ERSTELLDATUM CREATEDTIME
    Administrator 0 MACHINE1 1 57511 7/17/2007 2500.275 10 1 7/17/2007 37944
    Mark 0 MACHINE3 1 0 1/1/1900 2500.275 10 0 7/19/2007 75080
    John 0 MACHINE2 3 41200 7/18/2007 2500.275 10 1 7/20/2007 40326
  3. Verwenden Sie die Ergebnisse der Anweisung, um den Benutzer zu bestimmen, der der Sitzungs-ID in der Fehlermeldung zugeordnet ist. Gehen Sie dazu wie folgt vor:

    1. Überprüfen Sie die CLIENTTYPE-Spalte, um den Typ der Verbindung zu ermitteln, und überprüfen Sie dann die TERMINATEDOK-Spalte, um festzustellen, welcher Client abgestürzt ist. Wenn die Spalte TERMINATEDOK für eine Zeile 0 (Null) anzeigt und in der Spalte LOGOUTTIME keine Abmeldungszeit aufgezeichnet wird, bedeutet das, dass ein Client abgestürzt ist oder ein Endbenutzer STRG+ALT+ENTF verwendet hat, um den Clientprozess zu beenden.

      Notiz

      • Verwenden Sie die SESSIONID-Spalte nicht, da Sitzungs-IDs wiederverwendet werden können.

      • In der Sysuserlog-Tabelle sind die Werte in der Spalte "ClientType " wie folgt dargestellt.

        Wert Die Bedeutung, die der Wert darstellt
        0 Com-Objekt
        1 Kunde
        2 Server
        3 Arbeitsthread

        Außerdem finden Sie diese Informationen zur Sysuserlog-Tabelle im folgenden Objekt in der Application Object Tree (AOT):
        \Systemdokumentation \ Enums \ClientType

    2. Notieren Sie sich den Wert in der Spalte "USERID " und der Spalte "COMPUTERNAME " für den Client, der abgestürzt ist. Bestimmen Sie dann, was bei diesem Client aufgetreten ist und welcher Benutzer den Client zu diesem Zeitpunkt verwendet hat.

    Im Beispiel in Schritt 1 gibt es keine Abmeldungszeit, und der TERMINATEDOK-Wert ist 0 für den zweiten Eintrag in den Ergebnissen. Daher ist die Benutzer-ID für Mark und für MACHINE3 höchstwahrscheinlich der Endbenutzer, der der Fehlermeldung im Anwendungsprotokoll zugeordnet ist. Sie müssen mit dem Endbenutzer abklären, ob das Problem aufgetreten ist und welche Art von Problemen er hatte.

Um aktuelle Verbindungen oder aktive Verbindungen zu überprüfen, überprüfen Sie die Tabelle "sysclientsessions" . Beachten Sie außerdem, dass Sitzungs-IDs möglicherweise wiederverwendet werden. Daher ist der aktuelle Benutzer, der die Sitzungs-ID verwendet, möglicherweise nicht der Endbenutzer, der der Fehlermeldung im Anwendungsprotokoll zugeordnet ist.