|
|
|
Linux RMI registry lookup слишком долгий отклик
|
|||
|---|---|---|---|
|
#18+
Подскажите может кто-то сталкивался: 1. Сервер на Linux (дистрибутив Ubuntu 8.04 или SuSe 11 ES) RMI запущен так public static void start() throws RemoteException, MalformedURLException, UnknownHostException{ System.setProperty("java.rmi.server.codebase","file:/" + APISConstants.PATH_HOME + APISConstants.PATH_LIB + "/"); if (System.getSecurityManager() == null) System.setSecurityManager(new RMISecurityManager()); APISConstants.RMI_HOST = APISUtils.getStrIP(); System.setProperty("java.rmi.server.hostname", APISConstants.RMI_HOST); System.setProperty("java.rmi.server.logCalls", "true"); APISLog log = new APISLog(APISConstants.APPLICATION); try{ registry = new APISImplRegistry(APISConstants.RMI_PORT); log.info(String.format("RMI registry obtained on %s:%d",APISConstants.RMI_HOST,APISConstants.RMI_PORT)); APISServer apis = new APISImplServer(); registry.bind(APISConstants.RMI_NAME, apis); }catch(Exception e){ log.fatal(e); System.exit(1); } } Своя реализация APISImplRegistry (с правом встраивать обекты из других машин) всё остальное стандартное метод lookup APISImplRegistry: public Remote lookup(String name) throws RemoteException, NotBoundException { synchronized (bindings) { Remote obj = (Remote) bindings.get(name); if (obj == null) throw new NotBoundException(name); return obj; } } 2. Вызов на клиенте APISServer apis = (APISServer)APISUtils.lookup(String.format("rmi://%s:%d/%s", APISConstants.RMI_HOST, APISConstants.RMI_PORT, APISConstants.RMI_NAME)); 3. Собственно проблема: в той же сети win<->win работает отлично win<->linux (сервер Linux) отклик ровно 50 сек. может какие-то настройки RMI подскажите кто сталкивался и решил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2012, 17:44:23 |
|
||
|
Linux RMI registry lookup слишком долгий отклик
|
|||
|---|---|---|---|
|
#18+
Может он на прямую не может законнектится и поэтому начинает срабатывать туннелирование? http://www.cs.swan.ac.uk/~csneal/InternetComputing/Tunnelling.html Где-то в официальной доке тоже есть. Надо поискать. RMI пытается законектится через свой порт напрямую. Если соединение не доступно (а оно например 30 секунд тупит и потом отваливается по таймауту), то RMI пробует другой способ. Отсюда задержка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2012, 18:04:21 |
|
||
|
Linux RMI registry lookup слишком долгий отклик
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Клиент находит сервер очень быстро (см. лог) а вот сервер клиента что бы ответить ровно 50 сек. То есть ответ где то ждёт. STATUS | wrapper | 2012/03/26 11:32:29 | Launching a JVM... INFO | jvm 1 | 2012/03/26 11:32:30 | WrapperManager: Initializing... INFO | jvm 1 | 2012/03/26 11:32:30 | [INFO] apis - RMI registry obtained on 192.168.1.2:1098 INFO | jvm 1 | 2012/03/26 11:32:53 | 26 бер 2012 11:32:53 sun.rmi.server.UnicastServerRef logCall INFO | jvm 1 | 2012/03/26 11:32:53 | FINER: RMI TCP Connection(1)-192.168.1.71: [192.168.1.71: apis.APISImplRegistry[0:0:0, 0]: public abstract java.rmi.Remote java.rmi.registry.Registry.lookup(java.lang.String) throws java.rmi.RemoteException,java.rmi.NotBoundException,java.rmi.AccessException] INFO | jvm 1 | 2012/03/26 11:32:53 | lookup started: Mon Mar 26 11:32:53 EEST 2012 INFO | jvm 1 | 2012/03/26 11:32:53 | lookup finished: Mon Mar 26 11:32:53 EEST 2012 INFO | jvm 1 | 2012/03/26 11:33:43 | 26 бер 2012 11:33:43 sun.rmi.server.UnicastServerRef logCall INFO | jvm 1 | 2012/03/26 11:33:43 | FINER: RMI TCP Connection(2)-192.168.1.71: [192.168.1.71: sun.rmi.transport.DGCImpl[0:0:0, 2]: java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease)] INFO | jvm 1 | 2012/03/26 11:33:43 | 26 бер 2012 11:33:43 sun.rmi.server.UnicastServerRef logCall INFO | jvm 1 | 2012/03/26 11:33:43 | FINER: RMI TCP Connection(2)-192.168.1.71: [192.168.1.71: apis.APISImplServer[-6396300d:1364e22920b:-7fff, 6902898549710500761]: public abstract java.lang.String[] apis.rmi.APISServer.libs() throws java.rmi.RemoteException] INFO | jvm 1 | 2012/03/26 11:33:43 | 26 бер 2012 11:33:43 sun.rmi.server.UnicastServerRef logCall INFO | jvm 1 | 2012/03/26 11:33:43 | FINER: RMI TCP Connection(2)-192.168.1.71: [192.168.1.71: apis.APISImplServer[-6396300d:1364e22920b:-7fff, 6902898549710500761]: public abstract apis.rmi.APISSession apis.rmi.APISServer.session(apis.rmi.APISClient) throws java.rmi.RemoteException] INFO | jvm 1 | 2012/03/26 11:33:44 | [INFO] mpp - Session opened: apis.mpp.f9b1c0abd8:o.vedernikov@192.168.1.71 INFO | jvm 1 | 2012/03/26 11:33:44 | 26 бер 2012 11:33:44 sun.rmi.server.UnicastServerRef logCall INFO | jvm 1 | 2012/03/26 11:33:44 | FINER: RMI TCP Connection(2)-192.168.1.71: [192.168.1.71: sun.rmi.transport.DGCImpl[0:0:0, 2]: java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease)] INFO | jvm 1 | 2012/03/26 11:33:44 | 26 бер 2012 11:33:44 sun.rmi.server.UnicastServerRef logCall INFO | jvm 1 | 2012/03/26 11:33:44 | FINER: RMI TCP Connection(2)-192.168.1.71: [192.168.1.71: apis.APISImplSession[-6396300d:1364e22920b:-7ffa, -8386257324399966464]: public abstract apis.APISConfig apis.rmi.APISSession.config() throws java.rmi.RemoteException] INFO | jvm 1 | 2012/03/26 11:33:44 | 26 бер 2012 11:33:44 sun.rmi.server.UnicastServerRef logCall Что значит: Connection(1)-192.168.1.71 (192.168.1.71 это клиент) а потом все вызовы Connection(2)-192.168.1.71 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2012, 18:17:02 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=300&tid=2132215]: |
0ms |
get settings: |
21ms |
get forum list: |
35ms |
check forum access: |
11ms |
check topic access: |
11ms |
track hit: |
76ms |
get topic data: |
38ms |
get forum data: |
10ms |
get page messages: |
98ms |
get tp. blocked users: |
3ms |
| others: | 402ms |
| total: | 705ms |

| 0 / 0 |
