Datenwarteschlange für dynamisches Jobdebugging

Der IBM® i Integrated Debugger verwendet eine Datenwarteschlange für die Kommunikation mit der Benutzeranwendungsumgebung. Die Unterstützung für dynamische Zuordnung ermöglicht Ihnen das Starten einer Debugsitzung unter Verwendung der Konfiguration 'IBM i: Debug für dynamischen Job' und eines Schlüssels. Wenn die Anwendungsumgebung den Schlüssel für den Job, für den das Debug ausgeführt werden soll, in diese Datenwarteschlange schreibt, wird eine Debugsitzung für diesen Job gestartet. Der Abschnitt Unterstützung für dynamische Zuordnung (IBM i Integrated Debugger) enthält weitere ausführliche Informationen.

Die Speicherposition dieser Datenwarteschlange ist Q5BTEMP/DYNAMICATT.

Wenn der Debug-Server mit dem Befehl STRDBGSVR gestartet wird, wird diese Datenwarteschlange erstellt.

Wenn der Debug-Server mit dem Befehl ENDDBGSVR beendet wird, wird diese Datenwarteschlange gelöscht.

Ihre Anwendung oder der zugehörige Helper muss den Schlüssel und den vollständigen Namen des Jobs, für den das Debug ausgeführt werden soll, mit Hilfe der Datenwarteschlange-API in diese Datenwarteschlange schreiben. Das erwartete Format ist ein Puffer mit einer Länge von 26. Die ersten 10 Zeichen dieses Puffers enthalten den Jobnamen. Die nächsten 10 Zeichen dieses Puffers enthalten den Benutzernamen für diesen Job. Die letzten 6 Zeichen enthalten die Jobnummer.

Das folgende Beispiel zeigt ein RPGLE-Programm, das den vollständigen Jobnamen abruft und die Benutzer-ID und den vollständigen Jobnamen in die Debuggerdatenwarteschlange schreibt:

     D psds           sds          1000    qualified
     D  jobinfo                      26    overlay(psds:244)

     D QSNDDTAQ_debug...
     D                 PR                  EXTPGM('QSNDDTAQ')
     D  data_queue_name...
     D                               10A   CONST
     D  library_name                 10A   CONST
     D  length_of_data...
     D                                5P 0 CONST
     D  data                         26A   CONST
     D                                     OPTIONS(*VARSIZE)
     D  length_of_key                 3P 0 CONST
     D  key_data                     64A   CONST

     D mykey           s             64A
      /free
        mykey =  'eindeutiger_Schlüssel';
        monitor;
          QSNDDTAQ_debug ('Q5BDYNATT' : 'Q5BTEMP' : 26 : psds.jobinfo:
                        64 : mykey);
        on-error;
          //error occurred
        endmon;
        return;
      /end-free                   

Feedback