如何在ejb 3.0中实现缓存?

2024-02-26

我有一位客户陷入 EJB 3.0 环境中。没有@Singleton,没有bean管理的并发:-(

考虑到ejb规范禁止线程管理和同步,如何实现缓存?本质上,我想要一个非同步对象缓存来执行一些昂贵的操作。


EJB 3.0 规范第 21.1.2 章中规定了使用静态字段和同步的限制。它还解释了原因。

• 企业 Bean 不得使用读/写静态字段。使用 允许只读静态字段。因此,建议 企业 bean 类中的所有静态字段均声明为 Final。

需要此规则来确保一致的运行时语义,因为 而某些 EJB 容器可能使用单个 JVM 来执行所有 EJB 容器 enterprise bean的实例,其他人可以分发实例 跨多个 JVM。

• 企业 Bean 不得使用线程 同步原语用于同步多个执行 实例。

这与上面的原因相同。同步不起作用 如果 EJB 容器将企业 Bean 的实例分布在 多个 JVM。

如果您通过单例 POJO 实现缓存,并且 EJB 容器将 EJB 实例分布在多个 JVM 上(例如在集群环境中),那么您可能会面临每个 JVM 中实际上存在多个缓存实例的风险。

所以这取决于,

  • 如果应用程序未部署在集群环境中,您可以这样做。据我所知,WebLogic 和 GlassFish 在一个 JVM 中运行一个服务器实例。
  • 如果不限制数据一致性,您也可以这样做。通常在谈论“缓存”时是允许的。

如果它不适合您,您可能应该考虑在 EJB 容器之外缓存数据,例如放入 Redis 或 Hazelcast。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在ejb 3.0中实现缓存? 的相关文章

  • 匿名结构和空结构

    http play golang org p vhaKi5uVmm http play golang org p vhaKi5uVmm package main import fmt var battle make chan string
  • Spring Web应用程序在启动时从数据库初始化

    Spring 3 1 汤姆猫 我这里有一个设计问题 数据库中已指定一组类别 这些类别可以被认为是全局的 因为它们可以在整个网络应用程序中使用 我想做的是在服务器启动时读取这些类别并用 Java 填充某种类型的集合 只需要在启动时从数据库读取
  • hibernate 6.0.2.Final 和 spring boot 2.7.0 的entityManagerFactory bean 未配置问题

    所以最近我想升级我的 Spring Boot 项目项目的一些依赖项 特别是这些组件 雅加达 EE 9 弹簧靴2 7 休眠 6 0 2 Final 完成此操作后 所有更新和代码折射 更新将 javax 导入到 jakarta 以及一些 hib
  • Eclipse 中的 Java EE 视角

    我有标准版的 eclipse Galileo 现在我想在上面开发企业应用程序 知道如何获得 Java EE 视角吗 标准版如何安装Java EE工具 我有同样的问题 我首先使用 Ubuntu 软件中心安装了最新的 Eclipse 平台 In
  • 用于层次结构树角色的 Spring Security / Java EE 解决方案

    我知道 Spring Security 非常适合标准角色和基于权限的授权 我不确定的是这种情况 系统中管理着 10 000 名员工 员工被组织成组织结构图 跨部门的谁向谁报告的树 其中一些员工是用户 这些用户仅被允许访问其职责范围内的员工
  • Spring Security 自定义过滤器

    我想自定义 Spring security 3 0 5 并将登录 URL 更改为 login 而不是 j spring security check 我需要做的是允许登录 目录并保护 admin report html 页面 首先 我使用教
  • GWT - 如何组织项目以拥有多个网页以及它们之间的导航

    我是 GET 的新手 顺便说一句 它给我留下了深刻的印象 并且发现它对于像我这样熟悉 C NET 桌面技术并愿意编写 Web 应用程序的人来说非常有吸引力 我根据 GWT Eclipse 向导生成的示例启动了自己的项目 该项目生成带有面板的
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • java异常处理策略[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 生成的序列以 1 开头,而不是注释中设置的 1000

    我想请求一些有关 Hibernate 创建的数据库序列的帮助 我有这个注释 下面的代码 在我的实体类中 以便为合作伙伴表提供单独的序列 我希望序列以 1000 开头 因为我在部署期间使用 import sql 将测试数据插入数据库 并且我希
  • Hashmap并发问题

    我有一个哈希图 出于速度原因 我希望不需要锁定 假设我不介意过时的数据 同时更新它和访问它会导致任何问题吗 我的访问是获取 而不是迭代 删除是更新的一部分 是的 这会导致重大问题 一个例子是向散列映射添加值时可能发生的情况 这可能会导致表重
  • 如何拦截 REST 端点以接收所有标头?

    我当前的代码是 Path login RequestScoped public class LoginResource GET SecurityChecked public Response getUser HeaderParam AUTH
  • 使用@Singleton和@Stateless加载和缓存应用程序范围的数据

    我正在寻找一种优雅的解决方案来解决加载和缓存的老问题static shared应用程序启动时的数据 具有无限的生命周期 我以前的方法是 Spring Singleton Bean 但我现在正在尝试用 Spring Singleton Bea
  • Volatile.Read 和 Volatile.Write 背后的逻辑是什么?

    来自 MSDN Volatile Read 读取字段的值 在需要它的系统上 插入一个 阻止处理器重新排序内存的内存屏障 操作如下 如果在该方法之后出现读或写 代码 处理器无法移动它before这个方法 and Volatile Write
  • 关闭长度未知的通道

    当不了解频道时我无法关闭频道 length package main import fmt time func gen ch chan int var i int for time Sleep time Millisecond 10 ch
  • 如何在 Eclipse 中更改动态 Web 项目的上下文根?

    我在 Eclipse 中开发了一个动态 Web 项目 我可以使用以下 URL 通过浏览器访问该应用程序 http localhost 8080 MyDynamicWebApp 我想将访问URL更改为 http localhost 8080
  • 执行 SELECT 或 INSERT

    我想写一些类似的东西CASE以我想要的方式在 PostgreSQL 中声明SELECT从表中 如果什么也没找到 我想INSERT改为放入表中 我的示例表allocated ideas看起来像这样 challenge id user id i
  • 需要 Spring 3 JSF 2 集成示例

    我想将 Spring 3 Web Flow 2 JSF 2 集成在一起 我需要您向我推荐一个好的教程或示例 提前致谢 UPDATE 我使用了以下示例 它对我来说运行良好 没有任何问题 http www mkyong com jsf2 jsf
  • Wildfly / Undertow :一台主机的多个别名

    In 独立 配置 standalone full xml 我已经声明了以下主机 即works
  • Python 多处理:全局对象未正确复制到子级

    前几天我回答了一个关于SO的问题 https stackoverflow com q 67047533 1925388关于并行读取 tar 文件 这是问题的要点 import bz2 import tarfile from multipro

随机推荐

  • HAML如何识别块的结尾?

    form for subject url gt action gt create do f render partial gt form locals gt f gt f form buttons submit tag Create Sub
  • Neo4j 使用属性过滤器通过多个关系定向路径

    作为 Cypher 和 Neo4j 的新手 我在为我的用例构建查询时遇到问题 我正在构建一个简单的 ACL 访问控制列表 并正在寻找一条通过权限关系向上层次结构的路径 一张图或许能更好地解释它 Key Users gt Blue Group
  • C# 源生成器应该刷新/删除发出的文件

    我创建了一个源生成器来扩展满足某些条件的 部分 类 为了检查和查看生成的代码 我通过将以下内容添加到我的项目中来启用这些文件的发射
  • 如何使用 Spring Data ElasticSearch 为 POJO 定义 ElasticSearch 索引字段名称

    我正在使用 Spring Data ElasticSearch 来执行 CRUD 操作 默认情况下 当使用 Document 注释的 POJO 写入 ElasticSearch 索引时 索引字段名称与 POJO 的 Java 属性名称相同
  • WPF:如何冻结数据网格中的列标题

    如何将我的列标题冻结在DataGrid in my WPF窗口 以便当我向下滚动时 标题仍然可见 Edit 这是我的XAML
  • Scrapy 将子站点项目与站点项目合并

    我试图从子网站中抓取详细信息并与网站中抓取的详细信息合并 我一直在通过 stackoverflow 以及文档进行研究 但是 我仍然无法让我的代码工作 看来我从子网站提取附加详细信息的功能不起作用 如果有人能看一下我将非常感激 coding
  • 测试元素的类型 python tuple/list

    如何验证列表或元组中所有元素的类型是否相同并且属于某种类型 例如 1 2 3 test for all int True 1 3 a test for all int False all isinstance n int for n in
  • 日期输入的 onchange [重复]

    这个问题在这里已经有答案了 可能的重复 当 的值发生更改时 会触发哪些事件 https stackoverflow com questions 3940258 what events does an input type number fi
  • 从 grails 项目执行甘特脚本

    我已经编写了自己的甘特脚本 它可以在命令行中正常工作 现在我需要从 grails 项目运行这个脚本 如下所示 def outputMessage try GroovyScriptEngine engine new GroovyScriptE
  • 如何使用 TFS REST API 获取迭代剩余天数

    我目前正在使用REST API version 2 0并连接到我的 TFS 实例PowerShell 我可以得到以下信息 迭代ID迭代名称队员团队成员每天的容量 使用下面的示例 GET https instance DefaultColle
  • 在 C# 中扩展枚举

    在java中 我习惯于扩展枚举值或重写方法 如下所示 enum SomeEnum option1 sv public String toString return Some value option2 private String Pass
  • Scala:我可以依赖集合中项目的顺序吗?

    这是一个相当不愉快的意外 scala gt Set 1 2 3 4 5 res18 scala collection immutable Set Int Set 4 5 1 2 3 scala gt Set 1 2 3 4 5 toList
  • Firebase 控制台中出现“您的操作被禁止”问题

    我创建了一个 Android 项目 现在我想将 Firebase 添加到我的 Android 项目中 我在 firebase 控制台上注册我的应用程序 现在 当我尝试将 sha 1 密钥添加到项目中时 出现以下错误 我在谷歌和 stacko
  • Reactjs - 必须返回有效的 React 元素(或 null)

    我有以下简单的代码 var data email email protected cdn cgi l email protection email email protected cdn cgi l email protection var
  • 对特定类的通用约束,为什么? [复制]

    这个问题在这里已经有答案了 我一直在阅读有关利用泛型约束的内容 我发现泛型可以被限制为struct class new Class and Interface 前三个背后的原因非常明显 但我实在无法理解why and when约束到一个类
  • javascript中当数组键包含字符串时删除数组键

    我在 javascript 中有一个数组 如下所示 arr md51234 md55234 我试图通过执行以下操作从中删除一个项目 delete arr md51234 但这似乎不起作用 还有其他方法可以删除这个吗 dystroy 提供了答
  • Java 日期和时间 API 有什么问题? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常遇到关于 Java 的负面反馈Date以及其他与日期时间相关的课程 作为一名 NET 开发人员 我无法完全 没有使用过它们 理解它们到底出
  • jQuery.Deferred 异常:$(...).datepicker 不是函数

    提前致谢 我已经搜索并实施了 document ready function ui datepicker datepicker and function if Modernizr inputtypes date input type dat
  • 如何在Netty中使用多个ServerBootstrap对象

    我正在尝试使用 Netty 4 0 24 在一个应用程序 一个主要方法 中创建多个服务器 多个 ServerBootstrap 我看到了这个问题 答案 但它留下了许多未解答的问题 Netty 4 0多端口 每个端口有不同的协议 https
  • 如何在ejb 3.0中实现缓存?

    我有一位客户陷入 EJB 3 0 环境中 没有 Singleton 没有bean管理的并发 考虑到ejb规范禁止线程管理和同步 如何实现缓存 本质上 我想要一个非同步对象缓存来执行一些昂贵的操作 EJB 3 0 规范第 21 1 2 章中规