next up previous contents
Next: 6.4 Implementierung des Basisagenten Up: 6.3.3 Klasse Migrate Previous: Methode mobileAgentWantToMigrate(...)

Methode getMigrateInfo()

Der AgentManager, hat entweder in der Zeile 4 gewartet, oder er ruft die Methode getMigrateInfo() gerade auf und da _migrateAgent den Wert 'true' hat, wird in beiden Fällen in Zeile 8 mit der Abarbeitung fortgefahren:
 1  protected synchronized MigrateInfo getMigrateInfo() {
 2    while (_migrateAgent == false) {
 3      try {
 4        wait();// wait till a MobileAgent set MigrateInfo
 5      } 
 6      catch (InterruptedException e) {}
 7    }
 8    return _migrateInfo;
 9  }

Nun ruft der AgentManager die oben beschriebene Methode migrateAgent(...) auf (vgl. Unterabschnitt 6.3.2) und migriert den Agenten. Mit den Methode setCouldMigrate(...):

 1  protected synchronized static void 
 2  setCouldMigrate(boolean couldMigrate){
 3    _couldMigrate= couldMigrate;
 4    _migrateAgent = false;
 5  }
wird angezeigt, ob die Migration erfolgreich war und mit der Methode notifyAgent():
 1  protected synchronized void notifyAgent(){
 2    notify();
 3  }
wird schließlich der Monitor in der Methode mobileAgentWantToMigrate(...) wieder freigeben (Zeile 16), so daß ein neuer MobileAgent in die Methode eintreten kann.

MobileAgent in der Methode mobileAgentWantToMigrate(...) aus dem wait() in Zeile 16 unterbrochen.

Die Migration ist vollständig abgeschlossen.



Copyright Munich Network Management Team