Blockierende RMI Methode

Status
Nicht offen für weitere Antworten.

SebiB90

Top Contributor
Hi,

ist es möglich eine blockierende RMI Methode zu erstellen?

Ich hab schon folgendes ausprobiert:
Code:
                private Lock lock = new ReentrantLock();
	private Condition condition = lock.newCondition();

	

	private void lock() {
		try {
			lock.lock();
			condition.await();
		} catch (InterruptedException x) {
			x.printStackTrace();
		} finally {
			lock.unlock();
		}
	}

	private void unlock() {
		try {
			lock.lock();
			condition.signal();
		} finally {
			lock.unlock();
		}
	}
mit diesen Methoden blockiere ich bzw hebe diese wieder auf.
Wenn ich jetzt die lock() Methode auf dem Server aufrufe, wird der Thread auch gestoppt und wenn der client eine Methode aufruft, die unlock() aufruft, läuft es weiter.
Jetzt will ich aber folgendes: Der Client soll eine Methode aufrufen, die lock() aufruft und somit die Methode blockiert. Und irgendwann ruft dann der Server unlock() auf damit die Methode beendet und der Client weiter läuft. nur dieses klappt nicht, da das Blockieren nur auf dem Server statt findet und der Client normal weiter läuft.

Daher die Fragen: kann man eine Remote Methode erstellen, die den Client blockiert?

Mfg
SebiB90
 

SebiB90

Top Contributor
Ok, hat sich gelöst.
Die Methode sollte auch nen Rückgabe Wert haben -.-
Dann funktioniert es jedenfalls, da gewartet wird bis es ein return gibt.
 
S

SlaterB

Gast
RMI ist genauso synchron wie normale Java-Aufrufe,
und die hängen ja auch nicht vom Rückgabewert ab..

was passiert, wenn am Ende der Operation eine Exception auftritt und der Aufrufer schon längst woanders ist?
 

SebiB90

Top Contributor
joar stimmt schon...
aber wieso hat es dann nicht geklappt =/
mit Rückgabe funktioniert das. Die Methode wird blockiert und der client wartet solange bis es ein Rückgabe Wert gibt.
Beim anderen läuft der einfach weiter durch. So scheint es jedenfalls =/
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y nicht blockierende einlesen Netzwerkprogrammierung 2
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
D WebSocket send Methode verschickt nichts! Netzwerkprogrammierung 3
J Rückgabewert bei Run()-Methode Netzwerkprogrammierung 9
F getSource Methode wird als Bot erkannt Netzwerkprogrammierung 8
C Socket Identifikation des clients nach der accept() Methode Netzwerkprogrammierung 2
Dit_ RMI RMI-Server und gleichzeitiger Aufruf einer Methode Netzwerkprogrammierung 14
D Client Server Problem, Methode readline() löst SocketException "Connection reset" aus Netzwerkprogrammierung 8
L JavaScript Methode mit Java aufrufen Netzwerkprogrammierung 40
N Per POST -Methode Daten an den Web-Server übertragen. Netzwerkprogrammierung 9
S Probleme beim senden von Daten per POST Methode an PHP Scrip Netzwerkprogrammierung 5
S Daten per GET-Methode Netzwerkprogrammierung 2
A RMI: Wo wird die Methode ausgeführt? Netzwerkprogrammierung 9
A Methode zum ermitteln des DHCP-Servers & DNS-Servers? Netzwerkprogrammierung 8
C RMI: Problem beim Aufruf einer Methode. Falsch gecastet? Netzwerkprogrammierung 8
T finlalize Methode vom Server wird nicht aufgerufen Netzwerkprogrammierung 4
N Server accept-Methode zeitlich begrenzen Netzwerkprogrammierung 2
D beste Methode für Datenübertragung ? Netzwerkprogrammierung 1

Ähnliche Java Themen


Oben