Schnittstelle "ObjectGrid"

Mit den folgenden Methoden können Sie mit einer ObjectGrid-Instanz interagieren.

Erstellen und initialisieren

Die erforderlichen Schritte zum Erstellen einer ObjectGrid-Instanz finden Sie im Abschnitt zur Schnittstelle "ObjectGridManager". Es gibt zwei Methoden zum Erstellen einer ObjectGrid-Instanz. Sie können eine ObjectGrid-Instanz programmgesteuert oder über XML-Konfigurationsdateien erstellen. Weitere Informationen finden Sie im Abschnitt Schnittstelle "ObjectGridManager".

Get-, Set- und Factory-Methoden

Alle Set-Methoden müssen vor der Initialisierung der ObjectGrid-Instanz aufgerufen werden. Wenn Sie eine Set-Methode nach dem Aufruf der Methode "initialize" aufrufen, wird eine Ausnahme des Typs "java.lang.IllegalStateException" ausgegeben. Jede getSession-Methode der Schnittstelle "ObjectGrid" ruft implizit auch die Methode "initialize" auf. Deshalb müssen die Set-Methoden vor dem Aufruf der getSession-Methoden aufgerufen werden. Die einzige Ausnahme von dieser Regel sind das Festlegen, Hinzufügen und Entfernen von ObjectGridEventListener-Objekten. Diese Objekte können nach Abschluss des Initialisierungsprozesses verarbeitet werden.

Die ObjectGrid-Schnittstelle enthält die folgenden Hauptmethoden.
Tabelle 1. Schnittstelle "ObjectGrid". Hauptmethoden von ObjectGrid.
Methode Beschreibung

BackingMap defineMap(String name);

defineMap: Diese Methode ist eine Factory-Methode, mit der eine eindeutig benannte BackingMap definiert werden kann. Weitere Informationen zu BackingMaps finden Sie in der Beschreibung der Schnittstelle "BackingMap".

BackingMap getMap(String name);

getMap: Gibt eine BackingMap zurück, die zuvor durch den Aufruf von "defineMap" definiert wurde. Mit dieser Methode können Sie die BackingMap konfigurieren, wenn diese noch nicht durch XML-Konfiguration konfiguriert wurde.

BackingMap createMap(String name);

createMap: Erstellt eine BackingMap, stellt sie aber nicht zur Verwendung durch das ObjectGrid in den Cache. Verwenden Sie diese Methode mit der Methode "setMaps(List)" der Schnittstelle "ObjectGrid", die BackingMaps zur Verwendung mit diesem ObjectGrid zwischenspeichert. Verwenden Sie diese Methoden, wenn Sie ein ObjectGrid mit dem Spring-Framework konfigurieren.

void setMaps(List mapList);

setMaps: Löscht alle BackingMaps, die zuvor in diesem ObjectGrid definiert wurden, und ersetzt sie durch die bereitgestellte Liste mit BackingMaps.

public Session getSession() throws ObjectGridException, TransactionCallbackException;

getSession: Gibt ein Session-Objekt zurück, das begin-, commit- und rollback-Funktionen für eine Arbeitseinheit bereitstellt. Weitere Informationen zu Session-Objekten finden Sie in der Beschreibung der Schnittstelle "Session".

Session getSession(CredentialGenerator cg);

getSession(CredentialGenerator cg): Ruft ein Session-Objekt mit einem CredentialGenerator-Objekt ab. Diese Methode kann nur vom ObjectGrid-Client in einer Client/Server-Umgebung aufgerufen werden.

Session getSession(Subject subject);

getSession(Subject subject): Lässt die Verwendung eines speziellen Subject-Objekts an Stelle des einen in ObjectGrid konfigurierten zu, um ein Session-Objekt abzurufen.

void initialize() throws ObjectGridException;

initialize: Das ObjectGrid wird initialisiert und steht für die allgemeine Verwendung zur Verfügung. Diese Methode wird beim Aufruf der Methode Methode "getSession" implizit aufgerufen, falls das ObjectGrid noch nicht initialisiert ist.

void destroy();

destroy: Das Framework wird zerstört und kann nach dem Aufruf dieser Methode nicht mehr verwendet werden.

void setTxTimeout(int timeout);

setTxTimeout: Verwenden Sie diese Methode, um die Zeit (in Sekunden) festzulegen, in der eine Transaktion, die in einer von dieser ObjectGrid-Instanz erstellten Sitzung gestartet wird, ausgeführt werden muss. Wenn eine Transaktion nicht in der angegebenen Zeit beendet wird, wird die Sitzung, in der die Transaktion gestartet wurde, mit "timed out" (Zeitlimitüberschreitung) markiert. Dies führt dazu, dass die nächste ObjectMap-Methode, die von der Sitzung, die das zulässige Zeitlimit überschritten hat, aufgerufen wird, eine Ausnahme com.ibm.websphere.objectgrid.TransactionTimeoutException auslöst. Die Sitzung wird mit "rollback only" (Nur Rollback) markiert, was dazu führt, dass die Transaktion auch dann rückgängig gemacht wird, wenn die Anwendung die Methode "commit" an Stelle der Methode "rollback" aufruft, nachdem die Ausnahme des Typs "TransactionTimeoutException" von der Anwendung abgefangen wurde. Ein Zeitlimit von 0 zeigt an, dass der Transaktion kein Zeitlimit für die Ausführung gesetzt wird. Die Transaktion überschreitet nie ein Zeitlimit, wenn 0 als Zeitlimitwert angegeben wird. Wenn diese Methode nicht aufgerufen wird, wird für jedes Session-Objekt, das von der Methode "getSession" dieser Schnittstelle zurückgegeben wird, standardmäßig ein Zeitlimitwert von 0 festgelegt. Eine Anwendung kann die Transaktionszeitlimiteinstellung für jedes Session-Objekt überschreiben, indem sie die Methode "setTransactionTimeout" der Schnittstelle "com.ibm.websphere.objectgrid.Session" verwendet.

Sie können das Transaktionszeitlimit für verteilte Instanzen auch mit der Datei objectGrid.xml konfigurieren.

int getTxTimeout();

getTxTimeout: Gibt den Transaktionszeitlimitwert in Sekunden zurück. Diese Methode gibt den Wert zurück, der als Zeitlimitparameter in der Methode "setTxTimeout" übergeben wurde. Wenn die Methode "setTxTimeout" nicht aufgerufen wurde, gibt die Methode "0" zurück, um anzuzeigen, dass für die Transaktion kein Ausführungszeitlimit gesetzt ist.

public int getObjectGridType();

Gibt den Typ des ObjectGrids zurück. Der Rückgabewert ist eine der in dieser Schnittstelle deklarierten Konstanten: LOCAL, SERVER oder CLIENT.

public void registerEntities(Class[] entities);

Registriert eine oder mehreren Entitäten auf der Basis der Metadaten der Klasse. Die Entitätsregistrierung muss vor der ObjectGrid-Initialisierung stattfinden, um eine Entität an eine BackingMap und alle definierten Indizes zu binden. Diese Methode kann mehrfach aufgerufen werden.

public void registerEntities(URL entityXML);

Registriert eine oder mehrere Entitäten über eine XML-Entitätsdatei. Die Entitätsregistrierung muss vor der ObjectGrid-Initialisierung stattfinden, um eine Entität an eine BackingMap und alle definierten Indizes zu binden. Diese Methode kann mehrfach aufgerufen werden.

void setQueryConfig(QueryConfig queryConfig);

Legt das QueryConfig-Objekt für dieses ObjectGrid fest. Ein QueryConfig-Objekt stellt Abfragekonfigurationen für die Ausführung von Objektabfragen für die Maps in diesem ObjectGrid bereit.

 

   

//Sicherheit

void setSecurityEnabled()

setSecurityEnabled: Aktiviert die Sicherheit. Die Sicherheit ist standardmäßig inaktiviert.

void setPermissionCheckPeriod(long period);

setPermissionCheckPeriod: Diese Methode akzeptiert einen einzigen Parameter, der angibt, wie oft die Berechtigung geprüft wird, die verwendet wird, um einen Clientzugriff zuzulassen. Wenn der Parameter 0 ist, weisen alle Methoden den Berechtigungsmechanismus (JAAS-Berechtigung oder angepasste Berechtigung) an, zu prüfen, ob das aktuelle Subject-Objekt berechtigt ist. Diese Strategie kann je nach Berechtigungsimplementierung zu Leistungsproblemen führen. Dieser Typ von Berechtigung ist jedoch verfügbar, wenn es erforderlich ist. Wenn der Parameter einen Wert kleiner als 0 hat, gibt dieser die Anzahl an Millisekunden an, für die eine Gruppe von Berechtigungen zwischengespeichert wird, bevor sie vom Berechtigungsmechanismus aktualisiert wird. Dieser Parameter bietet eine sehr viel bessere Leistung, aber wenn die Back-End-Berechtigungen in dieser Zeit geändert werden, ist es möglich, dass das ObjectGrid den Zugriff zulässt oder verhindert, auch wenn der Back-End-Sicherheitsprovider geändert wurde.

void setAuthorizationMechanism(int authMechanism);

setAuthorizationMechanism: Legt den Berechtigungsmechanismus fest. Die Standardeinstellung ist SecurityConstants.JAAS_AUTHORIZATION.

   

setSubjectSource(SubjectSource ss);

setSubjectSource: Legt das SubjectSource-Plug-in fest. Dieses Plug-in kann verwendet werden, um ein Subject-Objekt abzurufen, das den ObjectGrid-Client darstellt. Dieses Subject-Objekt wird für die ObjectGrid-Berechtigung verwendet. Die Methode "SubjectSource.getSubject" wird von der ObjectGrid-Laufzeitumgebung aufgerufen, wenn die Methode "ObjectGrid.getSession" zum Abrufen einer Sitzung verwendet wird und die Sicherheit aktiviert ist. Dieses Plug-in ist hilfreich für einen bereits authentifizierten Client. Es kann das authentifizierte Subject-Objekt abrufen und anschließend an die ObjectGrid-Instanz übergeben. Eine weitere Authentifizierung ist nicht erforderlich.

setSubjectValidation(SubjectValidation sv);

setSubjectValidation: Legt das SubjectValidation-Plug-in für diese ObjectGrid-Instanz fest. Dieses Plug-in kann verwendet werden, um zu prüfen, ob ein javax.security.auth.Subject-Subject-Objekt, das an die ObjectGrid-Instanz übergeben wird, ein gültiges Subject-Objekt ist, das nicht manipuliert wurde. Für die Implementierung dieses Plug-ins wird die Unterstützung des Subject-Objekterstellers benötigt, da nur der Ersteller weiß, ob das Subject-Objekt manipuliert wurde. Es kann jedoch vorkommen, dass ein Subject-Ersteller nicht weiß, ob das Subject-Objekt manipuliert wurde. In diesem Fall sollte dieses Plug-in nicht verwendet werden.

void setObjectGridAuthorization(ObjectGridAuthorization ogAuthorization);

Legt die ObjectGridAuthorization für diese ObjectGrid-Instanz fest. Bei der Übergabe von null an diese Methode wird ein zuvor definiertes ObjectGridAuthorization-Objekt aus einem früheren Aufruf dieser Methode entfernt. Außerdem wird damit angezeigt, dass dieses <code>ObjectGrid</code> keinem ObjectGridAuthorization-Objekt zugeordnet ist. Diese Methode sollte nur verwendet werden, wenn die ObjectGrid-Sicherheit aktiviert ist. Wenn die ObjectGrid-Sicherheit inaktiviert ist, wird das bereitgestellte ObjectGridAuthorization-Objekt nicht verwendet. Ein ObjectGridAuthorization-Plug-in kann verwendet werden, um den Zugriff auf das ObjectGrid und die Maps zu berechtigen.

Schnittstelle "ObjectGrid": Plug-ins

Die Schnittstelle "ObjectGrid" hat mehrere optionale Plug-in-Punkte für erweiterbare Interaktionen.

void addEventListener(ObjectGridEventListener cb);
void setEventListeners(List cbList);
void removeEventListener(ObjectGridEventListener cb);
void setTransactionCallback(TransactionCallback callback);
int reserveSlot(String);
// Sicherheitsbezogene Plug-ins
void setSubjectValidation(SubjectValidation subjectValidation);
void setSubjectSource(SubjectSource source);
  • ObjectGridEventListener: Eine ObjectGridEventListener-Schnittstelle wird verwendet, um Benachrichtigungen über wichtige Ereignisse zu empfangen, die im ObjectGrid eintreten. Zu diesen Ereignissen gehören die Initialisierung von ObjectGrid, der Beginn einer Transaktion, das Ende einer Transaktion und das Löschen eines ObjectGrids. Um diese Ereignisse zu empfangen, erstellen Sie eine Klasse, die die Schnittstelle "ObjectGridEventListener" implementiert, und fügen Sie sie dem ObjectGrid hinzu. Diese Listener werden jedem einzelnen Session-Objekt zugeordnet. Weitere Informationen finden Sie in der Beschreibung von Listenern und in der Beschreibung der Schnittstelle "Session".
  • TransactionCallback: Eine TransactionCallback-Listener-Schnittstelle ermöglicht das Senden von Transaktionsereignissen, wie z. B. begin-, commit- und rollback-Signalen, an diese Schnittstelle. Gewöhnlich wird eine TransactionCallback-Listener-Schnittstelle zusammen mit einem Loader verwendet. Weitere Informationen finden Sie in der Beschreibung des TransactionCallback-Plug-ins und der Beschreibung von Loadern. Diese Ereignisse können anschließend verwendet werden, um Transaktionen mit einer externen Ressource oder in mehreren Loadern zu koordinieren.
  • reserveSlot: Ermöglicht Plug-ins in diesem ObjectGrid, Slots für Objektinstanzen zu reservieren, die Slots haben, wie z. B. TxID.
  • SubjectValidation. Wenn die Sicherheit aktiviert ist, kann dieses Plug-in verwendet werden, um eine javax.security.auth.Subject-Klasse zu validieren, die an das ObjectGrid übergeben wird.
  • SubjectSource: Wenn die Sicherheit aktiviert ist, kann dieses Plug-in verwendet werden, um ein Subject-Objekt abzurufen, das ObjectGrid-Client darstellt. Dieses Subject-Objekt wird anschließend für die ObjectGrid-Berechtigung verwendet.

Weitere Informationen zu Plug-ins finden Sie in Übersicht über Plug-ins.