使用CacheJdbcPojoStoreFactory添加缓存配置时,Ignite无法启动

问题描述

我有一个运行良好的Ignite配置。但是,当我尝试将通读功能添加到群集时,启动失败(甚至在我调用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 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,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

   

这是我的点火配置-

    <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>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)