Wenn ein Debug für eine IBM i-Anwendung ausgeführt wird, muss der Debugger wissen, in welchem Job die Anwendung ausgeführt werden soll oder ausgeführt wird, bevor die Debugsitzung startet. Startet Ihre Hauptanwendung beispielsweise unterschiedliche Jobs für verschiedene Tasks, sind Ihnen nicht immer die Jobnummern für diese Jobs bekannt. Um ein Debug für ein Programm auszuführen, das unter einem bestimmten bekannten Benutzerprofil ausgeführt wird, können Sie die Unterstützung für Serviceeingangspunkte verwenden, um ein Debug für einen derartigen Job auszuführen. Die Unterstützung für Serviceeingangspunkte liefert weitere ausführliche Informationen (siehe Debug für IBM i-Anwendungen mithilfe von Serviceeingangspunkten ausführen).
Werden alle Anwendungsjobs unter demselben generischen Benutzerprofil ausgeführt, würde durch das Definieren eines Serviceeingangspunkts der Debugger für den nächsten Job, der im System ausgeführt wird, gestartet und nicht für einen bestimmten Job.
Die Funktion für dynamische Zuordnung arbeitet wie folgt:
Erstellen Sie im Dialogfenster 'Debugkonfigurationen' eine neue Konfiguration IBM® i: Debug für dynamischen Job. Der Hilfetext für die Konfiguration für dynamische Zuordnung enthält weitere ausführliche Informationen. Geben Sie einen eindeutigen Schlüssel ein, um die Anwendung, für die das Debug ausgeführt werden soll, zu identifizieren, z. B. die Transaktions-ID für eine bestimmte Transaktion. Sie können auch, falls erforderlich, den Befehl zur Wiederaufnahme der Anwendung eingeben.
Nachdem Sie im Konfigurationsdialog Debug angeklickt haben, wartet der Debugger in der Datenwarteschlange Q5BTEMP/DYNAMICATT auf diesen Schlüssel. Erreicht Ihre Anwendung den Punkt, an dem das Debug ausgeführt werden soll, wird die Anwendung, falls erforderlich, durch diese Anwendung oder den zugehörigen Helper angehalten und der Schlüssel und die Nummer des Jobs, für den das Debug ausgeführt werden soll, werden in die Debuggerdatenwarteschlange Q5BTEMP/DYNAMICATT geschrieben. Sobald dieser Schlüssel verfügbar ist, liest der Debugger den Eintrag und ruft die zugehörige Jobnummer ab, um die Debugsitzung für diesen Job zu starten.
Wenn der Debugger bereit ist, wird der bereitgestellte Befehl zur Wiederaufnahme der Anwendung ausgegeben, damit die Ausführung der Anwendung fortgesetzt werden kann. Wenn kein Befehl zur Wiederaufnahme bereitgestellt wurde, wird der Debugger dem Job zugeordnet, der über die Schnittstelle der Datenwarteschlange angegeben wird.
Nachfolgend wird ein Beispielszenario gezeigt.
Ihre Anwendung übergibt Stapeljobs zur Ausführung von Programmen. Diese Jobs werden alle unter demselben Benutzerprofil ausgeführt. Die übergebenen Programme haben jeweils eine eindeutige ID als Parameter. Sie möchten ein Debug für eine bestimmte ID ausführen. Ihre Hauptanwendung verfügt über einen Interprozessmechanismus, um diese ID abzurufen. Um ein Debug für den Job auszuführen, erstellen Sie eine Konfiguration IBM i: Debug für dynamischen Job, geben die ID als den Schlüssel an und geben den Befehl zur Wiederaufnahme Ihres angehaltenen Programms ein. Dann führen Sie Ihre Anwendung unter Verwendung der angegebenen ID aus. Ihre Hauptanwendung prüft die ID, bevor sie den Job übergibt. Handelt es sich bei der ID um die ID für den Job, für den das Debug ausgeführt werden soll, wird dieser Job angehalten und die Jobnummer in die Debugdatenwarteschlange geschrieben. Ihre Anwendung verfügt außerdem über eine Datendatei zum Speichern der ID und der zugehörigen Jobnummer für alle Jobs, die in die Debugdatenwarteschlange geschrieben wurden. Um das angehaltene Programm freizugeben, lokalisieren Sie mit Hilfe der ID den Job in der Datendatei und geben Sie den Job frei.