0

これは、コードベースを gridgain 4 から gridgain 6 に移植しようとしたときに遭遇した別の問題です。とにかく、目的は、グリッド イベント (EVT_NODE_JOINED など) の検出時に特定のアクションを実行するために、リスナーの 1 つに接続することです。

古いコードでは、この xml スニペットで説明されているように、リスナー (gridNodeMonitor) に配線しました。

<beans profile="master">
    <bean class="org.gridgain.grid.GridSpringBean">
        <property name="configuration">
            <bean parent="abstractGridConfiguration">
                <property name="userAttributes">
                    <map merge="true">
                        <entry key="com.mycompany.master" value="true"/>
                    </map>
                </property>
                <property name="lifecycleBeans">
                    <list>
                        <ref bean="gridNodeMonitor"/>
                    </list>
                </property>
                <property name="localEventListeners">
                    <map>
                        <entry key-ref="gridNodeMonitor">
                            <list>
                                <util:constant static-field="org.gridgain.grid.GridEventType.EVT_NODE_JOINED"/>
                                <util:constant static-field="org.gridgain.grid.GridEventType.EVT_NODE_LEFT"/>
                                <util:constant static-field="org.gridgain.grid.GridEventType.EVT_NODE_FAILED"/>
                                <util:constant static-field="org.gridgain.grid.GridEventType.EVT_NODE_RECONNECTED"/>
                            </list>
                        </entry>
                    </map>
                </property>
                <property name="topologySpi">
                    <bean class="org.gridgain.grid.spi.topology.nodefilter.GridNodeFilterTopologySpi">
                        <property name="filter">
                            <bean class="com.mycompany.enterprise.gridgain.license.GridNodeMonitorImpl"
                                  factory-method="createTopologyFilter">
                                <constructor-arg ref="gridNodeMonitor"/>
                            </bean>
                        </property>
                    </bean>
                </property>
                <property name="cacheConfiguration">
                    <bean class="org.gridgain.grid.cache.GridCacheConfigurationAdapter"/>
                </property>
            </bean>
        </property>
    </bean>
</beans>

新しいコードでは、構成スキーマが変更され、これが移植されたものです (localEventListener は有効なプロパティではなくなりました)。私の問題は、イベントを監視するリスナーを指定していないことだと思います。これをどのように構成すればよいですか? いずれにせよ、GridGain は正しく機能することに注意してください。つまり、ジョブは正しいノードに分散されています。正しく登録されていないのはリスナーだけです。

ありがとう

<beans profile="master">
    <bean class="org.gridgain.grid.GridSpringBean">
        <property name="configuration">
            <bean parent="abstractGridConfiguration">
                <property name="userAttributes">
                    <map merge="true">
                        <entry key="com.mycompany.master" value="true"/>
                    </map>
                </property>
                <property name="lifecycleBeans">
                    <list>
                        <ref bean="gridNodeMonitor"/>
                    </list>
                </property>
                <property name="includeEventTypes">
                    <list>
                        <util:constant static-field="org.gridgain.grid.events.GridEventType.EVT_NODE_JOINED"/>
                        <util:constant static-field="org.gridgain.grid.events.GridEventType.EVT_NODE_LEFT"/>
                        <util:constant static-field="org.gridgain.grid.events.GridEventType.EVT_NODE_FAILED"/>
                        <util:constant static-field="org.gridgain.grid.events.GridEventType.EVT_NODE_RECONNECTED"/>
                    </list>
                </property>
                <property name="cacheConfiguration">
                    <bean class="org.gridgain.grid.cache.GridCacheConfiguration"/>
                </property>
            </bean>
        </property>
    </bean>
</beans>
4

1 に答える 1