Wenn Sie für jeden Container eine eigene Partitionsverteilungsrichtlinie verwenden, können Sie eine SessionHandle-Instanz verwenden. Ein SessionHandle-Objekt enthält Partitionsinformationen für das aktuelle Session-Objekt und kann für ein neues Session-Objekt wiederverwendet werden.
Eine SessionHandle-Objekt enthält Informationen für die Partition, an die das aktuelle Session-Objekt gebunden ist. SessionHandle ist äußerst hilfreich für die containerbezogene Partitionsverteilungsrichtlinie und kann durch Java-Standardserialisierung serialisiert werden.
Wenn Sie ein SessionHandle-Objekt haben, können Sie diese Handle-Instanz mit der Methode "setSessionHandle(SessionHandle target)" auf ein Session-Objekt anwenden, indem Sie die Handle-Instanz als Ziel übergeben. Sie können das SessionHandle-Objekt mit der Methode "Session.getSessionHandle" abrufen.
Da dieses Objekt nur in einem containerbezogenen Verteilungsszenario gültig ist, wird beim Abrufen des SessionHandle-Objekts eine Ausnahme des Typs IllegalStateException ausgelöst, wenn ein bestimmtes Datengrid mehrere containerbezogene MapSets oder keine containerbezogenen MapSets hat. Wenn Sie die Methode setSessionHandle nicht vor der Methode getSessionHandle aufrufen, wird das entsprechende SessionHandle-Objekt auf der Basis der Clienteigenschaftenkonfiguration ausgewählt.
Zum Konvertieren des Handles in verschiedene Format können Sie auch die Helper-Klasse SessionHandleTransformer verwenden. Die Methoden dieser Klasse können die Darstellung einer SessionHandle-Instanz von einer Bytefeldgruppe in eine Instanzzeichenfolge, von einer Zeichenfolge in eine Instanz und jeweils umgekehrt konvertieren und außerdem den Inhalt der SessionHandle-Instanz in den Ausgabedatenstrom schreiben.
Ein Beispiel für die Verwendung eines SessionHandle-Objekts finden Sie unter Routing an bevorzugte Zonen.