Beenden eines Auftrags aus dem Java-CodeDataStage)

Sie können ein Ausnahmeklassenobjekt oder ein ConnectorException-Klassenobjekt auslösen oder die Methode 'Logger.fatal()' aufrufen, um einen Job zu stoppen, bevor er natürlich beendet wird.

Auslösen eines Objekts der Klasse Exception

Sie können die Klasse Exception (java.lang.Exception) oder deren Unterklassenobjekt aus Ihrer Prozessor-Implementierung verwenden, um einen Auftrag anzuhalten.

Das folgende Beispiel zeigt Java™-Code, der eine einfache Berechnung durchführt, um einen Preis zu ermitteln. Ist der auf ' count gesetzte Wert Null, löst der Java-Code die ' java.lang.ArithmeticException -Ausnahme aus und protokolliert die Meldung:Divide by zero.

public void process() throws Exception
{
   int count = 0;
   int total = 1000;
   …
   int price = total / count;
}

Der Java-Code kann auch ein ' ArithmeticException mit einer von Ihnen angegebenen Nachricht erstellen und es werfen, um einen Auftrag zu beenden.

public void process() throws Exception
{
   …
   if (result < 0)
   {
      throw new ArithmeticException("An exception occurred. result=" + result);
   }
}

Auslösen eines Objekts der Klasse ConnectorException

Sie können das Klassenobjekt 'ConnectorException (com.ibm.is.cc.javastage.api.ConnectorException)' aus der Prozessorimplementierung verwenden, um einen aktiven Job anzuhalten oder um eine Operation zur Entwurfszeit mit einer Nachricht zu beenden.

Verwenden Sie die Klasse ConnectorException, um Nachrichten zu protokollieren, die die Stack-Trace-Informationen nicht enthalten, und um diesen Nachrichten auch Nachrichten-IDs zuzuordnen.

Im folgenden Beispiel konstruiert der Java-Code ein ' ConnectorException und wirft es aus, nachdem er die Methode Logger.setComponentID() aufgerufen hat. Das Connector-Framework fängt die Ausnahme ab und protokolliert die FehlermeldungAn exception occurred. result=-1und stoppt den Auftrag. Die Nachrichten-ID lautet IIS-CONN-MYCONN-00999.

public class MyConnector extends Processor
{
   public MyConnector()
   {
     super();
     Logger.setComponentID(“MYCONN”);
   } 


   public void process() throws Exception
   {
      …
      if (result < 0)
      {
         throw new ConnectorException(999, " An exception occurred. result=" + result);
      }
   }
   …
}

Methode Logger.fatal() aufrufen

Sie können einen Job beenden, indem Sie die Methode 'com.ibm.is.cc.javastage.api.Logger.fatal()' von Ihrer Prozessorimplementierung aus aufrufen.

Wenn Java-Code die Methode Logger.fatal() aufruft, gibt der Auftrag die Kontrolle nicht an den Java-Code zurück. Die Methode Processor.terminate(), mit der der Job gestoppt wird, kann nicht aufgerufen werden. Dies kann zu einem Problem beim Neustart des Jobs führen.

Wenn Ihr Java-Code einen Abbruchprozess erfordert, verwenden Sie das ' ConnectorException oder ein beliebiges anderes Exception-Objekt, da die Methode Processor.terminate() mit dem auf true gesetzten Argument ' isAborted aufgerufen wird.

Das folgende Beispiel zeigt, wie Java-Code die Methode Logger.fatal() aufruft. Der Auftrag endet und die NachrichtMy job terminates abnormallywird im Auftragsprotokoll mit der Nachrichten-ID IIS-CONN-JAVA-00015 protokolliert.

Logger.fatal("My job terminates abnormally.");