Corba事件客户端ETIMEDOUT [英] Corba Event Client ETIMEDOUT

查看:151
本文介绍了Corba事件客户端ETIMEDOUT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经用omniOrb和Python构建了CORBA事件服务客户端.我在Java客户端上遇到了同样的问题.我可以肯定我正在经历与此帖子相同的事情,因为我的strace看起来非常相似,但是他没有确切说明他如何解决它:

I have built a CORBA event service client with omniOrb and Python. I had the same issue with a Java client. I'm very certain I'm experiencing the same thing as this post because my strace looks very similar but he doesn't explain exactly how he fixed it: Java's 'tnameserv' takes 3+ minutes to be "Ready", why?

最重要的是,我的客户端正在启动,但是由于双方的ETIMEDOUT错误,因此从未接收到来自服务器的事件.任何指导,我们将不胜感激!

Bottom line is my client starts up but never receives the events from the server because of the ETIMEDOUT error on both sides. Any guidance is greatly appreciated!

提前谢谢!

编辑

不幸的是,无法更新ip6tables(也没有iptables).

Unfortunately updating ip6tables (nor iptables) didn't work.

看来我可以拥有一个远程呼叫返回数据,但是一旦IT部门想要启动响应(事件),就会引起此问题(请参见下面的日志开头)

It appears that I am able to have a remote call return data, but as soon as IT wants to initiate the response (event), it causes this problem (see the beginning of the log below)

这是我的strace日志...

Here is my log from 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)

推荐答案

我最终弄清楚,由于我所在的子网与服务器不在同一个子网中,因此ORB发布了错误的IP地址,并且无法确定甚至触发时返回我客户的路由.

I ended up figuring out that since I'm on a different subnet than the server, the ORB as publishing the wrong IP address, and couldn't figure out the route back to my client when an even triggered.

我最终更改了/etc/omniORB.cfg中的配置文件,并将"endPointPublish"属性的值更改为服务器子网上的IP地址!

I ended up changing the config file at /etc/omniORB.cfg and changing the value of the "endPointPublish" property to the IP address on the server's subnet!

这篇关于Corba事件客户端ETIMEDOUT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆