Systemprogrammierschnittstellen des Job-Schedulers
Mithilfe von Systemprogrammierschnittstellen (System Programming Interface, SPI) können Sie eine Liste von Gruppen verwalten, denen ein Benutzer zugeordnet ist, Benutzeraktionen für Jobs steuern, das Schreiben von Protokollzeilen unterdrücken und eine installationsspezifische Validierungsregel für die Prüfzeichenfolge festlegen.
SPI-Eigenschaftendatei
Die SPI-Klasse kann $WAS_HOME/lib/classes oder der gemeinsam genutzten Bibliothek des Job-Schedulers hinzugefügt werden. Verwenden Sie das wsadmin-Script configCGSharedLib.py, um die gemeinsam genutzte Bibliothek dem Job-Scheduler zuzuordnen.
Eigenschaftendatei | Attribut |
---|---|
Name | xd.spi.properties |
Position | Anwendungsserverstammverzeichnis/properties |
Format | <SPI-Name>=<SPI-Implementierungsklasse> |
SPI für Gruppenzugehörigkeitsfilter
- Sie können die SPI verwenden, um die Liste der Gruppen zu ändern, die vom eingebundenen Repository zurückgegeben werden.
- Sie können die SPI als Alternative zum eingebundenen Repository verwenden. In diesem Fall ist die SPI die Quelle für die Benutzer- und Gruppenzugehörigkeitsinformationen, die die Stapelkomponente verwendet.
Die SPI wird jedesmal aufgerufen wenn sich ein Benutzer an der Jobverwaltungskonsole anmeldet, und jedesmal, wenn eine Joboperation ausgeführt wird.
Name |
---|
group.membership.manager |
SPI für Jobprotokollfilter
Verwenden Sie die SPI für Jobprotokollfilter, um das Schreiben von Protokollzeilen in Protokolle durch Stapelanwendungen zu unterdrücken. Sie können das Schreiben der Protokollzeilen in die Serverprotokolle und/oder Jobprotokolle unterdrücken. Außerdem können Sie die Anwendungsprotokollzeile überschreiben.
Implementieren Sie die Schnittstelle "com.ibm.wsspi.batch.joblog.JobLogFilter", indem Sie die Methoden "getName()" und "processJobLogLine()" implementieren. Die Methode "getName()" ist für alle SPI-Implementierungen erforderlich. Die Methode "processJobLogLine()" gibt ein JobLogAction-Objekt zurück, um das Schreiben der Jobprotokollzeile zu unterdrücken. Sie können die Anwendungsprotokollzeile mit dem JobLogFilterListener-Objekt überschreiben. Rufen Sie das JobLogFilterListener-Objekt mit der aktualisierten bzw. ersetzten Protokollzeile und der Job-ID auf, die basierend auf dem bereitgestellten JobLogAction-Objekt in die Protokolldateien geschrieben werden würden.
Name |
---|
spi.job.log.filter |
Beispiel für die SPI für Jobprotokollfilter
package com.ibm.websphere.samples;
import com.ibm.websphere.grid.spi.SPI;
import com.ibm.wsspi.batch.joblog.JobLogFilter;
import com.ibm.wsspi.batch.joblog.JobLogFilterListener;
public class SampleJobLogFilter extends SPI implements JobLogFilter {
/**
* Eingabe:
* jobid
* logline - Zu protokollierende Zeile
* JobLogFilterListener - Callback zum Überschreiben der Protokollzeile
* Ausgabe:
* JobLogAction:
* SUPPRESS - Diese Zeile nicht protokollieren
* JOBLOGONLY - Nur im Jobprotokoll protokollieren (nicht im Serverprotokoll)
* SERVERLOGONLY - Nur im Serverprotokoll protokollieren (nicht im Jobprotokoll)
* JOBLOGSERVERLOG - Im Jobprotokoll und im Serverprotokoll protokollieren
* (Standardaktion)
*/
public JobLogAction processJobLogLine(
String jobid,
String logline,
JobLogFilterListener filterListener) {
filterListener.setLogLine(jobid, "MyCompanyName:" + logline);
return JobLogAction.JOBLOGONLY;
}
/**
* Erforderlich für alle Stapel-SPI-Implementierungen
**/
public String getName() {
return SimpleCIJobLogFilter.class.getName();
}
}
Die Methode "processJobLogLine()" gibt ein JobLogAction-Objekt zurück, um das Schreiben von Anwendungsprotokollzeilen in die Systemprotokolle zu unterdrücken. Der Aufruf des JobLogFilterListener-Objekts bewirkt, dass den Jobprotokollzeilen ein Standardtext angefügt wird.
spi.job.log.filter=com.ibm.websphere.ci.samples.SimpleCIJobLogFilter
Stellen Sie sicher,
dass die Implementierungsklasse dem Server in einer gemeinsam genutzten Bibliothek auf Serverebene
zur Verfügung steht.SPI für Berechtigung von Joboperationen
Die SPI für die Berechtigung von Joboperationen bietet Administratoren eine weitergehende Steuerung von Benutzeraktionen für Jobs. Sie können die Zugriffssteuerung für jede Benutzeraktion differenziert vornehmen, indem Sie die Operationen einzeln zulassen oder verweigern.
Rufen Sie die SPI erst nach der Anwendung der konfigurierten Jobsicherheitsrichtlinie auf. Die SPI wird nur aufgerufen, wenn der Benutzer berechtigt ist, die Operation auszuführen. Die SPI kann das System überschreiben, wenn das System die Operation zulässt. Wenn das System die Operation verweigert, kann die SPI das System nicht überschreiben. Deshalb dient die SPI "JobOperationAuthorizer" nur dazu, den Bereich der Operationen zu beschränken, die ein Benutzer ausführen darf. Die SPI ist nicht in der Lage, den Bereich der Operationen zu erweitern, die ein Benutzer ausführen darf.
Name |
---|
job.operation.authorizer |
SPI für Validierung der Prüfzeichenfolge
Sie können die SPI für die Validierung der Prüfzeichenfolge verwenden, um eine installationsspezifische Validierungsregel für die Prüfzeichenfolge festzulegen. Mithilfe der Validierungsregel können Sie lokale Prüfanforderungen umsetzen und angepasste Fehlernachrichten festlegen, die den Benutzer durch eine erfolgreiche Speicherung führen.
Wenn AuditStringValidator konfiguriert und installiert ist, wird es jedesmal aufgerufen, wenn ein Repository-Job über eine der verfügbaren Schnittstellen gespeichert wird, zu denen die Jobverwaltungskonsole, die Befehlszeilenschnittstelle oder eine API gehören.
AuditStringValidator wird ausgeführt und übergibt den Namen des Repository-Jobs, des aktuellen Benutzers, der xJCL, den Wert der Prüfzeichenfolge und die Methode "AuditStringValidatorCallBack". Daraufhin kann AuditStringValidator entscheiden, ob die Prüfzeichenfolge gültig ist oder nicht. Wenn die Prüfzeichenfolge gültig ist, gibt AuditStringValidator den Wert true zurück. Ist die Prüfzeichenfolge nicht gültig, gibt AuditStringValidator den Wert false zurück. Wenn AuditStringValidator "false" zurückgibt, können Sie mit der Methode "AuditStringValidatorCallBack" Text für eine Fehlernachricht angeben.
Name |
---|
audit.string.validator |