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查找器可能会意外地发现网络中的其他节点。