首页 > 解决方案 > 找不到具有紧凑页脚的对象的元数据(重启后可能已清除 Ignite 工作目录

问题描述

我在日志中看到以下异常。缓存模式在PARTITIONED. 配置类发布在下面。请注意,我没有重新启动服务器或 ignite。这个问题是断断续续的..

点燃版本:apache-ignite-2.7.6。

任何建议将不胜感激。

Caused by: org.apache.ignite.binary.BinaryObjectException: Cannot find metadata for object with compact footer (Ignite work directory might have been cleared after restart. Make sure that IGNITE_HOME does not point to a temp folder or any other folder that is destroyed/cleared on restarts) [typeId=1239516886, IGNITE_HOME='null']
        at org.apache.ignite.internal.binary.BinaryReaderExImpl.getOrCreateSchema(BinaryReaderExImpl.java:2016) ~[ignite-core-2.7.6.jar:2.7.6]

大部分配置如下所示。

public final class ClientCacheConfiguration implements Serializable {
/** Serial version uid. */
private static final long serialVersionUID = 0L;

/** @serial Cache name. */
private String name;

/** @serial Atomicity mode. */
private CacheAtomicityMode atomicityMode = CacheConfiguration.DFLT_CACHE_ATOMICITY_MODE;

/** @serial Backups. */
private int backups = CacheConfiguration.DFLT_BACKUPS;

/** @serial Cache mode. */
private CacheMode cacheMode = CacheConfiguration.DFLT_CACHE_MODE;

/** @serial Eager TTL flag. */
private boolean eagerTtl = CacheConfiguration.DFLT_EAGER_TTL;

/** @serial Group name. */
private String grpName = null;

/** @serial Default lock timeout. */
private long dfltLockTimeout = CacheConfiguration.DFLT_LOCK_TIMEOUT;

/** @serial Partition loss policy. */
private PartitionLossPolicy partLossPlc = CacheConfiguration.DFLT_PARTITION_LOSS_POLICY;

/** @serial Read from backup. */
private boolean readFromBackup = CacheConfiguration.DFLT_READ_FROM_BACKUP;

/** @serial Rebalance batch size. */
private int rebalanceBatchSize = CacheConfiguration.DFLT_REBALANCE_BATCH_SIZE;

/** @serial Rebalance batches prefetch count. */
private long rebalanceBatchesPrefetchCnt = CacheConfiguration.DFLT_REBALANCE_BATCHES_PREFETCH_COUNT;

/** @serial Rebalance delay. */
private long rebalanceDelay = 0;

/** @serial Rebalance mode. */
private CacheRebalanceMode rebalanceMode = CacheConfiguration.DFLT_REBALANCE_MODE;

/** @serial Rebalance order. */
private int rebalanceOrder = 0;

/** @serial Rebalance throttle. */
private long rebalanceThrottle = CacheConfiguration.DFLT_REBALANCE_THROTTLE;

/** @serial @serial Rebalance timeout. */
private long rebalanceTimeout = CacheConfiguration.DFLT_REBALANCE_TIMEOUT;

/** @serial Write synchronization mode. */
private CacheWriteSynchronizationMode writeSynchronizationMode = CacheWriteSynchronizationMode.PRIMARY_SYNC;

/** @serial Copy on read. */
private boolean cpOnRead = CacheConfiguration.DFLT_COPY_ON_READ;

/** @serial Data region name. */
private String dataRegionName = null;

/** @serial Statistics enabled. */
private boolean statisticsEnabled = false;

/** @serial Max concurrent async operations. */
private int maxConcurrentAsyncOperations = CacheConfiguration.DFLT_MAX_CONCURRENT_ASYNC_OPS;

/** @serial Max query iterators count. */
private int maxQryIteratorsCnt = CacheConfiguration.DFLT_MAX_QUERY_ITERATOR_CNT;

/** @serial Onheap cache enabled. */
private boolean onheapCacheEnabled = false;

/** @serial Query detail metrics size. */
private int qryDetailMetricsSize = CacheConfiguration.DFLT_QRY_DETAIL_METRICS_SIZE;

/** @serial Query parallelism. */
private int qryParallelism = CacheConfiguration.DFLT_QUERY_PARALLELISM;

/** @serial Sql escape all. */
private boolean sqlEscapeAll = false;

/** @serial Sql index max inline size. */
private int sqlIdxMaxInlineSize = CacheConfiguration.DFLT_SQL_INDEX_MAX_INLINE_SIZE;

/** @serial Sql schema. */
private String sqlSchema = null;

/** @serial Key config. */
private CacheKeyConfiguration[] keyCfg = null;

/** @serial Query entities. */
private QueryEntity[] qryEntities = null;

}

对象创建如下所示:

  private ClientCacheConfiguration newClientCacheConfiguration(final String cacheName, final Class<?> keyCls, final Class<?> valCls) {
        return new ClientCacheConfiguration()
                .setName(cacheName)
                .setBackups(backups)
                .setStatisticsEnabled(statisticsEnabled)
                .setQueryDetailMetricsSize(queryDetailMetricsSize)
                .setQueryEntities(newQueryEntity(keyCls, valCls));
    }

标签: javajava-8ignite

解决方案


推荐阅读