6.2. Infinispan 服务器配置更改
在考虑以下方面时,配置自定义有状态会话 Bean (SFSB)缓存以便在 Red Hat JBoss Enterprise Application Platform 7.1 及更高版本中进行传递:
- 弃用 idle-timeout 属性
- 实现 lazy 传递
- 集群名称的决定
- 适当的驱除和过期配置
- 缓存容器传输协议中的修改以提高性能。
通过遵循这些注意事项,您可以优化 SFSB 缓存配置,以提高 JBoss EAP 7.1 及更高版本中的传递。
6.2.1. 配置自定义有状态会话 Bean 缓存以进行传递 复制链接链接已复制到粘贴板!
在 JBoss EAP 7.1 及更高版本中,启用了 passivation 的自定义有状态会话 Bean (SFSB)缓存已更改。当使用 passivation 配置 SFSB 缓存时,请考虑以下密钥更改:
- 弃用 idle-timeout 属性
- 从 eager 变为 lazy passivation
- 确定集群名称
- 在 Jakarta Enterprise Beans 缓存中配置驱除和过期
在配置自定义 SFSB 缓存以便在 JBoss EAP 7.1 及更高版本中传递时,请考虑以下限制:
idle-timeout属性在ejb3子系统的infinispanpassivation-store中配置,在 JBoss EAP 7.1 及更高版本中被弃用。JBoss EAP 7.1 及更高版本只支持 lazy passivation,这在达到max-size阈值时发生。注意这些版本不再支持通过 idle-timeout 的 eager passivation。
-
在 JBoss EAP 7.1 及更高版本中,Jakarta Enterprise Beans 客户端使用的集群名称由通道的实际集群名称决定,如
jgroups子系统中所配置。 -
JBoss EAP 7.1 及更高版本仍允许您设置
max-size属性来控制传递阈值。
6.2.2. Infinispan 缓存容器传输更改 复制链接链接已复制到粘贴板!
JBoss EAP 7.0 及更新版本之间的行为更改需要在批处理模式下执行对缓存容器传输协议的更新,或使用特殊标头。此更改还影响用于管理 JBoss EAP 服务器的工具。
以下是用于在 JBoss EAP 7.0 中配置缓存容器传输协议的管理 CLI 命令示例。
/subsystem=infinispan/cache-container=my:add() /subsystem=infinispan/cache-container=my/transport=jgroups:add() /subsystem=infinispan/cache-container=my/invalidation-cache=mycache:add(mode=SYNC)
/subsystem=infinispan/cache-container=my:add()
/subsystem=infinispan/cache-container=my/transport=jgroups:add()
/subsystem=infinispan/cache-container=my/invalidation-cache=mycache:add(mode=SYNC)
以下是在 JBoss EAP 7.1 中执行相同配置所需的管理 CLI 命令示例。请注意,命令是以批处理模式执行的。
batch /subsystem=infinispan/cache-container=my:add() /subsystem=infinispan/cache-container=my/transport=jgroups:add() /subsystem=infinispan/cache-container=my/invalidation-cache=mycache:add(mode=SYNC) run-batch
batch
/subsystem=infinispan/cache-container=my:add()
/subsystem=infinispan/cache-container=my/transport=jgroups:add()
/subsystem=infinispan/cache-container=my/invalidation-cache=mycache:add(mode=SYNC)
run-batch
如果您不希望使用批处理模式,您可以在定义传输时指定操作标头 allow-resource-service-restart=true。
如果您使用脚本更新缓存容器传输协议,请务必检查它们并添加批处理模式。
6.2.3. 从版本 8.0 及之后的版本中的 EJB 子系统配置更改 复制链接链接已复制到粘贴板!
JBoss EAP 8.0 引入了对可分布式有状态会话 Bean (SFSB)的 Enterprise 3.0.0 (EJB)子系统配置的更改,包括对多个资源的新子系统和更新。JBoss EAP 6 和 7 中使用的几个资源也被弃用。这些更改启用了服务器配置迁移,以确保您的应用程序与未来的主要版本兼容。
JBoss EAP 8.0 将 JBoss EAP 6 和 7 中使用的资源替换为两个新资源,以及一个 distributable-ejb 子系统来配置 SFSB 缓存。下表概述了已弃用的资源和替换它们的新资源。
| 弃用的资源 | 新的不可分布式 SFSB 缓存 | 新的可分布式 SFSB 缓存 |
|---|---|---|
|
|
|
|
|
| 不适用 |
|
非不同 SFSB 缓存 /subsystem=ejb3/simple-cache 相当于 SFSB 缓存 /subsystem=ejb3/cache,在 JBoss EAP 7 中使用,没有定义 passivation 存储。
distributable SFSB 缓存 /subsystem=ejb3/distributable-cache 包含一个可选的 bean-management 属性,引用 distributable-ejb 子系统的对应资源。如果您没有定义资源,则默认为 distributable-ejb 子系统中的 bean-management 资源。
考虑将服务器配置迁移到 JBoss EAP 8.0 中更新的方法。虽然当前发行版本继续使用已弃用的资源,但当它们被删除时,可能不会出现在将来的版本中。
JBoss EAP 7 和首选 JBoss EAP 8.0 配置之间的比较示例如下:
JBoss EAP 7 配置:
/subsystem=ejb3/cache=example-simple-cache:add() /subsystem=ejb3/passivation-store=infinispan:add(cache-container=ejb, bean-cache=default, max-size=1024) /subsystem=ejb3/cache=example-distributed-cache:add(passivation-store=infinispan)
/subsystem=ejb3/cache=example-simple-cache:add()
/subsystem=ejb3/passivation-store=infinispan:add(cache-container=ejb, bean-cache=default, max-size=1024)
/subsystem=ejb3/cache=example-distributed-cache:add(passivation-store=infinispan)
首选 JBoss EAP 8.0 配置:
/subsystem=ejb3/simple-cache=example-simple-cache:add() /subsystem=distributable-ejb=example-distributed-cache/infinispan-bean-management=example-bean-cache:add(cache-container=ejb, cache=default, max-active-beans=1024) /subsystem=ejb3/distributable-cache=example-distributed-cache:add(bean-management=example-bean-cache)
/subsystem=ejb3/simple-cache=example-simple-cache:add()
/subsystem=distributable-ejb=example-distributed-cache/infinispan-bean-management=example-bean-cache:add(cache-container=ejb, cache=default, max-active-beans=1024)
/subsystem=ejb3/distributable-cache=example-distributed-cache:add(bean-management=example-bean-cache)
采用首选 JBoss EAP 8.0 配置可确保您的服务器与最新版本和将来的主版本兼容。您还可以从改进的资源和子系统中受益,用于可分布式 SFSB。