无状态EJB:池化和生命周期

无状态EJB池和生命周期的摘要视图(注释)。 对新手有用。 。 。 。 。

EJB池:快速概述

  • EJB实例存储在称为EJB池的位置–这不过是内存中的缓存
  • 无状态EJB通常按需实例化,即,当客户端调用Bean上的方法时。
  • 但是,大多数应用程序服务器还提供了一种功能,可以对其进行配置,以便在启动时可以使用一定数量的实例(例如,在Weblogic中)填充EJB池,这可以在weblogic-ejb-jar.xml中通过声明以下内容进行配置:空闲池中的初始bean中的确切数字。

合并收益

  • 性能提升
  • 客户端不需要等到实例化bean即可为请求提供服务

无状态Bean生命周期

slsb-lifecycle1

NON_EXISTENT –在这种情况下,bean在EJB池中尚不存在(尚未实例化)

不活动 –在这种状态下,EJB实例已经存在于EJB池中,但没有为客户端请求提供服务

BUSY(忙) –调用EJB实例以服务于客户端请求,结果,它进入BUSY状态。

为了服务客户端请求,将调用一个EJB实例,结果,该实例进入BUSY状态。 EJB可以从INACTIVE或NON_EXISTENT状态进入BUSY状态

SLSB状态转换

不忙-顾名思义,池中选择了不活动的bean来满足客户端调用

NON_EXISTENT变为BUSY –创建了一个新的EJB实例来满足客户请求

EJB可以从繁忙状态回到不活动状态,即,在处理了客户端请求之后,实例又回到了池中

在某些情况下,还可以通过配置超时来破坏 EJB实例,该超时迫使应用程序服务器删除池中在特定时间间隔内处于非活动状态的所有EJB实例。 但是,应用服务器确实要确保EJB实例数量不低于允许的实例的最小数量(可配置属性-上面已读)

注意 :这样做主要是为了节省池中的EJB所消耗的内存量,因为它们被缓存在那里。 如果有许多未使用的实例,可以将它们删除以优化内存消耗。 容器可以按需创建新实例

客户端在无状态Bean上调用方法时会发生什么?

场景1 :容器实例化bean的新实例。

可能的原因是

  • 开始时, EJB池中没有bean –在服务器启动时,未指示App Server合并默认数量的bean
  • EJB池中的所有Bean都在忙于处理来自客户端的请求,但是池中的Bean总数小于允许的最大实例数(配置参数)

场景2 :容器返回了bean的现有实例

可能的原因

  • 池中有一定数量的EJB实例可用,并且它们不处于BUSY状态,即它们不参与服务客户机请求。 容器刚刚返回一个这样的实例
  • 池中有一定数量的EJB实例,但是它们都处于BUSY状态,并且已经达到了池中最大允许的bean数。 客户端应用程序必须等待,直到一个这样的Bean变为可用并可以满足客户端请求为止

方案3 :客户端请求不是服务(收到异常)

可能的原因

如果已经达到池中允许的最大数量的Bean,并且在特定时间范围内所有BUSY Bean都不可用。

翻译自: https://www.javacodegeeks.com/2014/05/stateless-ejbs-pooling-and-lifecycle.html

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

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

相关文章

有意思的批处理

echo off setlocal enabledelayedexpansion set b/-\ /-\ ** set 速度1 set 退格 :b for /l %%i in (0,1,200) do call :a %%i goto :b :a set/a a%1%%10 set/a c%a%%%4 if %a% EQU 0 set/p▌<nul if %c% EQU 3 (set/p^|<nul) else (set/p!b:~%a%,1!<nul) ping/n %速度…

1.原生js封装的获取某一天是当年的第几周方法

function getWeek(str){//str格式为yyy-mm-dd//周日归到了本周var dnew Date(str);var dayd.getDay();var originDated.getFullYear() - "01" - "01" 00:00:00;var nowDated.getFullYear() - ((d.getMonth() 1)>9?(d.getMonth() 1):0 (d.getMonth() 1…

代码整洁之道——有意义的命名(持续更新中)

我们给变量、参数、类、包&#xff0c;源代码和源代码所在目录命名&#xff0c;也给jar文件、war文件和ear文件命名。 We name variables, parameters, classes, packages, source code, and the directory where the source code resides, as well as jar files, war files, a…

json - json对象和json字符串直接的相互转换

一、json字符串转json对象 1.json字符串转json对象 var obj JSON.parse(str); //由json字符串转换为json对象 2.获取对象的value console.log(obj.attr); console.log(obj["attr"]); 二、json对象转json字符串 var jsonstr JSON.stringify(obj); / 转载于:https://…

android根据拍摄url获取格式,Android如何通过URI获取文件路径示例代码

前言最近在工作的过程中&#xff0c;遇到不同 Android 版本下 URI 采用不同方式来获取文件路径的问题。因为需求的原因&#xff0c;要求拍照上传或者从相册中选择图片上传&#xff0c;而且图片是需要经过压缩的&#xff0c;大小不能超过2M。很快&#xff0c;拍照的这部分就搞定…

休眠类型初学者指南

基本映射概念 学习Hibernate时&#xff0c;许多人喜欢跳到父子关联&#xff0c;而无需掌握对象关系映射的基础知识。 在开始对实体关联进行建模之前&#xff0c;了解各个实体的基本映射规则非常重要。 休眠类型 休眠类型是SQL类型和Java原语/对象类型之间的桥梁。 这些是Hibe…

fixed 语句(C# 参考)

fixed 语句禁止垃圾回收器重定位可移动的变量。fixed 语句只能出现在不安全的上下文中。Fixed 还可用于创建固定大小的缓冲区。 备注 fixed 语句设置指向托管变量的指针并在 statement 执行期间“钉住”该变量。如果没有 fixed 语句&#xff0c;则指向可移动托管变量的指针的作…

React Antd中样式的修改

如果需要对antd的样式进行修改&#xff0c; 进入你要修改的页面 注意&#xff1a;不能直接在自己的文件下面&#xff0c;加入一个css&#xff0c;修改这个class的样式&#xff0c;应该 加入global限定&#xff0c;global {} , 在{}里面写入 .classname {} 然后在设置css样式…

android /data/data/数据作用,android 清除data/data/ 下其他应用的数据

// 需在源码下编译// 实现。。。private ClearUserDataObserver mClearDataObserver;class ClearUserDataObserver extends IPackageDataObserver.Stub {public void onRemoveCompleted(final String packageName, final boolean succeeded) {/*final Message msg mHandler.ob…

使用Akka简化交易系统

我的同事正在开发一种交易系统&#xff0c;该系统可以处理大量的传入交易。 每笔交易都涵盖一种Instrument &#xff08;例如债券或股票&#xff09;&#xff0c;并且具有某些&#xff08;现在&#xff09;不重要的属性。 他们坚持使用Java&#xff08;<8&#xff09;&#…

【Python】贪心算法入门

一.引言 本文将通过两个问题和两道例题带你入门贪心算法。 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取在当前状态下最优&#xff08;最好或最有利&#xff09;的选择&#xff0c;从而希望导致全局最优解的算法。贪心算法不保证找到全局最优…

ASP.NET MVC+LINQ开发一个图书销售站点(9):编辑目录

编辑目录和新建类似&#xff0c;这里我们用MVC提供的辅助类 1.在Model 的BookShopDBDataContext分部类里添加: 2. 在CategoryController添加如下方法(注意&#xff1a;我们添加了后端验证) 3. 修改View下的EditCategory.aspx. (注意&#xff1a;我们用了MVC提供的辅助类生成Tex…

Jenkins+maven环境部署

选择使用tomcat下运行jenkins项目&#xff0c;安装步骤如下 1. 安装tomcat&#xff0c;查看想要下载的版本 https://mirrors.cnnic.cn/apache/tomcat/ wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-9/v9.0.7/bin/apache-tomcat-9.0.7.tar.gz 2. 安装jdk wget --no-c…

内外边距、浮动、布局相关

关于清除元素的内外边距&#xff1a; 1、行内元素只有左右边距、没有内外边距、内边距在ie6等低版本的浏览器中也会有问题。尽量不要给元素指定行内的内外边距&#xff1b; 2、外边距的合并 使用margin定义块元素的垂直外边距时&#xff0c;可能会出现外边距的合并&#xff…

android根据mac地址连接耳机,Android获取设备IMEI和Mac地址

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;public static boolean checkPermission(Context context, String permission) {boolean result false;if (Build.VERSION.SDK_INT > 23) {try {Class> clazz Class.forName("android.content.Contex…

让vs2008支持jQuery的智能提示!

告诉大家一个非常好的消息&#xff0c;就是现在我们已可以让VS2008同时支持jQuery的智能提示功能啦可以先看看下面的效果图&#xff1a;jquery1.png (18.76 K)2008-3-30 14:37:54jquery2.png (21.18 K)2008-3-30 14:37:54怎样&#xff1f;酷吧&#xff0c;呵呵想实现以上效果只…

编写干净的测试–提防魔术

很难为干净的代码找到一个好的定义&#xff0c;因为我们每个人都有自己的单词clean的定义。 但是&#xff0c;有一个似乎是通用的定义&#xff1a; 干净的代码易于阅读。 这可能会让您感到有些惊讶&#xff0c;但是我认为该定义也适用于测试代码。 使测试尽可能具有可读性是我…

Eclipse创建Java Web项目及基本配置

https://www.cnblogs.com/zzlback/p/8552622.html转载于:https://www.cnblogs.com/aiyowei/p/10428638.html

为什么要使用Vuex?

为什么要使用Vuex? 1. 假如不使用 1.1 父子组件依赖同一个state 1.2 兄弟组件依赖同一个state 2. 用了Vuex之后 3. 方便记忆和理解 更多专业前端知识&#xff0c;请上 【猿2048】www.mk2048.com

十个习惯让你精通新的开发技术

Ben Watson&#xff0c;知名开发者。任职于GeoEye&#xff0c;是其所属开发团队的领导者。本文发表于他自己的博客&#xff0c;阐述了十种学习新技术的方法。 1、要看书 在成千上万的编程图书中&#xff0c;可能很大一部分根本毫无用处。但是仍然有很多图书对你的(编程)能力有很…