【问题标题】:WLST connection to admin port always fails on first attemptWLST 连接到管理端口总是在第一次尝试时失败
【发布时间】:2014-10-07 11:15:19
【问题描述】:

在我们的公共测试环境中,第一次连接 WLST 的尝试总是失败。然后第二次尝试总是有效并建立连接。我无法使用谷歌找到任何类似的东西,所以我希望这里有人可以提供帮助。

在我第一次尝试时;

<Oct 7, 2014 1:49:03 PM EEST> <Info> <Security> <BEA-090905> <Disabling CryptoJ JCE Provider self-integrity check for better startup performance. To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true>
<Oct 7, 2014 1:49:03 PM EEST> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG to FIPS186PRNG. To disable this change, specify -Dweblogic.security.allowCryptoJDefaultPRNG=true>
Traceback (innermost last):
File "<console>", line 1, in ?
File "<iostream>", line 22, in connect
File "<iostream>", line 653, in raiseWLSTException
WLSTException: Error occured while performing connect : Error getting the initial context. There is no server running at t3s://xxx.xxx.xxx.xxx:nnnn

dumpStack() 显示如下;

javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://xxx.xxx.xxx.xxx:nnnn: Destination unreachable; nested exception is:
    java.net.SocketException: Write failed: Broken pipe; No available router to destination]
javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://xxx.xxx.xxx.xxx:nnnn: Destination unreachable; nested exception is:
    java.net.SocketException: Write failed: Broken pipe; No available router to destination]

在此之后我尝试再次连接并发生这种情况;

Connecting to t3s://xxx.xxx.xxx.xxx:nnnn with userid adminuserid ...
Successfully connected to Admin Server 'ourTestServer' that belongs to domain 'ourTestDomain'.

我现在已经尝试了大约 10 次,它总是一样,第一次尝试失败,第二次尝试成功。每次我都使用 IP 而不是地址的名称。这是在带有最新安全补丁的 WLS 10.3.6 的 Linux (RHEL6) 中。

我假设服务器日志中的这一行是相关的,因为它发生在上面发布的信息行之后 29 秒;

####<Oct 7, 2014 1:49:32 PM EEST> <Warning> <Socket> <machinename.domain.local> <ourTestServer> <[ACTIVE] ExecuteThread: '19' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1412678972504> <BEA-000449> <Closing socket as no data read from it on xxx.xxx.xxx.xxx:nnnn during the configured idle timeout of 25 secs>

我很茫然,因为总是第一次尝试失败,第二次尝试成功。

【问题讨论】:

  • 我在 Windows 上遇到了同样的问题。一台管理服务器,一台主机,它总是在第二次尝试时连接。 Oracle 支持没有帮助,所以我们不得不在脚本中添加逻辑来捕获异常并再次尝试连接......祝你好运

标签: weblogic connect wlst broken-pipe rhel6


【解决方案1】:

我在 RHEL 6.5 上运行的 WebLogic 11g 上遇到了同样的问题。运行 wlst.sh 之前的这个小 sn-p 为我解决了它(如果需要,请用空格分隔其他属性):

export WLST_PROPERTIES="-Djava.security.egd=file:/dev/./urandom"

或者,如果您不使用 wlst.sh 脚本来启动 JVM,则可以将等效项添加到命令行。

我在这里找到了答案: https://community.oracle.com/thread/1036828?start=0&tstart=0

这显然归结为“低熵”机器上的随机数生成器的问题。请参阅第 11.28.8 节。 http://docs.oracle.com/cd/E14571_01/doc.1111/e14773/weblogic_server_issues.htm

我有问题的服务器机器目前使用得非常少,所以这是有道理的。

【讨论】:

  • 很好,谢谢。到目前为止尝试过一次,结果是成功的。
【解决方案2】:

您可以在执行此操作时尝试运行 TCP 转储吗?是否有某种负载均衡器,因为听起来您有 50% 的故障,这是一致的。还要检查 access.log 条目,看看您是否真的能够访问服务器。您可以尝试的另一件事是查看您的 /etc/hosts 文件并查看您的主机名存在哪些条目。

【讨论】:

  • Hosts 文件看起来不错,服务器的主机名和 ip 只有一个条目。服务器日志包含有关关闭具有匹配 IP 的套接字的行,并且在 grepping 日志之后,它看起来对我来说只有在我尝试连接时才发生,所以请求确实会发送到服务器。我不确定管理端口或任何 t3(s) 连接是否最终出现在 access.log 中。我正在使用的 IP 没有负载均衡器。我已经尝试从多台机器远程登录到端口,并且 100% 的时间都有效。我将研究在测试时运行 TCP 转储的可能性。感谢您的建议。
猜你喜欢
  • 2019-10-13
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
  • 2020-01-07
  • 1970-01-01
相关资源
最近更新 更多