Liberty-Repository[8.5.5.6 oder höher]

Verwaltung der Stapel-REST-API

WebSphere Application Server Liberty Profile enthält eine REST-konforme Verwaltungsschnittstelle zur Verwaltung Ihrer Stapeljobs.

Die den Stapeljobs zugeordneten Basisoperationen sind das Abschicken (Starten), Stoppen, erneute Starten und das Anzeigen des Status. Sie können diese Operationen mit jedem HTTP-REST-Client durchführen. Daten, die als Teil einer Anforderung abgeschickt oder als Teil einer Antwort zurückgegeben werden, sind in JSON formatiert.

Die folgenden Beispiele zeigen die Funktionen, die Sie mit der REST-API ausführen können.

Hinweis: Die Webadressen der REST-Schnittstelle für Stapeljobs beginnen alle mit der folgenden Stammwebadresse: https://{Host}:{Port}/ibm/api/batch.

Jobinstanzen

GET /ibm/api/batch/jobinstances/
Dieser URI gibt eine Liste der Jobinstanzen zurück. Gültige Abfrageparameter:
  • page=[Seitenzahl]: Gibt an, welche Seite (d. h. welche Untermenge an Datensätzen) zurückgegeben werden soll. Der Standardwert ist 0.
  • pageSize=[Anzahl Datensätze pro Seite]: Gibt die Anzahl der Datensätze pro Seite an. Der Standardwert ist 50.
Beispielanforderungen:

https://localhost:9443/ibm/api/batch/jobinstances

https://localhost:9443/ibm/api/batch/jobinstances?page=13&pagesize=20

Beispielantwort:
[
    {
        "jobName":"test_sleepyBatchlet",
        "instanceId":7,
        "appName":"SimpleBatchJob#SimpleBatchJob.war",
        "submitter":"bob",
        "batchStatus":"COMPLETED",
        "jobXMLName":"test_sleepyBatchlet",
        "instanceState":"COMPLETED",
        "_links":[
            {
                "rel":"self",
                "href":"https://localhost:9443/ibm/api/batch/jobinstances/7"
            },
            {
                "rel":"job logs",
                "href":"https://localhost:9443/ibm/api/batch/jobinstances/7/joblogs"
            }
        ]
    },
    {
        "jobName":"test_sleepyBatchlet",
        "instanceId":6,
        "appName":"SimpleBatchJob#SimpleBatchJob.war",
        "submitter":"bob",
        "batchStatus":"COMPLETED",
        "jobXMLName":"test_sleepyBatchlet",
        "instanceState":"COMPLETED",
        "_links":[
            {
                "rel":"self",
                "href":"https://localhost:9443/ibm/api/batch/jobinstances/6"
            },
            {
                "rel":"job logs",
                "href":"https://localhost:9443/ibm/api/batch/jobinstances/6/joblogs"
            }
        ]
    }
]
GET /ibm/api/batch/jobinstances/Jobinstanz-ID
Dieser URI gibt detaillierte Informationen zur angegebenen Jobinstanz zurück, beispielsweise alle Ausführungen einer angegebenen Jobinstanz. Die Ergebnisse werden in der Reihenfolge vom neuesten zum ältesten Eintrag zurückgegeben. Das neueste Ergebnis wird in der Liste als Erstes angezeigt.
Beispielantwort:
{
    "jobName":"test_sleepyBatchlet",
    "instanceId":7,
    "appName":"SimpleBatchJob#SimpleBatchJob.war",
    "submitter":"bob",
    "batchStatus":"COMPLETED",
    "jobXMLName":"test_sleepyBatchlet",
    "instanceState":"COMPLETED",
    "_links":[
        {
            "rel":"self",
            "href":"https://localhost:9443/ibm/api/batch/jobinstances/7"
        },
        {
            "rel":"job logs",
            "href":"https://localhost:9443/ibm/api/batch/jobinstances/7/joblogs"
        },
        {
            "rel":"job execution",
            "href":"https://localhost:9443/ibm/api/batch/jobinstances/7/jobexecutions/7"
        }
    ]
}
POST /ibm/api/batch/jobinstances/
Verwenden Sie diesen URI, um einen neuen Job abzuschicken (zu starten).
Das folgende Beispiel zeigt den Anforderungshauptteil zum Abschicken eines Jobs, der im JSON-Format in einem WAR-Modul gepackt ist:
{ 
  "applicationName" : "SimpleBatchJob",
  "moduleName" : "SimpleBatchJob.war",
  "jobXMLName" : "test_batchlet_jsl",
  "jobParameters" : { "prop1" : "prop1value", "prop2" : "prop2value"}
}
Das folgende Beispiel zeigt den Anforderungshauptteil zum Abschicken eines Jobs, der im JSON-Format in einem EJB-Modul gepackt ist:
{ 
  "applicationName" : "SimpleBatchJob",
  "moduleName" : "SimpleBatchJobEJB.jar",
  "componentName" : "MyEJB",
  "jobXMLName" : "test_batchlet_jsl",
  "jobParameters" : { "prop1" : "prop1value", "prop2" : "prop2value"}
}

Die Angabe applicationName gibt den Namen der Stapelanwendung an. Diese Angabe ist erforderlich, sofern nicht mit moduleName der Modulname angegeben wird. In diesem Fall würde der Anwendungsname aus dem Modulnamen abgeleitet werden, indem das Suffix .war oder .jar des Modulnamens abgeschnitten wird. Wenn Sie beispielsweise keinen Anwendungsnamen (applicationName) angeben und moduleName=SimpleBatchJob.war festlegen, dann wird als Anwendungsname standardmäßig SimpleBatchJob verwendet.

Der Modulname (moduleName) gibt das Modul in der Stapelanwendung an, in dem die Jobartefakte, z. B. JSL, enthalten sind. Der Job wird unter dem Komponentenkontext des Moduls abgeschickt. Der Modulname (moduleName) muss angegeben werden, sofern nicht der Anwendungsname (applicationName) angegeben wird. In diesem Fall würde der Modulname aus dem Anwendungsnamen abgeleitet werden, indem das Suffix .war an den Anwendungsnamen angehängt wird. Wenn Sie beispielsweise applicationName=SimpleBatchJob festlegen und keinen Modulnamen angeben, wird als Modulname standardmäßig SimpleBatchJob.war verwendet.

Der Komponentenname (componentName) gibt die EJB-Komponente im EJB-Modul der Stapelanwendung an. Wenn er angegeben ist, wird der Job unter dem Komponentenkontext der EJB abgeschickt.
Anmerkung: Der Komponentenname ist nur dann erforderlich, wenn es sich bei dem Modul um ein EJB-Modul handelt. Wenn das Modul ein WAR-Modul ist, ist der Komponentenname nicht erforderlich.

Sie müssen einen Wert für jobXMLName angeben. Der Wert für jobParameters ist optional.

Das folgende Beispiel zeigt eine erfolgreiche Jobübergabe:
{
    "jobName": "test_sleepyBatchlet",
    "instanceId": 10,
    "appName": "SimpleBatchJob#SimpleBatchJob.war",
    "submitter": "bob",
    "batchStatus": "STARTING",
    "jobXMLName": "test_sleepyBatchlet",
    "instanceState": "SUBMITTED",
    "_links": [
        {
            "rel": "self",
            "href": "https://localhost:9443/ibm/api/batch/jobinstances/10"
        },
        {
            "rel": "job logs",
            "href": "https://localhost:9443/ibm/api/batch/jobinstances/10/joblogs"
        }
    ]
}
PUT /ibm/api/batch/jobinstances/Jobinstanz-ID?action=stop
Verwenden Sie diesen URI, um die letzte Jobausführung, die dieser Jobinstanz zugeordnet ist, zu stoppen, falls sie aktiv ist. Wenn Sie nicht aktiv ist, gibt die API einen Fehler zurück.
PUT /ibm/api/batch/jobinstances/Jobinstanz-ID?action=restart
Verwenden Sie diesen URI, um die letzte Jobausführung, die dieser Jobinstanz zugeordnet ist, dann zu stoppen, wenn sich diese im Status STOPPED (Gestoppt) oder FAILED (Fehlgeschlagen) befindet. Wenn dieser Instanz keine Jobausführung zugeordnet ist oder wenn die letzte Jobausführung den Status COMPLETED (Beendet) hat, gibt die API einen Fehler zurück.
PUT /ibm/api/batch/jobinstances/Jobinstanz-ID?action=restart&reusePreviousParams=true
Verwenden Sie diesen URI, um die letzte Jobausführung, die dieser Jobinstanz zugeordnet ist, erneut zu starten und die Jobparameter aus der vorherigen Ausführung wiederzuverwenden. Die vorherige Ausführung muss sich im Status STOPPED (Gestoppt) oder FAILED (Fehlgeschlagen) befinden. Wenn dieser Instanz keine Jobausführung zugeordnet ist oder wenn die letzte Jobausführung den Status COMPLETED (Beendet) hat, gibt die API einen Fehler zurück. Beachten Sie, dass reusePreviousParams eine optionale Einstellung ist. Die Standardeinstellung ist reusePreviousParams=false.
Anmerkung: Wenn reusePreviousParams=true haben die Jobparameter, die als Teil der aktuellen Neustartanforderungen übergeben werden, Vorrang vor den vorher gültigen Jobparametern. Aktuelle Parameter haben Vorrang vor vorherigen Jobparametern mit demselben Schlüsselnamen.
DELETE /ibm/api/batch/jobinstances/Jobinstanz-ID
Verwenden Sie diese URI, um alle Datenbankeinträge und Jobprotokolle zu löschen, die dieser Jobinstanz zugeordnet sind. Diese API gibt einen Fehler zurück, wenn der Jobinstanz aktive Jobausführungen zugeordnet sind. Wenn beim Löschen der Jobprotokolle ein Fehler auftritt, wird nicht versucht, die Jobinstanzdaten aus der Jobspeicherdatenbank zu löschen.
DELETE /ibm/api/batch/jobinstances/Jobinstanz-ID?purgeJobStoreOnly=true
Verwenden Sie diese URI, um nur die Einträge der Jobspeicherdatenbank zu löschen, die dieser Jobinstanz zugeordnet sind. Wenn Sie die Einstellung purgeJobStoreOnly=true verwenden, wird nicht versucht, die Jobprotokolle zu löschen, die dieser Jobinstanz zugeordnet sind. Die Standardeinstellung ist purgeJobStoreOnly=false. Diese API gibt einen Fehler zurück, wenn der Jobinstanz aktive Jobausführungen zugeordnet sind.

Jobausführungen

GET /ibm/api/batch/jobexecutions/Jobausführungs-ID
Dieser URI gibt detaillierte Informationen zu einer angegebenen Jobausführung zurück sowie Links zu zugehörigen Schrittausführungen und Jobprotokollen.
Beispielanforderung:

http://localhost:9443/ibm/api/batch/jobinstances/9/jobexecutions/9

Beispielantwort:
{
    "jobName":"test_sleepyBatchlet",
    "executionId":9,
    "instanceId":9,
    "batchStatus":"COMPLETED",
    "exitStatus":"COMPLETED",
    "createTime":"2015/05/07 16:09:41.025 -0400",
    "endTime":"2015/05/07 16:09:52.127 -0400",
    "lastUpdatedTime":"2015/05/07 16:09:52.127 -0400",
    "startTime":"2015/05/07 16:09:41.327 -0400",
    "jobParameters":{
    },
    "restUrl":"https://localhost:9443/ibm/api/batch",
    "serverId":"localhost/C:/ibm/RAD_workspaces/Liberty7/build.image/wlp/usr/server1",
    "logpath":"C:\\ibm\\Liberty\\wlp\\usr\\servers\\server1\\logs\\joblogs\\test_sleepyBatchlet\\2015-05-07\\instance.9\\execution.9\\",
    "stepExecutions":[
        {
            "stepExecutionId":9,
            "stepName":"step1",
            "batchStatus":"COMPLETED",
            "exitStatus":"SleepyBatchlet:i=10;stopRequested=false",
            "stepExecution":"https://localhost:9443/ibm/api/batch/jobexecutions/9/stepexecutions/step1"
        }
    ],
    "_links":[
        {
            "rel":"self",
            "href":"https://localhost:9443/ibm/api/batch/jobexecutions/9"
        },
        {
            "rel":"job instance",
            "href":"https://localhost:9443/ibm/api/batch/jobinstances/9"
        },
        {
            "rel":"step executions",
            "href":"https://localhost:9443/ibm/api/batch/jobexecutions/9/stepexecutions"
        },
        {
            "rel":"job logs",
            "href":"https://localhost:9443/ibm/api/batch/jobexecutions/9/joblogs"
        },
        {
            "rel":"stop url",
            "href":"https://localhost:9443/ibm/api/batch/jobexecutions/9?action=stop"
        }
    ]
}
GET /ibm/api/batch/jobinstances/Jobausführungs-ID/jobexecutions/Folgenummer der Jobausführung
Dieser URI gibt detaillierte Informationen zu einer angegebenen Jobausführung zurück sowie Links zu zugehörigen Schrittausführungen und Jobprotokollen.
PUT /ibm/api/batch/jobexecutions/Jobausführungs-ID?action=stop
Verwenden Sie diesen URI, um die angegebene aktive Jobausführung zu stoppen. Die erforderlichen Parameter sind "action = stop, restart".
PUT /ibm/api/batch/jobexecutions/Jobausführungs-ID?action=restart
Verwenden Sie diesen URI, um die angegebene aktive Jobausführung erneut zu starten. Die erforderlichen Parameter sind "action = stop, restart".

Schrittausführungen

GET /ibm/api/batch/jobexecutions/Jobausführungs-ID/stepexecutions
Dieser URI gibt ein JSON-Array mit allen Details der Schrittausführung für die angegebene Jobausführung zurück. Wenn Ihr Job einen partitionierten Schritt enthält, werden die Partitionsinformationen in jedem Schritt aufgelistet.
Beispielanforderung:

https://localhost:8020/ibm/api/batch/jobexecutions/40/stepexecutions

Das folgende Beispiel zeigt eine Antwort für einen partitionierten Schritt.
[ 
   { 
      "stepExecutionId":47,
      "executionId":39,
      "instanceId":35,
      "stepName":"step1",
      "batchStatus":"COMPLETED",
      "startTime":"2015/03/30 11:10:08.652 -0400",
      "endTime":"2015/03/30 11:10:09.817 -0400",
      "exitStatus":"COMPLETED",
      "metrics":{ 
         "READ_COUNT":"0",
         "WRITE_COUNT":"0",
         "COMMIT_COUNT":"0",
         "ROLLBACK_COUNT":"0",
         "READ_SKIP_COUNT":"0",
         "PROCESS_SKIP_COUNT":"0",
         "FILTER_COUNT":"0",
         "WRITE_SKIP_COUNT":"0"
      },
      "partitions":[ 
         { 
            "partitionNumber":0,
            "batchStatus":"COMPLETED",
            "startTime":"2015/03/30 11:10:09.579 -0400",
            "endTime":"2015/03/30 11:10:09.706 -0400",
            "exitStatus":"step1",
            "metrics":{ 
               "READ_COUNT":"0",
               "WRITE_COUNT":"0",
               "COMMIT_COUNT":"0",
               "ROLLBACK_COUNT":"0",
               "READ_SKIP_COUNT":"0",
               "PROCESS_SKIP_COUNT":"0",
               "FILTER_COUNT":"0",
               "WRITE_SKIP_COUNT":"0"
            }
         },
         { 
            "partitionNumber":1,
            "batchStatus":"COMPLETED",
            "startTime":"2015/03/30 11:10:09.257 -0400",
            "endTime":"2015/03/30 11:10:09.302 -0400",
            "exitStatus":"step1",
            "metrics":{ 
               "READ_COUNT":"0",
               "WRITE_COUNT":"0",
               "COMMIT_COUNT":"0",
               "ROLLBACK_COUNT":"0",
               "READ_SKIP_COUNT":"0",
               "PROCESS_SKIP_COUNT":"0",
               "FILTER_COUNT":"0",
               "WRITE_SKIP_COUNT":"0"
            }
         },
         { 
            "partitionNumber":2,
            "batchStatus":"COMPLETED",
            "startTime":"2015/03/30 11:10:09.469 -0400",
            "endTime":"2015/03/30 11:10:09.548 -0400",
            "exitStatus":"step1",
            "metrics":{ 
               "READ_COUNT":"0",
               "WRITE_COUNT":"0",
               "COMMIT_COUNT":"0",
               "ROLLBACK_COUNT":"0",
               "READ_SKIP_COUNT":"0",
               "PROCESS_SKIP_COUNT":"0",
               "FILTER_COUNT":"0",
               "WRITE_SKIP_COUNT":"0"
            }
         }
      ]
   },
   { 
      "stepExecutionId":51,
      "executionId":39,
      "instanceId":35,
      "stepName":"step2",
      "batchStatus":"COMPLETED",
      "startTime":"2015/03/30 11:10:09.915 -0400",
      "endTime":"2015/03/30 11:10:10.648 -0400",
      "exitStatus":"COMPLETED",
      "metrics":{ 
         "READ_COUNT":"0",
         "WRITE_COUNT":"0",
         "COMMIT_COUNT":"0",
         "ROLLBACK_COUNT":"0",
         "READ_SKIP_COUNT":"0",
         "PROCESS_SKIP_COUNT":"0",
         "FILTER_COUNT":"0",
         "WRITE_SKIP_COUNT":"0"
      },
      "partitions":[ 
         { 
            "partitionNumber":0,
            "batchStatus":"COMPLETED",
            "startTime":"2015/03/30 11:10:10.324 -0400",
            "endTime":"2015/03/30 11:10:10.417 -0400",
            "exitStatus":"step2",
            "metrics":{ 
               "READ_COUNT":"0",
               "WRITE_COUNT":"0",
               "COMMIT_COUNT":"0",
               "ROLLBACK_COUNT":"0",
               "READ_SKIP_COUNT":"0",
               "PROCESS_SKIP_COUNT":"0",
               "FILTER_COUNT":"0",
               "WRITE_SKIP_COUNT":"0"
            }
         },
         { 
            "partitionNumber":1,
            "batchStatus":"COMPLETED",
            "startTime":"2015/03/30 11:10:10.260 -0400",
            "endTime":"2015/03/30 11:10:10.347 -0400",
            "exitStatus":"step2",
            "metrics":{ 
               "READ_COUNT":"0",
               "WRITE_COUNT":"0",
               "COMMIT_COUNT":"0",
               "ROLLBACK_COUNT":"0",
               "READ_SKIP_COUNT":"0",
               "PROCESS_SKIP_COUNT":"0",
               "FILTER_COUNT":"0",
               "WRITE_SKIP_COUNT":"0"
            }
         },
         { 
            "partitionNumber":2,
            "batchStatus":"COMPLETED",
            "startTime":"2015/03/30 11:10:10.507 -0400",
            "endTime":"2015/03/30 11:10:10.557 -0400",
            "exitStatus":"step2",
            "metrics":{ 
               "READ_COUNT":"0",
               "WRITE_COUNT":"0",
               "COMMIT_COUNT":"0",
               "ROLLBACK_COUNT":"0",
               "READ_SKIP_COUNT":"0",
               "PROCESS_SKIP_COUNT":"0",
               "FILTER_COUNT":"0",
               "WRITE_SKIP_COUNT":"0"
            }
         },
         {
            "_links":[
            {
               "rel":"job execution",
               "href":"https://localhost:9443/ibm/api/batch/jobexecutions/9"
            },
            {
               "rel":"job instance",
               "href":"https://localhost:9443/ibm/api/batch/jobinstances/9"
            }
        ]
    }
] 
GET /ibm/api/batch/jobexecutions/Jobausführungs-ID/stepexecutions/Schrittname
Dieser URI gibt ein JSON-Array mit den Details der Schrittausführung für die angegebene Jobausführung und den angegebenen Schrittnamen zurück.
GET /ibm/api/batch/jobeinstances/Jobinstanz-ID/jobexecutions/Folgenummer der Jobausführung/stepexecutions/Schrittname
Dieser URI gibt ein JSON-Array mit den Details der Schrittausführung für die angegebene Jobinstanz, die angegebene Jobausführung und den angegebenen Schrittnamen zurück.
GET /ibm/api/batch/stepexecutions/Schrittausführungs-ID
Dieser URI gibt ein JSON-Array mit den Details der Schrittausführung für die angegebene Schrittausführung zurück.

Jobprotokolle

GET /ibm/api/batch/jobinstances/Jobinstanz-ID/joblogs
Dieser URI gibt ein JSON-Array mit REST-Links zu allen Jobprotokollabschnitten für die angegebene Jobinstanz zurück.
GET /ibm/api/batch/jobexecutions/Jobausführungs-ID/joblogs
Dieser URI gibt ein JSON-Array mit REST-Links zu allen Jobprotokollabschnitten für die angegebene Jobausführung zurück.
Wichtig: Im folgenden Beispiel sehen Sie das Format der REST-Links.
Wenn Ihre Jobausführung die Jobprotokollabschnitte
joblogs/instance.Instanz-ID/execution.Ausführungs-ID/part.1.log
joblogs/instance.Instanz-ID/execution.Ausführungs-ID/part.2.log
joblogs/instance.Instanz-ID/execution.Ausführungs-ID/step.Schrittname/partition.0/part.1.log
joblogs/instance.Instanz-ID/execution.Ausführungs-ID/step.Schrittname/partition.1/part.1.log
enthält, dann lauten die entsprechenden REST-Links wie folgt:
/ibm/api/batch/jobexecutionsAusführungs-ID/joblogs?part=part.1.log
/ibm/api/batch/jobexecutionsAusführungs-ID/joblogs?part=part.2.log
/ibm/api/batch/jobexecutionsAusführungs-ID/joblogs?part=step.Schrittname/partition.0/part.1.log
/ibm/api/batch/jobexecutionsAusführungs-ID/joblogs?part=step.Schrittname/partition.1/part.1.log
GET /ibm/api/batch/jobexecutions/Jobausführungs-ID/joblogs
Optionale Parameter:
type = text
"Text" gibt alle Jobprotokolle als Klartext zurück. Alle Jobprotokollabschnitte sind zusammengefasst. Kopf- und Fußzeilendatensätze, die die Abschnitte begrenzen, werden in den Datenstrom eingefügt, um die verschiedenen zusammengefassten Abschnitte zu begrenzen. "Type = text" ist die Standardeinstellung.
type = zip
"Zip" gibt alle Jobprotokolle für die angegebene Jobinstanz oder Jobausführung als komprimierte Datei zurück. Die Verzeichnisstruktur der Jobprotokolle wird in der komprimierten Datei beibehalten.
GET /ibm/api/batch/jobexecutions/Jobausführungs-ID/joblogs?part=Pfad zum Abschnitt&type=text|zip
Dieser URI gibt die Jobprotokollabschnitte entweder als Klartext (type=text) oder in einer komprimierten Datei (type=zip) zurück. Die Standardeinstellung ist "type=text".

HTTP-Rückgabecodes

Folgende HTTP-Rückgabecodes werden für die REST-API verwendet:
  • HTTP 200 OK
  • HTTP 201 Eine neue Ressource wurde erfolgreich erstellt.
  • HTTP 202 Eine Anforderung wurde akzeptiert, aber die Verarbeitung ist noch nicht abgeschlossen.
  • HTTP 400 Eine Anforderung ist fehlerhaft und enthält ungültige Parameter. Weitere Details enthält die zurückgegebene Nachricht.
  • HTTP 401 Für den Zugriff auf diese Ressource besteht keine Berechtigung.
  • HTTP 403 Die Authentifizierung ist fehlgeschlagen.
  • HTTP 404 Die angeforderte Ressource wurde nicht gefunden oder existiert nicht.
  • HTTP 409 Die Anforderung steht in Konflikt mit dem aktuellen Status der Ressource. Weitere Details enthält die zurückgegebene Nachricht.
  • HTTP 500 Interner Serverfehler.

STOP-Anforderungen in einer verteilten Serverstapelumgebung

Stoppanforderungen, die an die Stapel-REST-API gesendet werden, müssen direkt an den Executor gesendet werden, in dem der Job ausgeführt wird. Wird eine Stoppanforderung an einen Dispatcher oder einen Executor gesendet, in dem der Job nicht ausgeführt wird, wird die Anforderung mit einer HTTP 302-Umleitungsantwortnachricht an den richtigen Executor umgeleitet. Das Feld location (Position) in der HTTP 302-Umleitungsantwort gibt die richtige URL an, die für die Stoppanforderung verwendet werden muss.

JOBLOGS-Anforderungen in einer verteilten Serverstapelumgebung

Jobprotokollanforderungen, die an die Stapel-REST-API gesendet werden, müssen direkt an den Executor gesendet werden, in dem der Job ausgeführt wird. Wird eine Jobprotokollanforderung an einen Dispatcher oder einen Executor gesendet, in dem der Job nicht ausgeführt wird, wird die Anforderung mit einer HTTP 302-Umleitungsantwortnachricht an den richtigen Executor umgeleitet. Das Feld location (Position) in der HTTP 302-Umleitungsantwort gibt die richtige URL an, die für die Jobprotokollanforderung verwendet werden muss.
Anmerkung: Werden Jobprotokollanforderungen für die gesamte Jobinstanz an die Stapel-REST-API gesendet, sind diese nur dann gültig, wenn alle Jobausführungen für die betreffende Instanz in demselben Executor ausgeführt werden. Wenn die Ausführungen in verschiedenen Executor ausgeführt werden, scheitern die Jobprotokollanforderungen für die Instanz. In diesem Fall müssen Sie die Jobprotokolle für jede Ausführung getrennt abrufen.

Löschanforderungen in einer verteilten Serverstapelumgebung

Löschanforderungen, die an die Stapel-REST-API gesendet werden, müssen direkt an den Executor gesendet werden, in dem der Job ausgeführt wird. Wird eine Löschanforderung an einen Dispatcher oder einen Executor gesendet, in dem der Job nicht ausgeführt wird, wird die Anforderung mit einer HTTP 302-Umleitungsantwortnachricht an den richtigen Executor umgeleitet. Das Feld location (Position) in der HTTP 302-Umleitungsantwort gibt die richtige URL an, die für die Löschanforderung verwendet werden muss.
Anmerkung: Werden Löschanforderungen für die gesamte Jobinstanz an die Stapel-REST-API gesendet, sind diese nur dann gültig, wenn alle Jobausführungen für die betreffende Instanz in demselben Executor ausgeführt werden. Wenn die Ausführungen in verschiedenen Executor ausgeführt werden, scheitern die Löschanforderungen für die Instanz.

Symbol das den Typ des Artikels anzeigt. Referenzartikel

Nutzungsbedingungen für Information Center | Feedback


Symbol für Zeitmarke Letzte Aktualisierung: 25.08.2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=rwlp_batch_rest_api
Dateiname: rwlp_batch_rest_api.html