java - 找不到具有紧凑页脚的对象的元数据(重启后可能已清除 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));
}
解决方案
推荐阅读
- python - 需要一个可以使用特殊字符(连字符、撇号等)验证名称的 python 正则表达式
- javascript - 如何修复 Cordova Android 模拟器问题?
- hadoop - YARN FairScheduler 配置
- c++ - 返回 (\r) 中断 cout
- r - 如何停止回收r中不均匀的行长度
- javascript - 量角器断言元素不可见
- javascript - 单击排序按钮时我的项目消失了
- excel - 如何从 Excel 单元格中复制一个值并将其粘贴到一个新的单元格中
- design-patterns - 在 CQS 模式中不为命令返回任何内容有什么好处?
- java - java.sql.SQLException PWS0005 数据库中发生错误的含义