I try create spring java application with apache ignite inside.

When application startup it deploy service(cluster singleton) to cluster.
(it`s ok)

But when i start second node which deploy this service too it is locked.

why this hapends ? Apache Ignite 2.5.0

code of service class:

public class TaskLockWatcher implements Service {
    @IgniteInstanceResource
    private Ignite ignite;
    private SchedulerFuture scheduler;

    @Override
    public void cancel(ServiceContext ctx) {
      LOGGER.info("schedule service cancel");
      if (scheduler != null){
        scheduler.cancel();
        scheduler = null;
      }
    }

    @Override
    public void init(ServiceContext ctx) throws Exception {
      LOGGER.info("schedule service init");
    }

    @Override
    public void execute(ServiceContext ctx) throws Exception {
      LOGGER.info("schedule service execute");
      if (scheduler == null){
        scheduler = ignite.scheduler().scheduleLocal(() -> {
          LOGGER.info("schedule service call");
          List<Ticket> tickets = getTicketForUnlock();
          if (!tickets.isEmpty()){
            changeTicketStatus(tickets, TicketStatus.CREATED);
          }
        }, "* * * * *");
      }
    }
  }

But the locking occurs even if I leave only the output of messages in all
TaskLockWatcher methods.

publishing code:

Ignite ignite = connector.getClient();
IgniteServices svcs = ignite.services();
svcs.deployClusterSingleton("taskLockWatcher", new TaskLockWatcher());


ignite configuration code:

IgniteConfiguration igniteConfiguration = new IgniteConfiguration();
DataStorageConfiguration dataStorageConfiguration = new
DataStorageConfiguration();
dataStorageConfiguration.setWalMode(WALMode.LOG_ONLY);
dataStorageConfiguration.getDefaultDataRegionConfiguration().setPersistenceEnabled(false);
dataStorageConfiguration.getDefaultDataRegionConfiguration().setMaxSize(128);
// MB

List<DataRegionConfiguration> list = new ArrayList<>();
    DataRegionConfiguration configuration = new DataRegionConfiguration();
    configuration.setName("TASK_REGION");
    configuration.setMaxSize(1024);
    configuration.setPersistenceEnabled(true);
    list.add(conf); 
    dataStorageConfiguration.setDataRegionConfigurations(list.toArray(new
DataRegionConfiguration[0]));
   
igniteConfiguration.setDataStorageConfiguration(dataStorageConfiguration);

TcpCommunicationSpi tcpCommunicationSpi = new TcpCommunicationSpi();
    tcpCommunicationSpi.setSlowClientQueueLimit(1000);
    igniteConfiguration.setCommunicationSpi(tcpCommunicationSpi);
    Map<String, String> attrs =
Collections.singletonMap("group.node.filter",
"CLUSTER_TASKS,CLUSTER_TICKETS");
    igniteConfiguration.setUserAttributes(attrs);

TcpDiscoverySpi spi = new TcpDiscoverySpi();
    TcpDiscoveryZookeeperIpFinder ipFinder = new
TcpDiscoveryZookeeperIpFinder();
    ipFinder.setBasePath("/datagrid");
    ipFinder.setCurator(getCuratorFramework());
    spi.setIpFinder(ipFinder);
    igniteConfiguration.setDiscoverySpi(spi);

AtomicConfiguration atomicConfiguration = new AtomicConfiguration();
    atomicConfiguration.setBackups(1);
    atomicConfiguration.setCacheMode(CacheMode.REPLICATED);
    igniteConfiguration.setAtomicConfiguration(atomicConfiguration);
    igniteConfiguration.setIncludeEventTypes(EventType.EVTS_CACHE);

CacheConfiguration<UUID, Ticket> cacheConfiguration = new
CacheConfiguration<>("TICKETS");
    cacheConfiguration.setIndexedTypes(keyClass, UUID.class);



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Reply via email to