2010-12-11 78 views
0

我已經用omniOrb和Python構建了一個CORBA事件服務客戶端。我與Java客戶端有同樣的問題。我很肯定我遇到了同樣的事情,因爲我的strace看起來非常相似,但他並沒有解釋他是如何修復它的:Java's 'tnameserv' takes 3+ minutes to be "Ready", why?Corba事件客戶端ETIMEDOUT

底線是我的客戶端啓動但從未收到事件來自服務器,因爲兩邊都有ETIMEDOUT錯誤。任何指導,非常感謝!

提前致謝!

編輯

不幸的是更新ip6tables(也iptables的),沒有工作。

看來,我能有一個遠程調用返回的數據,但只要它想發起響應(事件),它會導致此問題(請參見下面的日誌的開頭)

這裏是我的日誌從strace的...

[pid 17571] futex(0xa298288, FUTEX_WAIT_PRIVATE, 1, {4, 999961668} <unfinished ...> 
[pid 17568] <... poll resumed>)  = 1 ([{fd=10, revents=POLLOUT}]) 
[pid 17568] getpeername(10, {sa_family=AF_INET, sin_port=htons(23120), sin_addr=inet_addr("10.10.10.250")}, [16]) = 0 
[pid 17568] fcntl64(10, F_SETFL, O_RDONLY) = 0 
[pid 17568] getsockname(10, {sa_family=AF_INET, sin_port=htons(37741), sin_addr=inet_addr("10.10.10.204")}, [16]) = 0 
[pid 17568] getpeername(10, {sa_family=AF_INET, sin_port=htons(23120), sin_addr=inet_addr("10.10.10.250")}, [16]) = 0 
[pid 17568] fcntl64(10, F_SETFD, FD_CLOEXEC) = 0 
[pid 17568] send(10, "GIOP\1\1\1\0035\0\0\0\2\0\0\0-\0\0\0\24\1\17\0NUP\0\0\0\24\0"..., 65, 0) = 65 
[pid 17568] recv(10, <unfinished ...> 
[pid 17570] <... poll resumed>)  = 0 (Timeout) 
[pid 17570] gettimeofday({1292097412, 746922}, NULL) = 0 
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 0) = 0 (Timeout) 
... 
[pid 17570] gettimeofday({1292097412, 747503}, NULL) = 0 
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 0) = 0 (Timeout) 
[pid 17570] gettimeofday({1292097412, 747544}, NULL) = 0 
[pid 17570] gettimeofday({1292097412, 747563}, NULL) = 0 
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 50 <unfinished ...> 
[pid 17568] <... recv resumed> "GIOP\1\1\0\4\0\0\0\10\0\0\0\2\0\0\0\1", 8192, 0) = 20 
[pid 17568] send(10, "GIOP\1\1\1\0z\0\0\0\1\0\0\0\1\0\0\0\f\0\0\0\1\0\0\0\1\0\1\0"..., 134, 0) = 134 
[pid 17568] recv(10, <unfinished ...> 
[pid 17570] <... poll resumed>)  = 0 (Timeout) 
[pid 17570] gettimeofday({1292097412, 797695}, NULL) = 0 
[pid 17570] gettimeofday({1292097412, 797716}, NULL) = 0 
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 50 <unfinished ...> 
[pid 17568] <... recv resumed> "GIOP\1\1\0\1\0\0\0\330\0\0\0\1\0\0\0\1\0\0\0\f\1\0\0\0\1\0\1\0"..., 8192, 0) = 228 
[pid 17568] write(1, "logged on\n", 10logged on 
) = 10 
[pid 17568] send(10, "GIOP\1\1\1\0u\0\0\0\0\0\0\0\6\0\0\0\1\0\0\0#\0\0\0\24\1\17\0"..., 129, 0) = 129 
[pid 17568] recv(10, <unfinished ...> 
[pid 17570] <... poll resumed>)  = 0 (Timeout) 
[pid 17570] gettimeofday({1292097412, 847848}, NULL) = 0 
[pid 17570] gettimeofday({1292097412, 847868}, NULL) = 0 
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 50 <unfinished ...> 
[pid 17568] <... recv resumed> "GIOP\1\1\0\1\0\0\0\r\0\0\0\0\0\0\0\6\0\0\0\0\1", 8192, 0) = 25 
[pid 17568] send(10, "GIOP\1\1\1\0\t\1\0\0\0\0\0\0\10\0\0\0\1\0\0\0#\0\0\0\24\1\17\0"..., 277, 0) = 277 
[pid 17568] recv(10, <unfinished ...> 
[pid 17570] <... poll resumed>)  = 0 (Timeout) 
[pid 17570] gettimeofday({1292097412, 898007}, NULL) = 0 
[pid 17570] gettimeofday({1292097412, 898028}, NULL) = 0 
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 50 <unfinished ...> 
[pid 17568] <... recv resumed> "GIOP\1\1\0\1\0\0\0\20\0\0\0\0\0\0\0\10\0\0\0\0\0\2I\360", 8192, 0) = 28 
[pid 17568] write(1, "150000\n", 7150000 
)  = 7 
[pid 17568] write(1, "registered\n", 11registered 
) = 11 
[pid 17568] gettimeofday({1292097412, 921865}, NULL) = 0 
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 921888446}) = 0 
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0 
[pid 17568] gettimeofday({1292097412, 921935}, NULL) = 0 
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 921956052}) = 0 
... 
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0 
[pid 17568] gettimeofday({1292097412, 923784}, NULL) = 0 
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 923804532}) = 0 
[pid 17568] futex(0xb7228f48, FUTEX_WAIT_PRIVATE, 65, {0, 581}) = -1 ETIMEDOUT (Connection timed out) 
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0 
[pid 17568] gettimeofday({1292097412, 923933}, NULL) = 0 
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 923953643}) = 0 
[pid 17568] futex(0xb7228f48, FUTEX_WAIT_PRIVATE, 67, {0, 2582}) = -1 ETIMEDOUT (Connection timed out) 
... 
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0 
[pid 17568] gettimeofday({1292097412, 934108}, NULL) = 0 
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 934127651}) = 0 
[pid 17568] futex(0xb7228f48, FUTEX_WAIT_PRIVATE, 135, {0, 573697}) = -1 ETIMEDOUT (Connection timed out) 
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0 
[pid 17568] gettimeofday({1292097412, 934800}, NULL) = 0 
[pid 17570] <... poll resumed>)  = 0 (Timeout) 
[pid 17570] gettimeofday({1292097412, 989071}, NULL) = 0 
[pid 17570] gettimeofday({1292097412, 989093}, NULL) = 0 
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, -1 <unfinished ...> 
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 989133116}) = 0 
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0 
[pid 17568] gettimeofday({1292097412, 989191}, NULL) = 0 
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 989211757}) = 0 
[pid 17568] futex(0xb7228f48, FUTEX_WAIT_PRIVATE, 139, {0, 697194}) = -1 ETIMEDOUT (Connection timed out) 
... 
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0 
[pid 17568] gettimeofday({1292097413, 255954}, NULL) = 0 
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097413, 255977528}) = 0 
[pid 17568] futex(0xb7228f48, FUTEX_WAIT_PRIVATE, 215, {0, 26830986}) = -1 ETIMEDOUT (Connection timed out) 

回答

0

我最終搞清楚,既然我在不同的子修復了這個問題淨比服務器,ORB作爲發佈錯誤的IP地址,並且當甚至觸發時無法找出返回到我的客戶端的路由。

我最終更改了/etc/omniORB.cfg中的配置文件,並將「endPointPublish」屬性的值更改爲服務器子網上的IP地址!

0

我通過添加下面一行到我的防火牆腳本

ip6tables -A INPUT -i lo -j ACCEPT 
+0

不幸的是,沒有幫助。請參閱我的編輯。 – Benny 2010-12-11 20:03:14

+0

進行更改後是否看到ETIMEDOUT消息? – Benny 2010-12-12 08:01:58