これは、コードベースを 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>