Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

RMI: problemy z serwerem działającym pod Linuksem

4 views
Skip to first unread message

genobis

unread,
Feb 9, 2007, 5:00:12 AM2/9/07
to
Witam szanownych grupowiczów,
zetknąłem się z dość poważnym problemem i pomimo dłuższego googlowania
udało mi się go rozwiązać tylko częściowo.

Zacznę od początku:
Klient (uruchomiony na komputerze z systemem Windows XP, java
1.5.0_09, ze swojego pliku konfiguracyjnego zna adres IP serwera) nie
łączył się z serwerem (uruchomionym na Kubuntu 6.10, java 1.5.0_08)
wyrzucając wyjątek

java.rmi.ConnectException: Connection refused to host: 127.0.1.1;
nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)

Jednocześnie, co dosyć dziwne (i co pozwala mi przypuszczać, że sprawa
zależy od konfiguracji systemu) nie było najmniejszego problemu w
drugą stronę - to znaczy, jeśli serwer uruchomiony był na Windows, to
klient uruchomiony na Linuksie łączył się z nim natychmiast.

W pliku /etc/hosts na serwerze znajdował się wpis z 127.0.1.1,
zmieniłem go próbnie na 192.168.0.33 (adres serwera w sieci lokalnej)
i to w pewnym sensie pomogło, bo klient wreszcie łączy się z
serwerem... ale dopiero po minucie. Potem już działa dobrze. Coś jest
ewidentnie nie tak, ale nie udało mi się dojść do źródła problemu. W
sieci wynalazłem

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5092063
http://forum.java.sun.com/thread.jspa?messageID=3458680&#3458680
http://forum.java.sun.com/thread.jspa?forumID=58&tstart=0&threadID=288759&trange=15

jednak nie było tam nic, co by mi dało więcej niż to, do czego sam
doszedłem. Nie wydaje mi się, żeby to był bug opisany w pierwszym
linku, bo miał on zostać poprawiony już w wersji 1.5.0_06. Tym
niemniej, objawy są bardzo podobne.

Dodam jeszcze, że serwer ma działać wyłącznie w sieci lokalnej z
zaledwie kilkoma komputerami, mam też pełne prawa do administrowania
nim.

Czy ktoś zetknął się z tego rodzaju przypadkiem, wie co zrobić w
takiej sytuacji (koszmarnie długiego czasu łączenia się z serwerem)?

Pozdrawiam serdecznie i z góry dziękuję za wszelką pomoc

Fuma K

unread,
Feb 9, 2007, 5:14:56 AM2/9/07
to
genobis napisał(a):

> Witam szanownych grupowiczów,
> zetknąłem się z dość poważnym problemem i pomimo dłuższego googlowania
> udało mi się go rozwiązać tylko częściowo.

hmmm - a nie masz czasem jakiegoś firewal-a podniesionego na tym linuksie ?

Fuma K

Mikolaj Rydzewski

unread,
Feb 9, 2007, 5:18:52 AM2/9/07
to
genobis <gen...@gmail.com> wrote:

> java.rmi.ConnectException: Connection refused to host: 127.0.1.1;
> nested exception is:
> java.net.ConnectException: Connection refused: connect
> at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
> at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
> at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
> at sun.rmi.server.UnicastRef.invoke(Unknown Source)

Uruchom serwer ustawiajac system property java.rmi.server.hostname na
adres IP serwera, czyli:

java -Djava.rmi.server.hostname=<ip_serwera> <reszta opcji>

Oczywiscie przedtem sprawdz czy wogole mozesz sie polaczyc na port RMI z
sieci lokalnej: telnet <ip> 1099.

--
Mikolaj Rydzewski <mi...@ceti.pl> http://ceti.pl/~miki/
PGP KeyID: 8b12ab02
There are three kinds of people: men, women, and unix.

genobis

unread,
Feb 9, 2007, 6:34:17 AM2/9/07
to
> Uruchom serwer ustawiajac system property java.rmi.server.hostname na
> adres IP serwera, czyli:
>
> java -Djava.rmi.server.hostname=<ip_serwera> <reszta opcji>
>
Rzeczywiście, to pomaga w tym sensie, że obywa się bez wpisywania
czegokolwiek na sztywno w /etc/hosts; niestety wciąż mija
kilkadziesiąt sekund, zanim klient po raz pierwszy połączy się z
serwerem.

> Oczywiscie przedtem sprawdz czy wogole mozesz sie polaczyc na port RMI z
> sieci lokalnej: telnet <ip> 1099.
>

Tak, port jest otwarty.


Mikolaj Rydzewski

unread,
Feb 9, 2007, 6:38:50 AM2/9/07
to
genobis <gen...@gmail.com> wrote:
>> Uruchom serwer ustawiajac system property java.rmi.server.hostname na
>> adres IP serwera, czyli:
>>
>> java -Djava.rmi.server.hostname=<ip_serwera> <reszta opcji>
>>
> Rzeczywiście, to pomaga w tym sensie, że obywa się bez wpisywania
> czegokolwiek na sztywno w /etc/hosts; niestety wciąż mija
> kilkadziesiąt sekund, zanim klient po raz pierwszy połączy się z
> serwerem.

A moze po stronie linuxa masz jakas konfiguracje ktora sprawdza adres
drugiej strony w DNS? Dopisz na linuxie do /etc/hosts odpowiedni wpis z
IP klienta.

genobis

unread,
Feb 9, 2007, 6:57:09 AM2/9/07
to
On 9 Lut, 12:38, Mikolaj Rydzewski <m...@ceti.pl> wrote:
> A moze po stronie linuxa masz jakas konfiguracje ktora sprawdza adres
> drugiej strony w DNS? Dopisz na linuxie do /etc/hosts odpowiedni wpis z
> IP klienta.
>
> --
> Mikolaj Rydzewski <m...@ceti.pl> http://ceti.pl/~miki/

> PGP KeyID: 8b12ab02
> There are three kinds of people: men, women, and unix.

Też się nad tym zastanawiałem (w końcu skąd miało by się brać aż takie
opóźnienie, skoro w końcu jednak się uruchamia? ); Niestety, to też
nic nie zmienia :(

Grupa dyskusyjna

unread,
Feb 10, 2007, 2:27:27 AM2/10/07
to
A ja mam takie pytanie do Ciebie: Jak to jest, że klient i serwer stoją na
różnych maszynach (rozumiem, że różne IP) a ty się łączysz klientem z
numerem pętli zwrotnej ( Connection refused to host: 127.0.1.1)?


genobis

unread,
Feb 10, 2007, 5:50:24 AM2/10/07
to

To z powodu wpisu z /etc/hosts :

127.0.0.1 localhost
127.0.1.1 komputer

ale w momencie gdy wprowadziłem tam IP (w sieci lokalnej) serwera, lub
(co było lepszym wyjściem) ustawiam przez -
Djava.rmi.server.hostname=<ip>, ten problem nie występuje i żadne
wyjątki nie są już wyrzucane. Problemem jest, powtórzę, koszmarnie
długi czas łączenia z serwerem - a dokładniej czas działania metody
lookup() z obiektu klasy InitialContext().

Nie udało mi się jednak znaleźć reguły, nie zależy to w każdym razie
od systemu operacyjnego na którym stoi serwer, ani klient. Być może
jest to kwestia konfiguracji któregoś z powyższych (nie wiedzieć
czemu, jeden z klientów, uruchomiony na linuksie, chodzi poprawnie -
ale jak dotąd nie udało mi się odnaleźć reguły).

krzyzan

unread,
Feb 10, 2007, 6:19:02 AM2/10/07
to
Co to jest za adres 127.0.1.1 (czyj to jest adres)? Napisz jeszcze jaki
adres podajesz w Djava.rmi...=<ip>, znaczy konkretne liczby.
0 new messages