草庐IT

java.lang.RuntimeException : ERROR: Failed to recover corrupt cache entry 错误

我刚从我的一位用户那里收到这条错误消息。(IE8,Java1.6.20)。它来自一个小程序,该小程序从Javascript接收指令并在客户端执行某些过程。RangeErrorjava.lang.RuntimeException:ERROR:Failedtorecovercorruptcacheentryatcom.sun.deploy.cache.CacheEntry.recoveratcom.sun.deploy.cache.CacheEntry.getSignerMapatcom.sun.deploy.cache.CachedJarFile.getSignerMapatcom.su

java - 甲骨文一致性 : How to set the timeout on an invoke call in a replicated cache?

我有一个复制的缓存运行在许多也运行OSB的weblogic节点上。缓存以服务器作为启动类启动。它有一个非常简单的对象缓存,可以通过boolean属性“可用”简单地跟踪它们是否正在使用。我从OSB向同一个类发出java标注,它使用将对象标记为不可用的处理器在缓存上调用“调用”,然后运行​​Thread.sleep(31000)。这是我稍后要添加的一些冗长处理的占位符。我想要发生的是,如果invoke()调用花费的时间太长,进程应该超时并返回或抛出异常。所以我一直在尝试配置30000毫秒的请求超时来测试这个。不幸的是,我不知道如何让这个超时发生。我试过:将处理器包装在PriorityPro

java - 我如何在 JPA 中使用 Hibernate 的二级缓存?

我正在实现基于实体属性值的持久性机制。所有数据库访问都是通过Hibernate完成的。我有一个包含节点路径的表,它非常简单,只有一个id和一个路径(字符串)路径数量很少,大约几千条。主表有数百万行,我没有重复路径,而是将路径标准化为它们自己的表。以下是插入主表时我想要的行为1)检查路径表中是否存在路径(通过实体管理器查询,以路径值为参数)2)如果不存在,则插入并获取id(通过实体管理器持久化)3)将id作为外键值添加到主表行中,并将其插入到主表中。对于一组域对象,这将发生数千次,这些域对象对应于主表和其他一些表中的许多行。因此,使用这样的单个事务重复上述步骤:EntityTransac

java - Hibernate Ehcache 不适用于 SQL Native 查询缓存

我遇到了错误aliasesexpectedlengthis1;actuallengthis4atorg.hibernate.transform.CacheableResultTransformer.transformTuple我有JPA+Hibernate配置和查询缓存以及使用Eh-Cache的二级缓存。配置:PostgreSQL9.6+JPA2.1+Hibernate5.2.3.Final我正在尝试使用SqlResultSetMapping[自定义结果集类]执行NativeQuery。当我禁用缓存时一切正常。但是,当我启用缓存时出现上述错误。缓存工作正常,但NativeQuery除外

java - 实现缓存 Spring 方法级注解 vs Hibernate 二级缓存

我正在致力于实现某些静态数据的缓存。我有两种方法:使用Spring框架注释使用方法级缓存。启用二级缓存,以便hibernate管理数据缓存哪种方法效果最好?我必须考虑哪些事项? 最佳答案 如果一切都平等考虑更喜欢方法调用结果的Spring缓存,原因是在服务层级别进行缓存更容易推理。Hibernate二级缓存工作正常,但在我看来它更难推理并且有更多缺陷。例如,它不适用于查询,仅适用于通过ID查找或加载惰性关联。实际上惰性关联的加载默认情况下是关闭的,需要在集合级别使用特定于hibernate的注释来启用。要查询查询的结果,您还需要使用

java - 使用 Spring 缓存抽象的异步缓存更新

使用Spring的缓存抽象,如何让缓存异步刷新条目,同时仍返回旧条目?我正在尝试使用Spring的缓存抽象来创建一个缓存系统,在该系统中,在相对较短的“软”超时后,缓存条目有资格进行刷新。然后,当它们被查询时,返回缓存的值,并启动异步更新操作来刷新条目。我也会Guava的缓存构建器允许我指定缓存中的条目应在一定时间后刷新。然后可以使用异步实现覆盖缓存加载器的reload()方法,允许返回陈旧的缓存值,直到检索到新值。但是,springcaching好像没有使用底层Guava缓存的CacheLoader是否可以使用Spring的缓存抽象来执行这种异步缓存刷新?编辑澄清:使用Guava的C

javascript - Java 在缓存中保存 JSP 页面

我想使用缓存来加载JSP页面。我使用JavaJSPServlet创建了一个动态Web项目。在这个项目中,我从RestAPI调用获取数据(JSON格式),并将这些数据动态呈现到表内的JSP页面中。我还在API数据中获取带有数据时间的key名称“lastUpdate”。我第一次必须在表内呈现数据,然后在调用RestAPI后第二次,我必须检查我的“lastUpdate”(在缓存中可用)时间是否与来自“lastUpdate”的时间相同调用RestAPI,然后我必须使用缓存显示相同的页面。我不确定这是否可能,我是缓存管理方面的新手。所以请分享您的反馈和一些我可以引用的示例或教程。

java - 在 Java 中收缩 LinkedHashMap

如何缩小LinkedHashMap?我覆盖了removeEldestEntry方法,但此方法仅在插入新值时调用一次。因此,以这种方式缩小map没有任何变化。LinkedHashMap只给我一个普通的Iterator并且没有任何removeLast或listIterator方法,那么您如何才能找到最后的(比如1000个)条目并将其删除?我能想到的唯一方法就是迭代整个过程。但这可能需要很长时间...每次我想只删除几个元素时创建一个新map也会破坏内存。当removeEldestEntry方法中的maxSize减少时,可能会删除Iterator的第一个值,然后重新插入它们。然后重新插入将踢出

java - Ehcache 设置为永恒但无论如何都会忘记元素?

我正在尝试配置Ehcache(2.5版),使其永远不会忘记项目。我正在以编程方式进行配置,但我没有触及任何配置XML文件。通过将eternal设置为true据我了解,唯一可以从缓存中删除项目的情况是磁盘空间不足或超过>maxBytesLocalDisk(或者如果应用程序终止)。但是,此测试程序并未显示该行为:publicstaticvoidmain(String[]args){CacheManagercacheManager=CacheManager.create();Cachecache=newCache(newCacheConfiguration().name("test").ov

java - Spring分别缓存列表中的所有元素

我正在尝试向CRUD应用程序添加缓存,我开始做这样的事情:@Cacheable("users")Listlist(){returnuserRepository.findAll()}@CachePut(value="users",key="#user.id")voidcreate(Useruser){userRepository.create(user)}@CachePut(value="users",key="#user.id")voidupdate(Useruser){userRepository.update(user)}@CacheEvict(value="users",key=