0
gridgain 4에서 gridgain 6으로 우리의 코드베이스를 이식하려고 할 때 또 다른 문제가 있습니다. 어쨌든, 그리드 이벤트 감지시 특정 동작을 수행하기 위해 청취자 중 한 명을 연결하는 것이 목적입니다 EVT_NODE_JOINED)Gridgain Notify Listener가 GridEvent에서 작동하지 않습니다. 구성해야하는 항목은 무엇입니까?
이전 코드에서는이 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>
예, 본인은 리튬으로 꺾어 리스너를 추가 않았다 fecycle. 좀 더 디버그하려고 노력할 것이다. '개인 무효 registerGridEventListener() { 그리드(). 이벤트(). localListen (새 GridPredicate() { @Override 공공 부울 (GridEvent gridEvent를 적용) { // 노드 모니터를 등록 모니터().의 onEvent (gridEvent)는 true 반환; } }, GridEventType.EVT_NODE_JOINED, ..... 는) 를 GridEventType.EVT_NODE_RECONNECTED; }' –
수정 됨. 이전에 리스너를 구현 한 bean "gridNodeMonitor"는 localEventListeners 속성이 더 이상 존재하지 않기 때문에 특정 컨텍스트에서 더 이상 등록되지 않았습니다. 리스너를 impl에 연결하여 리스너를 초기화하기로 결정했습니다. GridLifecycleBean.onLifecycleEvent (AFTER_GRID_START) 메소드에 대한 설명입니다. 감사합니다. –