Ignite:未能等待初始分区映射交换

Ignite:未能等待初始分区映射交换,ignite,Ignite,我有一个非常简单的弹簧组件: @Component public abstract class IgniteComponent { protected final Ignite ignite; /** * Start the ignite */ public IgniteComponent() { this.ignite = Ignition.getOrStart(new IgniteConfiguration()); }

我有一个非常简单的弹簧组件:

@Component
public abstract class IgniteComponent {

    protected final Ignite ignite;

    /**
     * Start the ignite
     */
    public IgniteComponent() {
        this.ignite = Ignition.getOrStart(new IgniteConfiguration());
    }

    /**
     * Get the ignite
     *
     * @return The ignite
     */
    public Ignite getIgnite() {
        return this.ignite;
    }
}
当我在本地单元测试中使用这个组件时,一切都很好。 但是,当我想在Bambol代理上运行单元测试时,我总是得到以下结果:

24-Jul-2018 13:36:38        2018-07-24 11:36:38.888  WARN 7259 --- [    Test worker] .i.p.c.GridCachePartitionExchangeManager : Failed to wait for initial partition map exchange. Possible reasons are: 
24-Jul-2018 13:36:38          ^-- Transactions in deadlock.
24-Jul-2018 13:36:38          ^-- Long running transactions (ignore if this is the case).
24-Jul-2018 13:36:38          ^-- Unreleased explicit locks.
我找不到任何理由。我正在使用的ignite版本是:

dependencySet (group: 'org.apache.ignite', version: '2.2.0') {
    entry 'ignite-core'
    entry 'ignite-spring'
}

此问题的原因通常是什么?

默认情况下使用多播IP查找器。如果您在共享代理上运行Ignite,它将尝试加入存在的任何节点,并产生意外结果。尝试使用例如禁用多播或提供实例的整个日志。

看看这个答案:我只有一个ignite节点。竹代理正在启动一个容器并在容器中运行测试。集装箱在那之后就被摧毁了。我们非常确定我们只有一个ignite节点,因此分区是不可能的。您能提供来自该节点的完整日志和线程转储吗?在单个节点上等待PME失败是非常奇怪的。为了确保没有其他节点妨碍,请配置静态IP查找器:多播IP查找器可能会意外地发现网络中的其他节点。