Java 使用CacheJdbcPojoStoreFactory添加缓存配置时,Ignite无法启动
我有一个点火配置,工作正常。但是,当我试图向集群添加读通功能时,启动失败(甚至在我调用loadCache之前)。我总是收到错误,抱怨分区交换器阻塞线程 这是堆栈跟踪-Java 使用CacheJdbcPojoStoreFactory添加缓存配置时,Ignite无法启动,java,ignite,distributed-caching,Java,Ignite,Distributed Caching,我有一个点火配置,工作正常。但是,当我试图向集群添加读通功能时,启动失败(甚至在我调用loadCache之前)。我总是收到错误,抱怨分区交换器阻塞线程 这是堆栈跟踪- 2020-10-21 08:07:21.962 ERROR 1 --- [o-msg-worker-#2] o.apache.ignite.internal.util.typedef.G : Blocked system-critical thread has been detected. This can lead to cl
2020-10-21 08:07:21.962 ERROR 1 --- [o-msg-worker-#2] o.apache.ignite.internal.util.typedef.G : Blocked system-critical thread has been detected. This can lead to cluster-wide undefined behaviour [threadName=partition-exchanger, blockedFo
r=56s]
2020-10-21 08:07:21.962 WARN 1 --- [o-msg-worker-#2] o.apache.ignite.internal.util.typedef.G : Thread [name="exchange-worker-#37", id=61, state=BLOCKED, blockCnt=1, waitCnt=0]
Lock [object=java.util.concurrent.ConcurrentHashMap@3b460d90, ownerName=main, ownerId=1]
2020-10-21 08:07:21.962 ERROR 1 --- [o-msg-worker-#2] : Critical system error detected. Will be handled accordingly to configured handler [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0,
super=AbstractFailureHandler [ignoredFailureTypes=[SYSTEM_WORKER_BLOCKED]]], failureCtx=FailureContext [type=SYSTEM_WORKER_BLOCKED, err=class o.a.i.IgniteException: GridWorker [name=partition-exchanger, igniteInstanceName=null, finished=f
alse, heartbeatTs=1603267585871]]]
org.apache.ignite.IgniteException: GridWorker [name=partition-exchanger, igniteInstanceName=null, finished=false, heartbeatTs=1603267585871]
at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1831) [ignite-core-2.7.0.jar!/:2.7.0]
at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1826) [ignite-core-2.7.0.jar!/:2.7.0]
at org.apache.ignite.internal.worker.WorkersRegistry.onIdle(WorkersRegistry.java:233) [ignite-core-2.7.0.jar!/:2.7.0]
at org.apache.ignite.internal.util.worker.GridWorker.onIdle(GridWorker.java:297) [ignite-core-2.7.0.jar!/:2.7.0]
at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.lambda$new$0(ServerImpl.java:2663) [ignite-core-2.7.0.jar!/:2.7.0]
at org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7181) ~[ignite-core-2.7.0.jar!/:2.7.0]
at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2700) [ignite-core-2.7.0.jar!/:2.7.0]
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) [ignite-core-2.7.0.jar!/:2.7.0]
at org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7119) ~[ignite-core-2.7.0.jar!/:2.7.0]
at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62) ~[ignite-core-2.7.0.jar!/:2.7.0]
2020-10-21 08:07:21.964 WARN 1 --- [o-msg-worker-#2] o.a.i.i.p.failure.FailureProcessor : No deadlocked threads detected.
2020-10-21 08:07:21.983 WARN 1 --- [o-msg-worker-#2] o.a.i.i.p.failure.FailureProcessor : Thread dump at 2020/10/21 08:07:21 GMT
这是我的点火配置-
...
是否与CacheStore工厂一起工作?你能把工厂外的一个节点做成一个集群,看看会发生什么吗?你用的是什么版本?尝试升级到最新版本。文件:示例:
<property name="cacheConfiguration">
<list>
<!-- Configuration for PersonCache -->
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="AllocationTypeCache"/>
<property name="cacheMode" value="PARTITIONED"/>
<property name="atomicityMode" value="ATOMIC"/>
<property name="cacheStoreFactory">
<bean class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory">
<property name="dataSourceBean" value="dsMSSQL_Test"/>
<property name="dialect">
<bean class="org.apache.ignite.cache.store.jdbc.dialect.SQLServerDialect">
</bean>
</property>
...
</property>
</bean>
<!-- Provide similar configurations for other caches/tables -->
</list>
</property>
</bean>