问题标签 [shared-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - DataCache 操作 - 验证成功
在 Windows Azure 共享缓存中:
假设我执行以下操作:
是否可以说如果代码到达Trace.WriteLine
命令,则操作成功完成?(否则,它会抛出DataCacheException
.
我知道我可以注册到事件CacheOperationCompleted
,但是我的代码可以作为测试操作成功的一个很好的替代方案吗?(用于放置/删除方法)。
谢谢
caching - Windows Azure 角色内缓存与共享缓存
我们在 Azure 中有一个网站,我们想缓存网站上的内容。将更新内容的应用程序将在 Azure 之外。我们让这个场景与共享缓存一起工作。然而,共享缓存被认为是一项遗留功能,因此我们想看看替代解决方案,包括使用角色内缓存。缓存的内容非常小,不应超过 1 MB,将被 C# 代码使用。
我们可以在 web 角色中使用 co-located 缓存,也可以使用 worker 角色使用专用缓存。
我们使用角色内缓存时遇到的问题是:
如何从外部应用程序更新协同定位缓存?
如果有办法从外部应用程序更新共存缓存,缓存通知可用于使所有共存缓存节点无效,对吗?
我们现在使用超小型 Web 角色实例 - 我们需要升级到小型/中型实例吗?
专用缓存是否更适合我们的场景?
提前致谢。
spring - JPA 2.0与 javax.persistence.sharedCache.mode
使用 Spring 3.2.0、Eclipselink 2.5.0-M9
当 persistence.xml 包含:
然后,如果我在运行时通过 emf.getProperties() 检查 EntityManagerFactory,则未设置此属性。
但是,如果我把它放在我的 Spring entityManagerFactory 配置中:
然后我可以从 emf.getProperties() 检索属性
此外,似乎在使用 spring 配置时,实际上并未启用共享缓存。这让我相信我没有在弹簧容器中正确设置它。
想法?
c# - 在本地和云端配置 Azure 共享缓存
我完全失去了让共享缓存工作的能力。
在本地,我有一个 mvc4 站点正在运行,并从中创建了一个云项目。我在角色上启用了缓存并将其设置为共同定位。到目前为止一切都很好。
我从 NuGet 添加了Windows Azure Caching 2.1 包,它安装了相关库并更新了我的 Web 配置:
配置部分:
配置:
当我按照说明将角色名称添加到元素的identifer
属性autoDiscover
并运行应用程序时,它似乎只是挂起(我假设失败):
我正在运行存储模拟器并从计算模拟器进行站点调试。我似乎无法让站点配置为使用 azure 缓存。
caching - 能够在 Windows azure 共享缓存中使用 CreateRegion
我正在使用 windows azure 缓存 perview,并且我正在使用 windows azure 共享缓存。
使用不同的缓存服务而不是角色内缓存。
虽然下面的链接说我们不能在共享缓存中使用区域。
http://msdn.microsoft.com/en-us/library/windowsazure/hh914155.aspx
但对我来说它工作正常。
注意:我只使用区域而不是标签。
这是正确的还是我做错了什么。
caching - 企业库或共享缓存 - 缓存事件
我想知道在提到的两个缓存解决方案中的任何一个中,是否有办法订阅事件并监听缓存中特定项目的更新?我希望在缓存中的项目更新时收到通知。有任何想法吗?
谢谢
jpa - DuplicateKeys 的 JPA 2.0 共享缓存问题
这篇文章是关于 JPA 的持久性问题。使用的 JPA 提供程序是 weblogic 12c 提供的 Oracle Toplink,使用 EclipseLink 构建。
用户进行“n”次交互/事务,应用程序将每个事务写入数据库。在重负载下,在编写事务时,应用程序面临重复键异常。
第一个事务已成功写入数据库,但后续事务有时会因重复键异常而被拒绝。
正如我所说,该应用程序使用 JPA 2.0,其中默认启用共享缓存,我认为这与共享缓存有关。
我这样说是因为同一个应用程序在使用 JPA 1.0 的 Weblogic 10 中运行良好,并且其中没有共享缓存的概念。
现在回到这个问题,参与插入事务的每个实体都由一个嵌入的主键类唯一标识,该类具有覆盖的 hashcode/equals()(请参见下面的类定义)。
主键是 sessionid(FIRST_USER_SESSION) 和事务号的组合(01 表示第一次插入,02 表示第二次插入 ....)例如:FIRST_USER_SESSION 和 01
第一个交易包:FIRST_USER_SESSION01 第二个交易包:FIRST_USER_SESSION02
在写入第一个插入事务(带有 pk FIRST_USER_SESSION 01 的实体)之前,它检查了 L2 缓存,并且由于它不在缓存中,它成功地持久化到 DB。
写入第一个事务后,它在 L2 缓存中更新。(具有 FIRST_USER_SESSION 01 键的实体被缓存)
现在对于第二个插入事务(键为 FIRST_USER_SESSION 02 的实体),在持久化之前检查 L2 缓存,我猜测第二个事务的实体被认为与 L2 缓存中已经存在的实体相同。即使 pk 不同(FIRST_USER_SESSION02),我认为框架将其识别为重复对象。(基于 equals() 和 hashcode() 覆盖)
结果,尝试插入相同的重复对象并引发重复键异常。
问题1)我的理解正确吗?我问这个的原因是每个实体都有唯一的密钥,这仅在高容量时发生。可能是其他一些事务(实体)返回相同的哈希码并使对象相同。
问题 2)如果是这种情况,我可以让实体使用隔离缓存并始终刷新并立即过期(如下面的代码所示)。
我只想禁用此实体的缓存,请让我知道您的意见
}
问题 3) 进行此更改后,我需要对应用程序进行负载测试。应用程序的用户通过 MQ 和 HTTP 进行交互。我需要将足够的消息放入 MQ
c# - 使用 Windows Azure 缓存服务处理到达 LocalCache 的通知
我正在尝试设置一个 localCache 来增加我的 WindowsAzure 站点上的 Windows Azure 缓存服务实例。为了防止对象过时,我设置了 clientNotifications,并且我将每 30 秒(或更短)轮询一次来自主缓存的更新。
我愿意设置通知回调来处理我在本地缓存中的对象的更新/删除,但我在 Microsoft 文档中看到“缓存通知还提供本地缓存对象的自动失效”。这是否意味着一旦我启用了客户端通知,系统将自动为我执行此本地失效?还是需要回调和自定义代码?该通知是否保证到达每个 Web 实例?
如果没有,我需要设置一个回调(我还没有找到任何具体的 C# 示例——提示提示)。在回调中,我只需要使本地缓存中的缓存对象无效(并且没有更新主缓存,因为它已经被更新了)——在不触及主缓存的情况下更新本地缓存的方法是什么?
谢谢 - 我希望这是有道理的(缺少文档)。
hibernate - WildFly 中的 JPA 共享缓存/二级缓存
我正在使用 WildFly 8.1 所以 JPA 2.1 和 Hibernate 4.3.5
我想在 WildFly 中使用 JPA 共享缓存/二级缓存
我遵循 WildFly 文档:https ://docs.jboss.org/author/display/WFLY8/JPA+Reference+Guide#JPAReferenceGuide-UsingtheInfinispansecondlevelcache
这是我的 persitience.xml:
我将属性 hibernate.cache.use_second_level_cache 设置为 true 并将 shared-cache-mode 设置为 ENABLE_SELECTIVE
我要缓存的实体(@Entity)用@Cacheable(true)注释,如下所示:
但是每次我访问一个网页休眠时都会生成很多选择来获取我指示为@Cacheable(true) 的所有实体,即使我已经访问了该页面(在同一个会话中)。
所以似乎共享缓存/二级缓存不起作用
我错过了什么?
谢谢你
我试图在 persitence.xml 中将 hibernate.cache.use_query_cache 设置为 true
以及我正在使用的查询中的提示
但问题仍然存在
我也尝试使用新版本的 WildFly:8.2 所以 Hibernate 4.3.7 但问题仍然存在
java - 没有共享缓存的 JPA find() 和 refresh()
我想知道禁用共享缓存时这些方法是否等效:
这些方法永远不会在现有事务中调用。该应用程序仅使用 JPA 独占访问数据库,并且未定义触发器/存储过程/其他。
我的猜测是它们是等价的,因为:
- em.find() 将搜索共享缓存(L2),但它是空的(禁用)
- em.find() 将搜索自己的缓存(L1),但它是空的(没有以前的事务 = em 是新的)
- em.find() 将访问数据库
- em.refresh() 将第二次访问 db,但在这种情况下,实体总是相同的
我错过了什么?