gpt4 book ai didi

java - Java/WAS 8.5 中关于套接字绑定(bind)的自由配置文件中令人愤怒的 heisenbug

转载 作者:行者123 更新时间:2023-12-04 05:18:40 26 4
gpt4 key购买 nike

我在 Java 6/Websphere 8.5 上遇到套接字绑定(bind)错误(Liberty 配置文件,Websphere 的精简可用版本)。当再次立即杀死并启动应用程序服务器时,我得到:

[ERROR ] CWWKO0221E: TCP Channel defaultHttpEndpoint initialization did not succeed. The socket bind did not succeed for host * and port 9988. The port might already be in use.



这是因为 Java 或 WAS 都没有正确释放 IPv6 套接字。

但是,问题是:当我通过 strace 运行 WLP 时(使用 -f 选项跟踪子进程),绑定(bind)错误 不是 发生。

到底是怎么回事?为什么我不能通过 strace 捕捉到这个? ?

我可以通过指定 soReuseAddress 来解决这个问题,但这里让我担心的是为什么/如何通过 strace 发现这个问题(即不依靠愚蠢的运气)以及为什么它不起作用?

最佳答案

您可能会发现添加 soReuseAddr httpEndpoint 的选项配置有帮助,尤其是在 Linux 平台上。例如,

<httpEndpoint id="defaultHttpEndpoint"
host="*"
httpPort="9080">
<tcpOptions soReuseAddr="true" />
</httpEndpoint>

尽管服务器进行了最佳尝试,但操作系统可能需要一段时间才能释放端口,这对于 Liberty 尤其明显,因为它往往会快速反弹。

关于java - Java/WAS 8.5 中关于套接字绑定(bind)的自由配置文件中令人愤怒的 heisenbug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13934961/

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