【问题标题】:jndi.properties in JBossJBoss 中的 jndi.properties
【发布时间】:2011-02-26 10:01:27
【问题描述】:

有什么方法可以配置 JNDI,以便查找首先检查 localhost,如果找不到匹配的名称,它会自动发现其他 jndi 服务器?

【问题讨论】:

    标签: jboss jndi


    【解决方案1】:

    我对文档的理解是,这是使用集群时的默认行为:

    16.2.2. Client configuration

    JNDI 客户端需要注意 HA-JNDI 集群。你可以通过一个 JNDI 服务器列表(即节点 在 HA-JNDI 集群中)到 java.naming.provider.urlJNDI 在jndi.properties 文件中设置。 每个服务器节点由其标识 IP 地址和 JNDI 端口号。 服务器节点由 逗号(请参阅Section 16.2.3, “JBoss configuration” 了解如何配置 服务器和端口)。

    java.naming.provider.url=server1:1100,server2:1100,server3:1100,server4:1100
    

    初始化时,JNP 客户端代码 将尝试与每个人取得联系 列表中的服务器节点,后一个 另一个,立即停止 服务器已到达。届时将 从此下载 HA-JNDI 存根 节点。

    注意 - JNP 客户端查找中没有负载平衡行为 过程。它只是通过 提供者列表并使用第一个 可用的服务器。 HA-JNDI 提供者 列表只需要包含一个子集 集群中的 HA-JNDI 节点。

    下载的智能存根包含 故障转移到另一个节点的逻辑,如果 必要和更新的清单 当前运行的节点。此外, 每次进行 JNDI 调用时 服务器,目标列表 存根拦截器已更新(仅当 自上次以来列表已更改 打电话)。

    如果属性字符串java.naming.provider.url 为空或 如果它提到的所有服务器都不是 可达,JNP 客户端将尝试 发现一个引导 HA-JNDI 服务器 通过组播呼叫 网络(自动发现)。看 Section 16.2.3, “JBoss configuration”关于如何配置 JNDI 服务器上的自动发现 节点。通过自动发现, 客户可能能够获得有效的 HA-JNDI 服务器节点没有任何 配置。当然,对于 自动发现工作,客户端 必须与 服务器集群(例如,web servlet 使用 EJB 服务器)。局域网或广域网 还必须配置为传播 这样的多播数据报。

    【讨论】:

    • 可能我写的不够清楚。假设我正在寻找在 JNDI 中注册为“ObjectA”的对象。我想要做的是首先检查 localhost 是否在那里注册了“ObjectA”,如果没有尝试通过多播发现另一个 JNDI 服务器并检查 ObjectA 是否存在,如果没有抛出 NamingException(或任何应该抛出的异常)。
    • @Filip:哦,我现在明白了。不确定是否可以在不编写此逻辑的情况下完成此操作(实际上似乎是一个非常特殊的用例)。
    猜你喜欢
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多