java rmi wait and notify

Alles rund um die Software-Entwicklung: Programme, Skripte, Projekte etc.
Antworten
Chu
Fleet Captain
Beiträge: 1396
Registriert: 18.10.2004, 17:24

java rmi wait and notify

Ungelesener Beitrag von Chu » 08.12.2012, 22:24

Hi,

ich schreibe gerade eine Verteile Anwendung. Meine Worker Threads laufen irgendwann in folgendes Konstrukt:

Code: Alles auswählen

synchronized (this) {
wait();
}
das kalppt auch und alle legen sich "schlafen".

Jetzt möchte ich sie von meinem "Controller" (Zentrale instanz in dem ganzen) wieder aufwecken.

Code: Alles auswählen

for (IWork iworker: currentWorkerCollection) {
	iPhilosopher.notifyAll();
}
Mir wirft java nur jedesmal eine java.lang.IllegalMonitorStateException. Ist das Monitor Objekt (das tatsächliche Worker-Objekt) nicht gleich dem Stub auf dem ich arbeite?

Sonst klappt alles, nur das wait notify will nicht. (Also alle anderen RMI-Methoden funktionieren, sowie die Collection über die ich iteriere)

Jemand eine Idee? Bzw. wenn es nicht die gleichen Objekte sind, wie setzt man dann wait() und notfiy() über RMI um?

danke

chu
Zuletzt geändert von Chu am 08.12.2012, 22:25, insgesamt 1-mal geändert.
listen to my ill words of wisdom

Benutzeravatar
fassy
Vice Admiral
Turtleboard Veteran
Turtleboard Veteran
Beiträge: 5855
Registriert: 26.01.2004, 20:44
Wohnort: Hamburg

Re: java rmi wait and notify

Ungelesener Beitrag von fassy » 10.12.2012, 00:11

wait(), notify() und notifyAll() funktioniert nur in der gleichen JVM. Für RMI musst du da alternative Konzepte nutzen, z.B. http://java.sys-con.com/node/46979 oder http://www.itec.uni-klu.ac.at/~harald/d ... tern2.html
Pick up the hammer... pick it up.

Chu
Fleet Captain
Beiträge: 1396
Registriert: 18.10.2004, 17:24

Re: java rmi wait and notify

Ungelesener Beitrag von Chu » 10.12.2012, 17:58

hab ich mitlerweile auch herausgefunden.

danke für die antwort.
listen to my ill words of wisdom

Antworten