Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Ändern von Methodencode

Wenn der Methodencode die einzige Änderung an dem aktualisierten Ressourcentyp ist, muss festgestellt werden, ob der neue Methodencode mit der vorherigen Version kompatibel ist. Davon hängt ab, ob der neue Methodencode unter einem neuen Pfadnamen abgelegt werden muss oder ob die alten Methoden überschrieben werden können.

Wenn die neuen Stop-, Postnet_stop- und Fini-Methoden (falls deklariert) auf die Ressourcen angewendet werden können, die mit den alten Versionen der Start-, Prenet_stop- oder Init-Methoden initialisiert bzw. gestartet wurden, können die alten Methoden mit den neuen Methoden überschrieben werden.

Wenn der neue Methodencode nicht mit der vorherigen Version kompatibel ist, müssen die Ressourcen, welche die alten Methodenversionen verwenden, gestoppt bzw. dekonfiguriert werden, bevor sie zum aufgerüsteten Ressourcentyp migriert werden können. Wenn die neuen Methoden die alten Methoden überschreiben, müssen möglicherweise alle Ressourcen des Typs heruntergefahren und gegebenenfalls in einen nicht verwalteten Zustand versetzt werden, bevor die Ressourcentypaufrüstung ausgeführt wird. Wenn die neuen Methoden getrennt von den alten Methoden gespeichert werden und auf beide gleichzeitig zugegriffen werden kann, dann ist es auch ohne Abwärtskompatibilität möglich, die neue Ressourcentypversion zu installieren und die Ressourcen nacheinander aufzurüsten.

Auch wenn die neuen Methoden abwärtskompatibel sind, kann es erforderlich sein, jeweils nur eine Ressource für die Verwendung der neuen Methoden aufzurüsten, während die restlichen Ressourcen weiterhin die alten Methoden verwenden. Auch in diesem Fall müssen die neuen Methoden in einem getrennten Verzeichnis gespeichert werden, anstatt die alten Methoden zu überschreiben.

Ein Vorteil beim Speichern der Methoden pro Ressourcentyp in einem eigenen Verzeichnis ist, dass Ressourcen leicht zur älteren Ressourcentypversion zurückgewechselt werden können, wenn mit der neuen Version ein Problem auftritt.

Ein Ansatz für Pakete besteht darin, alle früheren Versionen, die noch unterstützt werden, in das Paket mit aufzunehmen. So kann die neue Paketversion die ältere Version ersetzen, ohne die alten Methodenpfade zu überschreiben oder zu löschen. Der Ressourcentypentwickler muss entscheiden, wie viele frühere Versionen unterstützt werden sollen.


Hinweis –

Es wird davon abgeraten, Methoden oder pkgrm-/pkgadd-Methoden auf einem Knoten zu überschreiben, der sich aktuell im Cluster befindet. Falls RGM eine Methode aufruft, während auf die Methode auf der Platte nicht zugegriffen werden kann, kann dies zu unerwarteten Ergebnissen führen. Auch das Entfernen oder Ersetzen der Binärdatei einer laufenden Methode kann zu unerwarteten Ergebnissen führen.