arm926ej_EJB超时策略:它们如何提供帮助?

arm926ej

EJB 3.1在其API中引入了与超时相关的注释。

  • @AccessTimeout
  • @StatefulTimeout

让我们快速看一下它们是什么以及它们为什么重要

@AccessTimeout

指定一个排队请求(等待另一个线程完成)超时的时间段。

当您的会话bean实例被并发请求轰炸时,EJB容器通过序列化这些调用(即阻塞其他线程直到当前线程完成执行)来确保完整性。 您可以使用此批注进一步完善此行为。

哪些bean可以利用此注释?

这适用于

  • 有状态的 (@Stateful)Bean和
  • 配置了容器托管的并发选项(ConcurrencyManagementType.CONTAINER)的Singleton bean(@Singleton)

它为什么如此重要 ?

由于EJB容器对并发请求进行了序列化,因此具有此批注可确保不会永远阻止潜在的(等待)线程,并有助于定义并发策略

我可以在哪里放置此注释?

  • 在类上–全局适用于所有方法
  • 在特定方法上
  • 在特定方法上覆盖类级别注释的设置

如何使用它 ?

您可以使用此批注的value和unit元素定义其行为

这里有一些选择

  • @AccessTimeout(0) –这意味着您的方法根本不支持并发访问,并且客户端最终将收到java.ejb.ConcurrentAccessException
  • @AccessTimeout(-1) –您的方法将无限期阻塞(我不认为这是个好主意!)
  • @AccessTimeout(5000) –如果有机会,方法将在队列中的下一个线程(如果有)之前等待5000 ms(5秒)

几件事要注意

  • unit元素的默认值为java.util.concurrent.TimeUnit.MILLISECONDS
  • 小于-1的超时值无效

@StatefulTimeout

定义驱逐空闲状态会话Bean的阈值限制,即在特定时间间隔内未收到客户端请求的Bean

它为什么如此重要 ?

假设您有一个有状态的会话Bean处理用户注册工作流程。 用户在特定时间间隔内处于非活动状态(可能正在执行其他操作)。 您希望有状态会话Bean在内存中活动多长时间? 配置此注释可以帮助防止不活动的Bean实例占用主内存。

我可以在哪里放置此注释?

与@AccessTimeout批注相同的规则!

如何使用它 ?

您可以使用此批注的value和unit元素定义其行为

这里有一些选择

  • @StatefulTimeout(0) –这意味着您的bean实例将在包含此批注的方法完成后立即删除
  • @StatefulTimeout(-1) –您的方法对超时不敏感(固执的人!)
  • @StatefulTimeout(15000) –方法将等待15000毫秒(15秒)以用于客户端请求,然后该方法将成为驱逐对象

几件事要注意

  • unit元素的默认值为java.util.concurrent.TimeUnit.MILLISECONDS
  • 小于-1的超时值无效

干杯!

翻译自: https://www.javacodegeeks.com/2015/04/timeout-policies-for-ejbs-how-do-they-help.html

arm926ej

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html页面加载完成后会触发的事件_前端隐秘角落 - 页面渲染

前言如图所示,webkit内核浏览器的渲染过程(解析HTML,构建DOM树,解析CSS,构建CSSOM树 ,构建render树,布局layout,绘制painting),这些过程理解起来可能有些抽象,今天我们一…

计算机进管理提示找不到入口,win10系统开机提示xxxdll模块已加载但找不到入口点的教程...

有关win10系统开机提示xxxdll模块已加载但找不到入口点的操作方法想必大家有所耳闻。但是能够对win10系统开机提示xxxdll模块已加载但找不到入口点进行实际操作的人却不多。其实解决win10系统开机提示xxxdll模块已加载但找不到入口点的问题也不是难事,小编这里提示两…

十大经典排序,你真的都会了吗?(源码详解)

点击蓝字关注我们一、前言:排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键…

jvm 架构_不可变的基础架构,热部署和JVM

jvm 架构您是否在生产中部署和取消部署基于JVM的应用程序(无论JVM容器/无容器)? 也就是说,当您拥有某个应用程序或服务的新版本时,是否通过“取消部署”和“热部署”该应用程序的新更新版本来更改正在运行的JVM&#x…

c语言默认参数_5.1 C++有默认参数的函数

点击上方“C语言入门到精通”,选择置顶第一时间关注程序猿身边的故事作者闫小林白天搬砖,晚上做梦。我有故事,你有酒么?C有默认参数的函数在函数调用时形参从实参获取值,因为实参的个数要和形参相同,但有时…

计算机组成原理唐朔飞课后答案第六章,计算机组成原理第六章部分课后题答案(唐朔飞版)...

计算机组成原理第六章部分课后题答案(唐朔飞版) 6.4 设机器数字‎长为8位(含1位符号‎位在内),写出对应下‎列各真值的‎原码、补码和反码‎。 -13/64,29/128,100,-87 解:十进制数 二进制数 原 码 反 码 补 码 -13/64 …

jboss eap 7.0_是时候抛弃Java 7 – JBoss EAP 6.4了!

jboss eap 7.0这一周真是太棒了。 JBoss EAP 6.4已发布,在众多技术增强和新功能中 ,最大的是:Java 8已添加到受支持的配置列表中。 其中包括Oracle JDK和IBM JDK。 Java SE 7公开更新结束通知 2015年4月之后,Oracle将不再将Java …

C语言史上最愚蠢的BUG ???

点击蓝字关注我们本文来自“The most stupid C bug ever”,很有意思,分享给大家。我相信这样的bug,就算你是高手你也会犯的。你来看看作者犯的这个Bug吧。。首先,作者想用一段程序来创建一个文件,如果有文件名的话&…

python 字符串转日期_我总结的130页Python与机器学习之路V1.2.pdf,都是干货!

告别枯燥,通过学习有趣的小例子,扎实而系统的入门Python,从菜鸟到大师,个人觉得这是很靠谱的一种方法。通过一个又一个的小例子,真正领悟Python之强大,之简洁,真正做到高效使用Python.两周前发出…

大学计算机需要论文吗,大一新生刚开学,是否有必要带电脑?听听辅导员的建议,非常中肯...

原标题:大一新生刚开学,是否有必要带电脑?听听辅导员的建议,非常中肯各大高校的录取工作正在如火如荼的进行,很快考生们就能接到来自各个学校的录取通知书。对于考生来说,没有什么事情会比被心仪的大学录取…

计算机系统是连续系统,连续系统的计算机模拟

连续系统的计算机模拟 (36页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!29.9 积分 第2章 连续系统的计算机模拟本章讨论连续系统的模拟技术,由于这类系统中状态随时间连续动态地变化&…

ae合成设置快捷键_教程|AE教程第三波:必须掌握的关键帧之基础设置

该如何高效的学习AE?星驰君认为知其然还需知其所以然正确的学习顺序应该是了解核心原理,掌握基本操作,案例实战模仿比如,想要更好的掌握和运用关键帧来制作更复杂的效果。就先要知道关键帧是什么关键帧:计算机动画术语…

gradle入门_Gradle入门:集成测试

gradle入门因为Java项目的标准项目布局仅定义了一个测试目录( src / test ),所以我们没有将集成测试添加到Gradle构建中的标准方法。 如果要使用标准项目布局,则可以使用以下选项之一将集成测试添加到Gradle构建中: …

老兵精讲:高质量C语言编程的10条规范

点击蓝字关注我们C语言编码规范10条分享给大家,还是可以规避掉很多bug的!1、最重要的规则编写代码时最重要的一条规则是:检查周围的代码并尝试模仿它。作为维护人员,如果收到的补丁明显与周围代码的编码风格不同,这是令…

认识计算机系统反思,《计算机系统组成》教学反思

第1篇:《计算机系统组成》教学反思《计算机系统组成》—计算机硬件和软件知识一课是七年级信息技术中《信息技术基础》里的知识。在学习这之前,学生虽然都使用过计算机,但对于计算机的系统组成、主机内的硬件知识基本知之甚少。但是对这些知识…

springboot需要tomcat服务器吗_SpringBoot学习(二):内嵌服务器引擎(Tomcat,Jetty)实现原理...

概述SpringBoot使用main方法启动的一个重要特性是,不需要打包成war部署到Tomcat这种Servlet容器中,而是只需打包成jar,然后通过java或mvn等命令运行这个jar包,然后应用就可以在指定的端口监听客户端的连接请求了。在SpringBoot内部…

java8 函数式编程_使用Javaslang进行Java 8中的函数式编程

java8 函数式编程我们非常高兴地在jOOQ博客上宣布一个客座帖子,该帖子由HSH Nordbank的高级软件工程师Daniel Dietrich (三人的丈夫和父亲)撰写。 他目前作为项目负责人和首席开发人员为金融产品创建定价框架。 除工作外,他还对编…

while(1) 和 for(;;)有什么区别?

点击蓝字关注我们有粉丝问了类似这样的问题:while(1) 和 for(;;)它们不都是无限循环吗,作用应该一样啊,它们到底有什么区别?要回答这个问题,其实你各自编写一段while(1) 和 for(;;)的代码,编译对比一下代码…

pycharm ubuntu 安装_Nvidia Jetson Xavier 安装配置(ubuntu 18.04)

0. 简介Xavier 硬件配置开发板 Interfaces1. 刷机刷机准备:Xavier 通过 USB 与主机(host,装有 ubuntu 的电脑)连接;Xavier 通过网线主机连接(直连或连到同一路由器下);Xavier 连接电…

计算机兴趣小组意义,信息技术兴趣小组开展之我见

信息技术学科有别于其他学科。多年来本人一直从事中学信息技术的教学,从简单的DOS平台教到WindowsXP操作系统。我觉得信息技术教育在当今素质教育中是多方面的。中小学信息技术课程重点在培养学生的创新精神和实践能力。但由于受到时间和设备等因素限制,在常规教学中…