Java 获取IgniteCheckedException:默认Ignite实例已启动,在单个节点上启用持久性时出现异常

Java 获取IgniteCheckedException:默认Ignite实例已启动,在单个节点上启用持久性时出现异常,java,spring,ignite,high-availability,Java,Spring,Ignite,High Availability,我正在部署一个需要在Ignite缓存中维护一些数据的应用程序。我在内存中使用Ignite缓存。以下是我使用的Ignite配置: <property name="cacheConfiguration"> <list> <bean class="org.apache.ignite.configuration.CacheConfiguration"> <pr

我正在部署一个需要在Ignite缓存中维护一些数据的应用程序。我在内存中使用Ignite缓存。以下是我使用的Ignite配置:

<property name="cacheConfiguration">
        <list>
            <bean
                class="org.apache.ignite.configuration.CacheConfiguration">
                <property name="name" value="IGNITE_DATA" />
                <property name="cacheMode" value="PARTITIONED" />
                <property name="atomicityMode" value="ATOMIC" />
                <property name="writeSync"
                    value="PRIMARY_SYNC" />
                <property name="backups"
                    value="${IGNITE_CACHE_BACKUPS}" />
            </bean>
        </list>
    </property>
每次声明默认实例已启动时,我都会收到一个异常。尝试了几项操作,但都没有成功。即使我从Ignite配置中删除CacheConfiguration并保留dataStorageConfiguration,我仍然会收到相同的错误。错误是:

Caused by: class org.apache.ignite.IgniteCheckedException: Default Ignite instance has already been started.
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1141)
    at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1076)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:962)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:881)
    at org.apache.ignite.Ignition.start(Ignition.java:373)
通常,当我们尝试在同一个JVM下运行多个Ignite节点时,会出现此错误,但在这里,我为每个JVM运行一个节点。然后也得到了错误。 如果我错了,请纠正我


这里的任何帮助都将不胜感激。

很可能,您的配置文件中有多个
IgniteConfiguration
bean。如果一个配置bean扩展了另一个配置bean,那么请确保父配置bean是抽象的。

我已经解决了这个问题。似乎问题不在于Ignite配置,而在于Spring框架配置

我使用lazy init=true为Ignite类创建bean。我把它换成了渴望的init,这就解决了我的问题。
不确定它到底是如何解决这个问题的,但至少在我的情况下是有效的。

我已经检查了配置文件。。。它只包含1个Ignite配置bean。如果删除持久性的dataStorageConfiguration属性。错误消失了。。此属性存在一些问题。是否可以指定不允许节点启动的整个配置文件?我想在我这边办理登机手续。
log.info("Initializing IGNITE...");
ignite = Ignition.start(getClass().getResource(CONF_FILE));
Caused by: class org.apache.ignite.IgniteCheckedException: Default Ignite instance has already been started.
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1141)
    at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1076)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:962)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:881)
    at org.apache.ignite.Ignition.start(Ignition.java:373)