gpt4 book ai didi

Java的 'tnameserv' 需要3分钟以上才能成为 "Ready",为什么?

转载 作者:太空狗 更新时间:2023-10-29 11:16:47 24 4
gpt4 key购买 nike

我正在尝试帮助我想使用的应用程序开发人员解决在 Linux 上使用 Corba 服务器的问题。我将问题缩小到 tnameserv 在调用后需要超过 3 分钟才能准备就绪。

在那 3 分钟内,tnameserv 到底想做什么?无论如何我可以加快它的速度吗?该应用程序失败,因为它尝试在重试之间间隔 1 秒进行 5 次连接尝试;这显然没有给 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 (Connection timed out)[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 (Connection timed out)[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 (Connection timed out)[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 (Connection timed out)[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 (Connection timed out)

最佳答案

我找到了 this使用谷歌(LL Zamenhof 的生日 btw)。我会打开一些 wireshark 跟踪,看看你是否能在那里看到任何东西。如果有网络 Activity ,我希望在 strace 中看到一些东西。可惜它不是开源的。

关于Java的 'tnameserv' 需要3分钟以上才能成为 "Ready",为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1911823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com