我正在尝试帮助想要使用应用程序的开发人员解决在Linux上使用Corba Server的问题。我将问题缩小到tnameserv,花费了3分钟以上的时间才能在调用后准备就绪。
那三分钟内tnameserv到底想做什么,无论如何我可以加快速度吗?该应用失败,因为它尝试进行5次连接尝试,重试间隔为1秒;这显然不能给tnameserv足够的时间准备就绪。我在Slackware 13.0上使用Java 6u17
以防万一。 tnameserv的实际调用如下:

tnameserv -ORBInitialPort 23423
在 shell 中运行该命令后,它似乎一直挂着直到3分钟左右,直到我最终看到它显示为“就绪”。
更新
我做了一个strace -f tnameserv -ORBInitialPort 23423,我看到了对gettimeofday(),clock_gettime()和futex()的大量调用,后者总是返回'-1 ETIMEDOUT(连接超时)。我感觉这与我的问题有关,但我不知道如何或为什么。
这只是我从strace看到的一小部分。有人可以复制和/或理解吗?
[pid 30950] futex(0x8128e14,FUTEX_WAIT_PRIVATE,1,{0,49903084})= -1 ETIMEDOUT(连接超时)
[pid 30950] futex(0x8098a28,FUTEX_WAKE_PRIVATE,1)= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329619,995857482})= 0
[pid 30950] gettimeofday({1260930158,92108},NULL)= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329619,995996617})= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329619,996088536})= 0
[pid 30950] gettimeofday({1260930158,92328},NULL)= 0
[pid 30950] clock_gettime(CLOCK_REALTIME,{1260930158,92424295})= 0
[pid 30950] futex(0x8128e14,FUTEX_WAIT_PRIVATE,1,{0,49903705})= -1 ETIMEDOUT(连接超时)
[pid 30950] futex(0x8098a28,FUTEX_WAKE_PRIVATE,1)= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329620,46761098})= 0
[pid 30950] gettimeofday({1260930158,143084},NULL)= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329620,46913924})= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329620,47006961})= 0
[pid 30950] gettimeofday({1260930158,143303},NULL)= 0
[pid 30950] clock_gettime(CLOCK_REALTIME,{1260930158,143398317})= 0
[pid 30950] futex(0x8128e14,FUTEX_WAIT_PRIVATE,1,{0,49904683})= -1 ETIMEDOUT(连接超时)
[pid 30950] futex(0x8098a28,FUTEX_WAKE_PRIVATE,1)= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329620,97818379})= 0
[pid 30950] gettimeofday({1260930158,194127},NULL)= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329620,97957235})= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329620,98049154})= 0
[pid 30950] gettimeofday({1260930158,194346},NULL)= 0
[pid 30950] clock_gettime(CLOCK_REALTIME,{1260930158,194441349})= 0
[pid 30950] futex(0x8128e14,FUTEX_WAIT_PRIVATE,1,{0,49904651})= -1 ETIMEDOUT(连接超时)
[pid 30950] futex(0x8098a28,FUTEX_WAKE_PRIVATE,1)= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329620,148806370})= 0
[pid 30950] gettimeofday({1260930158,245055},NULL)= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329620,148947182})= 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC,{329620,148981547})= 0
[pid 30950] gettimeofday({1260930158,245280},NULL)= 0
[pid 30950] clock_gettime(CLOCK_REALTIME,{1260930158,245374859})= 0
[pid 30950] futex(0x8128e14,FUTEX_WAIT_PRIVATE,1,{0,49905141})= -1 ETIMEDOUT(连接超时)

最佳答案

我使用Google找到了this(今天是LL Zamenhof的生日)。我将打开一些wireshark跟踪,看看您是否能在其中看到任何内容。尽管如果有网络 Activity ,我希望能看到strace中的内容。太糟糕了,它不是开源的。

10-07 14:12