您的 wsadmin 可能由于 DNS 问题连接了那么长时间。理想情况下,您应该解决根 (DNS) 问题,但作为一种解决方法,您可以尝试以下方法。
将以下 Jython 脚本另存为 set_dns_props.py:
for jvm in AdminConfig.list('JavaVirtualMachine').splitlines():
AdminConfig.create('Property', jvm, [ ['name', 'networkaddress.cache.negative.ttl'], ['value', '600'] ])
AdminConfig.create('Property', jvm, [ ['name', 'java.net.preferIPv4Stack'], ['value', 'true'] ])
AdminConfig.create('Property', jvm, [ ['name', 'networkaddress.cache.ttl'], ['value', '-1'] ])
AdminConfig.create('Property', jvm, [ ['name', 'com.ibm.cacheLocalHost'], ['value', 'true'] ])
AdminConfig.save()
然后使用以下命令启动您的 wsadmin:
./wsadmin.sh -lang jython -f set_dns_props.py -user USERNAME - password PASSWORD -host LOCALHOST -port 9999 -javaoption -Djava.net.preferIPv4Stack=true -javaoption -Dnetworkaddress.cache.negative.ttl=600 -javaoption -Dnetworkaddress.cache.ttl=-1 -Dcom.ibm.cacheLocalHost=true
然后登录到 AdminConsole,确保所有节点都同步(假设 WAS ND),最后重新启动所有服务器、节点代理和部署管理器。
之后,始终使用此语法来启动您的 wsadmin 会话:
./wsadmin.sh -lang jython -user USERNAME - password PASSWORD -host LOCALHOST -port 9999 -javaoption -Djava.net.preferIPv4Stack=true -javaoption -Dnetworkaddress.cache.negative.ttl=600 -javaoption -Dnetworkaddress.cache.ttl=-1 -Dcom.ibm.cacheLocalHost=true
上述技巧为服务器和客户端 JVM 配置了一些与 DNS 和 TCP/IP 相关的属性。
仅当您知道自己在做什么时才使用 -conntype NONE 选项:
- 本质上:如果您的服务器在您的 wsadmin 会话期间停止并且您只使用配置和应用程序,您将获得最佳价值。使用 -conntype NONE 让您有机会在第一次启动服务器之前应用一些配置。在设置新环境时非常有用。
- 您不能使用 -conntype NONE 访问 WAS 运行时。
- 如果您的服务器是在这样的 wsadmin (-conntype NONE) 会话期间启动的,那么在不重新启动服务器的情况下,对 WAS 配置所做的更改不太可能反映。服务器只是不知道配置文件正在被修改。