【问题标题】:Set preferred listen address in weblogic 11g在 weblogic 11g 中设置首选监听地址
【发布时间】:2011-05-19 07:21:17
【问题描述】:

我有一个 WebLogic 11g 域,其中 1 台管理服务器和 4 台托管服务器在 2 台机器上运行。每台机器有 3 个 ip 地址,但另一台机器只能看到其中一个地址。每台机器都运行一个节点管理器,该节点管理器似乎可以在彼此和管理服务器之间正常通信。虽然当托管服务器在第二台机器上启动时,它无法与管理服务器通信,因为它使用了错误的 IP 地址。看来,当 weblogic 启动时,它会将自身映射到所有 IP 地址,但选择错误的一个作为第一个,即默认值。这就是托管服务器从节点管理器接收错误信息的原因。

有没有办法在 weblogic 11g 中设置首选监听地址,但仍然允许它监听所有其他地址? weblogic如何获取IP地址列表?它们的顺序是否取决于操作系统?

【问题讨论】:

    标签: linux networking dns redhat weblogic11g


    【解决方案1】:

    this 会回答问题吗?我相信如果你使用 /etc/sysconfig 中的脚本,你会影响加载顺序,进而影响枚举顺序。我必须承认,我这里没有 RH 框来证实这种怀疑。

    【讨论】:

    • 不,因为它只会监听一个IP地址。但我仍然希望它能够收听所有本地地址,但顺序不同:)
    • 好吧,如果您真的很绝望,请编译您自己的类硬编码实现,并使用命令行 prebootclass(就是这样)优先加载它。现在这是一个黑客! :)
    • 我还没有那么绝望,但如果没有其他方法,我将不得不破解。
    • 如果你用与红帽相关的链接更新你的答案,我会投票赞成:)
    【解决方案2】:

    Weblogic 使用NetworkInterface.getNetworkInterfaces() 方法和他自己的逻辑来设置监听地址的顺序。这个逻辑从10.3.2改成了10.3.4。

    相关代码在weblogic.jar中weblogic.server.channels.AddressUtils$AddressMaker类的方法getAllAddresses

    您可以通过简单的测试来检查订单:

    import java.net.*;
    import weblogic.server.channels.*;
    
    public class TestIP_WLS {
    
        public static void main(String args[]) throws UnknownHostException {
            System.out.println("=== AddressUtils.getIPAny()");
            InetAddress addrs[] = AddressUtils.getIPAny();
            for (InetAddress addr : addrs) {
                System.out.println("*** " + addr);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多