文档库 最新最全的文档下载
当前位置:文档库 › Weblogic内存溢出及JDK选用中间件应用服务器

Weblogic内存溢出及JDK选用中间件应用服务器

Weblogic内存溢出及JDK选用中间件应用服务器
Weblogic内存溢出及JDK选用中间件应用服务器

Weblogic内存溢出及JDK选用中间件应用服务器

前几天部署WebLogic出现线程阻塞情况,查看后台报错:<[STUCK] ExecuteThread: '58' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "697" seconds working on the request "Http Request: aaa.do", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:

后来在公司文档中发现以前所有weblogic的部署使用的JDK都是Sun的,于是没有进行具体的分析就进行了更换。

今天客户报告系统反应极慢,查看后台发现包内存溢出异常,导致整个系统没有反应,于是进行了重启才恢复。

------------------------------------------------------------------------

以下内容转自其他Blog

------------------------------------------------------------------------

场景:

用户培训需要培训环境,培训环境搭好后,由于不常更新跑的时间较长,考验系统稳定性的时候到了,很可惜稳定性这个问题与我们大家的美好愿望一直背道而驰,天天求神拜佛也不行很不给面子,发现了一个原因解决了又出现了其他引起当机的因素,弄得是焦头烂额,下面就是我们发现的一个引起当机的原因,请各位提高警惕。

9月16日系统当机,Weblogic报出https://www.wendangku.net/doc/8b18973403.html,ng.OutOfMemoryError: PermGen space异常,10-15分钟后就会发生<[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <1221538218253> <[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)' has become "unstuck".>的错误,此时domain的控制台已经无法访问。

排查分析:

1、参考tomcatFAQ: https://www.wendangku.net/doc/8b18973403.html,/tomcat/FAQ/Deployment中如下内容:

Why does the memory usage increase when I redeploy a web application?

Because the Classloader (and the Class objects it loaded) cannot be recycled. They are stored in the permanent heap generation by the JVM, and when you redepoy a new class loader is created, which loads another copy of all these classes. This can cause OufOfMemoryErrors eventually.

Tomcat FAQ指出SUN JVM对处于permanent heap generation(默认4M)的内容不做垃圾回收会导致内存溢出错误。

2、在SUN 官方网站找到一个2003年的bug Report,https://www.wendangku.net/doc/8b18973403.html,/bugdatabase/view_bug.do?bug_id=4957990,Synopsis :PermHeap bloat in and only in server VM,直到现在状态还是6-Fix Understood, 没有修复。

解决方案:

根据上面的分析,再结合我们系统的环境(Weblogic 使用Solairs系统安装的JDK5.0)我们可以确定是由于SUN JVM对permanent heap generation 区域的内容不做垃圾回收造成应用动态Load class文件过多引起的OutOfMemory错误。同时提出两套解决方案:

增加PermGen space参数大小

更换不同厂家JVM

考虑由于开发采用JDK1.5,换用其他JVM存在风险,故修改weblogic启动服务调用的批处理setDomainEnv.sh文件,将其中的一截片断进行修改:

if [ "${JAVA_VENDOR}" = "Sun" ] ; then

MEM_ARGS="${MEM_ARGS} ${MEM_DEV_ARGS} -XX:MaxPermSize=128m"

export MEM_ARGS

fi

中MaxPermSize改成1024m,验证问题是否存在。

实施结果:

系统再未出现OutOfMemoryError运行正常.该原因引起的当机问题解决。

从Java的经典书籍到Sun的官方网站都在宣扬Java的优势之一——垃圾回收,“自动释放内存,减轻编程负担”,可是谁能想到Sun的JVM还有这问题——不回收load class 文件而产生的Class类对象。所以不要迷信权威,根据现象一步一步抽丝剥茧、细心求证才是王道!

项目大了以后开发环境频繁deploy会导致weblogic报permGen 错误,查了一下,暂时解决的办法是:

在weblogic/common/bin/commEnv.sh中配置

MEM_ARGS="-Xms32m -Xmx200m -XX:MaxPermSize=128m"

-Xms:内存初始值

-Xmx:内存最大值(不要超过内存的80%)

MaxPermSize:PermGen(Class和Meta存放区域)区域内存最大值。

可调整为:

MEM_ARGS="-Xms512m -Xmx512m -XX:MaxPermSize=256m" -XX:MaxPermSize改为256或512

weblogic中间件介绍

w e b l o g i c中间件介绍 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

目录

一、Weblogic11g概述

编写目的 ■金税三期以后的综税的产品线中间件由原来Weblogic814,全面升级为Weblogic11g,JDK统一使用及以上版本。 ■为了满足三期后运维要,全面提高运维工程师运维能力。本文档全面介绍了Weblogic11g中间件的基础操作。 功能简介 ■支持最新的 Java 平台、企业版 (Java EE) 规范及Web 服务标准,从而可简化开发并 增强互操作性,以支持面向服务的体系结构 (SOA)。 ■领先的可靠性、可用性、可扩展性和业界领先的性能。 主要优势 ■J2EE应用服务器性能记录的保持者 ■应用程序和服务的可用性和运行时间 ■更好地监视和管理生产应用程序 ■更快、更高效的开发-部署-调试周期 ■卓越的最终用户客户端可用性 ■高效快速的服务器管理 ■简化新应用程序和服务的开发 适用范围

■J2EE应用服务器 ■BS三层架构的应用服务器 Weblogic11G新特性 自调优的企业级内核 ?静态的线程池参数可以不进行设置 ?系统自动维护线程池的大小 ?自动记录系统历史的吞吐量和性能统计 ?为了达到资源的最优分配,自动优化服务器 ?没有本地代码 过载保护 ?合理的处理过量的服务–过载保护 ?根据内存与队列容量的极限值的设定拒绝请求 ?通过降低非关键业务系统的使用资源,来保证关键业务系统的正常 ?过载的时候拒绝新的请求而不是降低整个服务器的服务质量 ?优雅的意外处理 ?可以选择当发生死锁、内存溢出等关键错误时,关闭或暂停服务器动态的配置变化 ?事务式的配置变化– all or nothing! ?大部分的变化不需要重启服务器

weblogic内存溢出解决方法

彻底解决Weblogic报出https://www.wendangku.net/doc/8b18973403.html,ng.OutOfMemoryError: PermGen space问题: 打开域下面的bin目录(D:\Oracle\Middleware\user_projects\domains\base_domain\bin)。 编辑setDomainEnv.cmd文件,将以下蓝色的地方设置内存大小改成自己需要的。 set WLS_HOME=%WL_HOME%\server if "%JA V A_VENDOR%"=="Sun" ( set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m ) else ( set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m ) set MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT% set MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT% if "%JA V A_USE_64BIT%"=="true" ( set MEM_ARGS=%MEM_ARGS_64BIT% ) else ( set MEM_ARGS=%MEM_ARGS_32BIT% ) set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m set MEM_PERM_SIZE_32BIT=-XX:PermSize=48m if "%JA V A_USE_64BIT%"=="true" ( set MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT% ) else ( set MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT% ) set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m

应用中间件要求

投标方必须保证本项目所需软件产品获得生产厂家的合法授权,且为最新版本,并在售后服务承诺中保证提供至少一年的免费升级服务和技术支持服务。主要的应用支撑软件要求如下: 一、数据库系统 投标方提供的数据库管理系统需满足以下具体技术要求: 1、基本功能 提供丰富的数据类型支持,提供丰富的内置函数,主要包括:数学函数、字符串函数、日期时间函数、聚集函数、大对象函数等。支持自定义存储过程/函数,支持触发器,支持视图。支持完整性约束,支持事务的4种隔离级别。 支持海量数据存储和管理,数据存储量为32T以上,单个大对象的最大容量要支持到4GB。并发控制支持表锁、行锁和页锁,具有大规模并发处理能力。 支持集中的数据库管理,提供远程跨平台数据库管理工具;提供良好的性能监控、调整手段;提供跨库、跨系统数据管理能力。 2、安全要求 支持强用户身份鉴别:为用户身份鉴别提供口令、指纹和Radius等多种身份鉴别方式,并允许系统管理员自行配置用户身份鉴别类型。 支持自主访问控制机制:利用对象的ACL列表来检查某个用户是否具有对某个对象的某种访问权限,支持强制访问控制机制:提供基于标签的访问控制方式。提供多种加密方式来保证数据存储安全,至少支持外部密钥加密套件和透明加密两种方式。提供基于证书机制的数据加密传输。提供独立的安全审计,支持系统特权审计、用户审计、语句审计和对象审计四种类型的审计,既可以审计执行成功的语句也可以审计执行失败的语句。支持三权分立的安全体系,建立系统管理员、系统审计员、系统安全员的三权分立安全模型,并将访问控制的粒度细化到行级。 3、性能要求 支持多种索引,支持多种查询优化策略,支持存储过程优化、基于代价的查询优化、基于规划的查询优化,支持高效的自动数据压缩。支持物化视图,提供并行查询能力。支持一级及二级水平分区,包括:hash分区,range分区和list

Weblogic中间件运维经验汇总

Weblogic 中间件运维经验汇总 目录 关于Weblogic 参数调优的运维经验 (2) . Weblogic 性能调优的处理方法 (5) . 关于输电项目Weblogic 安装的运维经验 (8) Weblogic 回收数据库连接数配置的方法 (14) 在Apache 和Weblogic 中分别部署静态页面的方法 (17) Weblogic Server 性能调优经验 (20) WeblogicJVM 堆参数设置方法 (24)

关于Weblogic 参数调优的运维经验 报送单位:北京公司审核人:类型:业务应用 关键字:GC垃圾回收 1、引言 为了提高维护人员运维水平,以集中与分享日常运行维护经验为目的,现进行典型经验的编制。 2、现象描述 部分应用服务器出现宕机现象,在F5上查看时已经掉出集群状态。 3、处理过程 停止宕机应用服务器上的Weblogic进程。 /home/weblogic/bea/user_projects/domai ns/pms/bi n/setDomai nEn v.sh文件中的启动内存大小并添加垃圾回收机制,修改后如下: MEM_ARGS="-Xms5248m -Xmx5248m -Xmn 1536m -XX:SurvivorRatio=6 -XX:+UseParNewGC -XX:+UseCo ncMarkSweepGC -XX:CMSFullGCsBeforeCompactio n=20 -XX:+UseFastAccessorMethods -XX:+AggressiveOpts"

3、修改完成后重启Weblogic 服务。 4、原因分析 在收到报警信息后,对后台日志进行查看,报错信息如下: Exception in thread "CBM_ 正常处理任务线程" https://www.wendangku.net/doc/8b18973403.html,ng.OutOfMemoryError: Java heap space at oracle.jdbc.driver.OracleStatement.prepareAccessors(OracleStatement.ja va:868) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatem ent.java:1045) at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPre paredStatement.java:839) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatem ent.java:1132) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrepa redStatement.java:3316) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePrepare dStatement.java:3361)

IIS内存溢出报错解决方案(一)

项目进行SSB改造以后,当客户端从服务器抓起大笔数据的时候,服务器报一个二进制流的错误,这个错误其实是一个内存溢出的错误。 提纲 故障现象 故障分析与解决 Code Review 工具与方法 故障现象 用户反映在进行数据导出时经常出现下面的错误:输入流是无效的二进制格式。开始内容(以字节为单位)是: 53-79-73-74-65-6D-2E-4F-75-74-4F-66-4D-65-6D-6F-72... 坏┏鱿指么砦蠛?/SPAN>,其他后面导出的用户都会出现该错误,导致无法进行操作。 故障分析 System.OutOfMemoryException 发生 53-79-73-74-65-6D-2E-4F-75-74-4F-66-4D-65-6D-6F-72... System.OutOfMemor ... System.OutOfMemoryException 发生的两种情况 应用程序消耗了过多的内存 内存碎片过多 内存Dump分析

有446M的free内存, 但最大的free内存块只有26M 不足64M 。内存碎片问题。 -------------------- Type SUMMARY -------------------------- TotSize ( KB) Pct(Tots) Usage 1b450000 ( 446784) : 21.30% : c940000 ( 206080) : 09.83% : MEM_IMAGE a3c000 ( 10480) : 00.50% : MEM_MAPPED 57824000 ( 1433744) : 68.37% : MEM_PRIVATE -------------------- State SUMMARY -------------------------- TotSize ( KB) Pct(Tots) Usage 2a82f000 ( 696508) : 33.21% : MEM_COMMIT 1b450000 ( 446784) : 21.30% : MEM_FREE 3a371000 ( 953796) : 45.48% : MEM_RESERVE Largest free region: Base 58bb0000 - Size 019f0000 (26560 KB) 内存中最大的一个dataset占用了18M内存,查看内容就是出现异常的导功能的内容sizeof(18e6a408) = 18,437,260 ( 0x119548c) bytes (System.Data.DataSet) … sizeof(18e6a8e0) = 18,437,260 ( 0x119548c) bytes (System.Data.DataTable) 系统中一共加载了6000多种Class,其中有3000多种是 0x0ff286b4 1 32 1 0x0ff2858c 1 32 1 0x0ff28464 1 32 1 0x0ff2833c 1 32 1 0x0ff28214 1 32 1 0x0ff280ec 1 32 1 0x0ff27fc4 1 32 1 0x0ff27e9c 1 32 1 0x0ff27d74 1 32 1 0x0ff27c4c 1 32 1 IIS日志分析 平均每天点击数:502,708 一共有 5,525 个IP访问过系统,平均每天有2,658 个访问 最大点击发生在 2007-11-19 达到 2,481,749次

登入用友T3软件提示错误;“内存溢出”

登入用友T3软件提示错误;“内存溢出” 登入用友T3软件提示错误;“内存溢出” 系统缺少ufrtprn.ocx组件造成的。首先把c:\windows\system32\ufcomsql\ufrtprn.ocx 这个文件复制到其他地方,再用正常的文件(下面的附件)替换一下,然后重新注册,注册如下:如果操作系统是XP或2003,则:开始–运行 –regsvr32c:\windows\system32\ufcomsql\ufrtprn.ocx;如果操作系统是WINDOWS2000,则:开始–运行–regsvr32c:\winnt\system32\ufcomsql\ufrtprn.ocx。如果还是不行,那么就建议重新安装软件了。 服务异常了,可能是多种原因造成的,你可以在C:\Windows\System32\UF2000.log,打开UF2000.log查看错误详情再处理,如果你不太熟悉软件或者数据库的话,建议把用友安装目录下的ADMIN全部拷贝出来,然后重新安装软件,然后进行数据库附加即可 试一下: 1:执行系统管理,做初始化操作 2:若方法1未执行初始化,可能是这前做过初始化,开始-运行-regedit确定、找到注册表项:[HKEY_LOCAL_MACHINE\SOFTWARE\UFSoft\UF2000\2.0\Setup],右击删除Setup、再登录系统管理做初始化操作 方法3:若初始化操作建立系统数据库操作失败,可手工建立此系统数据库,还原用友通安装目录\Admin\ Ufsystem.bak文件,还原时数据库名称定义为UFSystem 重启”F8”,回车,进入安全模式,“高级启动选项”,找到“最后一次正确配置”

weblogic中间件常见问题

1Weblogic9.2 在linux下启动很慢 打开setDomainEnv.sh 增加-Djava.security.egd=file:/dev/zero 修改参数为 JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.security.egd=file:/dev/zero" 2Windows x64 jrockit 启动3000M 报OutOfMemory https://www.wendangku.net/doc/8b18973403.html,ng.OutOfMemoryError: class allocation, 153359080 loaded, 154140672 footprint JVM@check_alloc (src/jvm/model/classload/classalloc.c:118). 19416 bytes 通过修改启动内存,设置4G以上 3后台日志出现以下报错 User does not have permission on weblogic.management.home to perform lookup operation 1、网上找到的解决方案是: 打开weblogic控制台,点击你部署工程的那个domain,在右边主页的下面有一个“View Domain-wide Security Settings”连接,点开它,看看复选框“Anonymous Admin Lookup Enabled”前面是没选的,把它勾上。 2、使用了1中的解决方案还是报这个错误,经过高手提醒后发现原因: 如果一个weblogic.xml中包含以下的内容: true 这个配置的意思是使weblogic优先加载应用WEB-INF/lib下面的jar包。如果你在部署一个应用的时候,应用中weblogic.xml中已经包含这句,则 很有可能weblogic报异常,因为weblogic启动时已经加载了默认的jar,当扫描到这个weblogic.xml的时候,又被告知要先加载WEB-INF/lib下面的jar包。 这个时候weblogic就不知道怎么办了。遇到这样的问题,我们可以先将weblogic.xml中的这段配置剪切出来部署,当部署成功后,关闭weblogic服务器, 再将这段话粘贴回weblogic.xml就可以了,也就是说,应用至少要先部署成功才可以。 3、局出现在的报错为,恢复域到新的环境后,新环境里只有一个weblogic用户,而IIOP使用了其它用户,但 用户不存在当前域里,所以报错 4开启管理端口https 9002后,管理服务器重启无法启动 <2014-8-6 下午03时14分21秒CST> <2014-8-6 下午03时14分21秒CST> <2014-8-6 下午03时14分21秒CST>

Oracle中间件WebLogic 12c维护保养手册

Oracle 中间件 WebLogic 12c 维护保养手册

目录 1日常监控及JVM查看工具 (3) 1.1安装 (3) 2VNC的安装及使用 (3) 2.1安装 (3) 2.2启动vnc (3) 2.3运行VNC Viewer客户端 (3) 2.4查询vnc服务 (4) 2.5停止vnc服务 (5) 2.6增加vnc服务终端 (5) 3服务器相关参数配置 (5) 3.1文件句柄数:根据实际服务器情况配置。 (5) 4常见问题及处理办法 (5) 4.1修改系统字符编码 (5) 4.2手工删除DOMIAN的方法 (6) 4.3域服务器启动端口冲突 (6) 4.4启动后可刷新页面,查看服务状态 (6) 4.5不重启服务情况下,替换静态文件 (6) 4.6weblogic改为开发模式 (7) 4.7版本管理 (7) 4.8使用部署的目标定义的默认值的情况下,清理缓存文件路径 (7) 4.9启动server,server**.out日志文件中包含乱码 (7) 4.10weblogic.xml文件说明 (7) 4.11weblogic控制台密码修改 (8) 4.12节点管理器配置文件说明 (9) 4.13设置GC日志的打印参数 (9) 4.14部署模式设置 (9)

1日常监控及JVM查看工具 1.1安装 2VNC的安装及使用 2.1安装 Linux系统默认已安装vnc服务器端。 2.2启动vnc 若未用vncpasswd设置密码,则第一次运行vncserver时,会提示设置密码,再次确定密码,并分配终端编号。 输入命令:vncserver You will require a password to access your desktops. Password:输入连接密码 Verify:再次输入密码 xauth: creating new authority file /webapp/.Xauthority New 'gd-webapps01:1 (webapp)' desktop is gd-webapps01:1 分配终端编号 Creating default startup script /webapp/.vnc/xstartup Starting applications specified in /webapp/.vnc/xstartup Log file is /webapp/.vnc/gd-webapps01:1.log 2.3运行VNC Viewer客户端 在Microsoft Windows上运行VNC Viewer “vncviewer.exe”,系统会出现”Connection details”对话框 在“Connection details”对话框中的“VNC server”文本框中输入VNC Server的IP地址:终端编号,单击“连接”按钮,再输入密码后,进入vnc操作界面。

Office2016 Excel的VBA打开显示内存溢出解决办法

Office2016 Excel的VBA打开显示内存溢出解决办法 1、在excel开发工具中打开查看代码显示内存溢出 刚安装完office2016,但是Excel中的Visual Basic却不能用。原因是 加载路径有问题,以前装了WPS软件,加载路径在WPS文件夹里面。都是WPS 搞的鬼,解决办法是,通过修改注册表的键值到VBE6EXT.OLB所在目录即可。2、解决方法 打开注册表:HKEY_CLASSES_ROOT\TypeLib{0002E157-0000-0000-C000-000000000046}\5.3\0\win32,我右侧数据显示加载路径是 “C:\Users\Administrator\AppData\Local\Kingsoft\WPS Office\10.1.0.5554\office6\vbe6ext.olb”将之修改为你VBE6EXT.OLB文件路径,我的是“C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB”(不知道在哪儿话,直接搜索就好了,VBA6不记得是否是我自己加的了,反正路径下有这个文件,在哪都一样。该方法实测有效) 3.其他方法 (1)卸载重装 点评:这个办法有时候管用,有时候也不管用,视具体情况而定,但个人不建议采用,因为这样的永远都让你学不到东西。 (2)移动VBE6EXT.OLB文件到C:\Program Files\Common Files\microsoft shared\VBA\VBA7 点评:“VBE6EXT.OLB”“VBA7”这两个文件在哪,一搜索便知,据说解决了部分的问题,但有的人电脑里没有VBA7这个文件夹,就无从下手了,亲测新建一个VBA7文件夹貌似也不可以,并非通用方法。

JAVA内存溢出解决方案

JAVA内存溢出 解决方案 1. 内存溢出类型 1.1. https://www.wendangku.net/doc/8b18973403.html,ng.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了也会导致这块内存的占用过多造成溢出,或者tomcat热部署时侯不会清理前面加载的环境,只会将context更改为新部署的,非堆存的内容就会越来越多。 PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。 一个最佳的配置例子:(经过本人验证,自从用此配置之后,再未出现过tomcat死掉的情况) set JAVA_OPTS=-Xms800m -Xmx800m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m 1.2. https://www.wendangku.net/doc/8b18973403.html,ng.OutOfMemoryError: Java heap space 第一种情况是个补充,主要存在问题就是出现在这个情况中。其默认空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。如果内存剩余不到40%,JVM就会增大堆到Xmx设置的值,内存剩余超过70%,JVM就会减小堆到Xms设置的值。所以服务器的Xmx和Xms设置一般应该设置相同避免每次GC后都要调整虚拟机堆的大小。假设物理内存无限大,那么JVM内存的最大值跟操作系统有关,一般32位机是1.5g到3g之间,而64位的就不会有限制了。

第1章:中间件技术介绍

第一章:中间件技术介绍 1.1两层结构与三层结构 长期以来,我们一直使用着"客户端/服务器"的两层结构,这种两层的结构曾让无数人为之兴奋和惊叹,即客户端提供用户界面、处理业务逻辑,数据库服务器接受客户端SQL 语句并对数据库进行查询,更新等操作,然后操作结果返回给客户端,如图所示。 在一个比较简单的计算机应用系统中,采用两层体系结构的确给人们带来了相当的灵活性。但随着计算机应用水平的飞速发展、企业信息化水平的不断深入、企业客户的不断增加,以及新业务的不断出现,越来越多的用户对计算机应用系统提出了更高的要求: 1.要能够同时支持成千上万乃至更多用户的并发服务请求 2.由单一的局域网向跨多个网络协议的广域网扩展 3.不仅要支持一般的信息管理,而且还要支持关键业务的联机交易处理 4.从支持单一的系统平台和数据源转向支持异构的多系统平台和多数据源 面对用户的新需求,二层结构的应用模式由于采用客户机与服务器直接联接的方式形成了其固有的一些缺陷: 1.难以维护 client/server结构用户界面、业务逻辑和数据逻辑相互交错,通常在第一次部署的时候比较容易,但难于升级或改进,而且经常基于某种专有的协议(通常是某种数据库协议)。它使得重用业务逻辑和界面逻辑变得非常困难。 2.难以扩展 随着系统的升级,系统复杂程度大大增加,难以扩展,另外它是一个封闭的系统,很难与其他的应用系统实现互操作。 3.安全性差 客户端程序可以直接访问数据库,可通过编程语言或数据库提供的工具直接对数据库进行操作,不安全

4. 性能不好 客户端直接与数据库建立连接,当有大量的并发用户存在时,会使数据库不堪重负,性能迅速下降,甚至当机。 三层结构 为解决传统二层模式与应用需求日益突出的矛盾,以交易中间件为基础框架的三层应用模式应运而生,三层结构以中间层管理大量的客户端并为其联接、集成多种异构的服务器平台,通过有效的组织和管理,在极为宽广的范围内将客户机与服务器进行高效组合。同时中间件开创的以负载平衡、动态伸缩等功能为代表的管理模式,已被广泛证实为建立关键业务应用系统的最佳环境,使在二层模式下不可能实现的应用成为可能,并为应用提供了充分的扩展余地。这种模式的成功应用已为许多国际大型企业在应用的开发和部署方面节省了大量的时间和金钱。由此促使越来越多的系统开发商和用户采用三层结构模式开发和实施其应用。 三层客户机/服务器模式的核心概念是利用中间件将应用的用户界面、业务逻辑和数据逻辑分为三个不同的处理层,如图所示. 1.表示层(用户界面):它的主要功能是实现用户交互和数据表示,为以后的处理收集数据,向第二层的业务逻辑请求调用核心服务处理,并显示处理结果。这一层通常采用VB,PB,DELPHI等语言编写,或采用浏览器实现 2.中间层(业务逻辑):实现整个应用系统核心业务逻辑,通常把业务逻辑划分成一个个独立的模块,用中间件提供的API结合数据库提供的编程接口实现。客户端通过调用这些模块实现相应的业务操作。 3.数据层(数据逻辑):数据库负责管理整个应用系统的数据资源,完成数据操作。中间层上应用程序在处理客户端的请求时,通常要存取数据库。 随着市场竞争的日益加剧和企业电子信息化建设的不断深入,高度灵活、能快速部署新服务和新应用的三层结构应用系统将成为企业信息化的必由之路。采用以中间件为基础的三层结构来架构的应用系统不但具备了大型机系统稳定、安全和处理能力高等特性,同时拥有开放式系统成本低、可扩展性强、开发周期短等优点。可以很好解决两层结构所面临的问题。中间件作为构造三层结构应用系统的基础平台,在三层结构中起着关键的作用,下一节我们将对中间件技术做一个概括性的介绍。

weblogic中间件通用应急处置预案

Weblogic中间件(含业务应用)通用应急预案 一、应急处置原则与工作流程 国网信息系统中间件主要采用weblogic集群方式部署,通过中间件控制台对各应用节点进行统一管理和监控,本次中间 件应急预案以“先抢通、后抢修”为处理原则,首先恢复业务 应用,保存相关日志,后期再根据日志进行详细分析和故障定 位。 weblogic中间件是应用程序的发布平台,相对比较稳定。 业务应用均通过weblogic中间件进行发布,通过weblogic中间 件的JDBC等配置,实现前端应用和后台数据库之间的交互。因 此不管是程序代码问题、硬件问题、数据库问题均有可能体现 在weblogic中间件节点异常;并且由于程序代码效率低下、参 数配置不当,也会导致weblogic中间件节点异常。这种情况下,重启异常weblogic节点,释放资源,是最快的恢复业务的应急 手段。具体原因可以通过备份日志,事后进行分析排查。 本应急预案中涉及到的程序包路径,均是根据信通公司weblogic中间件安装规中指定的路径。如果未按照规安装的中 间件,请咨询对应系统专责协助处理。 二、weblogic中间件故障应急场景 故障应急处理步骤6步: 1、使用IE浏览器访问节点应用确认节点可用性。 2、登陆weblogic控制台确认节点状态。

3、收集故障点日志,备份节点日志。 4、查看节点日志,根据报错信息确定故障原因。 5、根据故障原因,执行应急操作。 6、组织人员进行具体原因分析并整改。 三、故障场景 Weblogic中间件日志文件中常见错误如下:

ption: Unable to obtain lock on /home/weblogic/bea/user_projects/dom ains/bzcb_domain/servers/AdminServer/ tmp/AdminServer.lok. Server may already be running 16 13 因硬件或者系统故障,应用服务器全部无 法启动 四、应急处理步骤 1.使用IE登陆访问对应故障节点应用地址,验证故障现象,防止误 告警出现。 2.登录weblogic控制台,确认故障节点名称。 使用IE浏览器,访问weblogic控制台IP:端口,根据异常端口号确认异常节点名称,如下图。 3.使用weblogic用户登陆操作系统。 4.备份对应节点日志。 $ cd /app/logs/hqgl/server1.log ---进入对应日志目录 $ cp –r server1.log 20140808server1.log -----按照日期备份节点日志5.查看节点进程状态。 $ ps –ef|grep server1 (server1为节点名称) 如果返回值为空,如下,则执行步骤12: weblogic 59086 2803 0 22:12 pts/1 00:00:00 grep server1 如果返回值不为空,如下,则执行步骤11:

apache服务器出现内存溢出的解决方法

apache服务器出现内存溢出的解决方法 2011-10-08 14:26 Tomcat内存溢出的原因 在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存溢出是不一样的,当然处理方式也不一样。 这里根据平时遇到的情况和相关资料进行一个总结。常见的一般会有下面三种情况: 1.OutOfMemoryError: Java heap space 2.OutOfMemoryError: PermGen space 3.OutOfMemoryError: unable to create new native thread. Tomcat内存溢出解决方案 对于前两种情况,在应用本身没有内存泄露的情况下可以用设置tomcat jvm参数来解决。(-Xms -Xmx -XX:PermSize -XX:MaxPermSize) 最后一种可能需要调整操作系统和tomcat jvm参数同时调整才能达到目的。 第一种:是堆溢出。 原因分析: JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。 在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。 Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。 没有内存泄露的情况下,调整-Xms -Xmx参数可以解决。 -Xms:初始堆大小 -Xmx:最大堆大小 但堆的大小受下面三方面影响:

中间件介绍

中间件介绍 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

中间件介绍 1、Ice: ICE(Internet Communications Engine)是ZeroC提供的一款高性能的中间件,基于ICE可以实现电信级的解决方案。在设计网站架构的时候可以使用ICE实现对网站应用的基础对象操作,将基础对象操作和数据库操作封装在这一层,在业务逻辑层以及表现层(java,php,,python)进行更丰富的表现与操作,从而实现比较好的架构。基于ICE的数据层可以在未来方便的进行扩展。ICE支持分布式的部署管理,消息中间件,以及网格计算等等。 Zeroc推出的一种分布式的面向对象中间件,解决分布式的异构计算。可以用 C++,Java,c#等进行分布式的交互计算。 主要设计目标是: ·成为适用于异种环境的平台。 ·具有一组完整的特性,支持广泛的领域中的实际的的开发。 ·去掉不必要的复杂性,使平台更易于学习和使用。 ·是一种在、内存使用和CPU开销方面都很高效的实现。 ·是一种具有内建安全性的实现,使它适用于不安全的公共网络。 2、JBoss: 是一个基于J2EE的的。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用,而不用支付费用。JBoss是一个管理EJB的容器和服务器,支持EJB 、EJB 和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。 在J2EE领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。 另外,JBoss应用服务器还具有许多优秀的特质。 JBoss运行后后台管理界面 其一,将具有革命性的JMX服务作为其; 其二,本身就是(Service-Oriented Architecture,); 其三,具有统一的类装载器,从而能够实现应用的和热卸载能力。 因此,高度模块化的和松耦合。JBoss应用服务器是健壮的、高质量的,而且还具有良好的性能。 1、JBoss是免费的,J2EE的实现,通过许可证进行发布。但同时也有的,开源和闭源流入流出的不是同一途径。 2、JBoss需要的内存和硬盘空间比较小。 3、安装便捷:解压后,只需配置一些即可。 4、JBoss支持"热部署",部署BEAN时,只拷贝BEAN的文件到部署路径下即可自动加载;如果有改动,也会自动更新。 5、JBoss与Web服务器在同一个中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。

weblogic中间件通用应急处置预案

Weblogic中间件(含业务应用)通用应急预案一、应急处置原则与工作流程 国网信息系统中间件主要采用weblogic集群方式部署,通过中间件控制台对各应用节点进行统一管理和监控,本次中间件应急预案以“先抢通、后抢修”为处理原则,首先恢复业务应用,保存相关日志,后期再根据日志进行详细分析和故障定位。 weblogic中间件是应用程序的发布平台,相对比较稳定。 业务应用均通过weblogic中间件进行发布,通过weblogic中间件的JDBC等配置,实现前端应用和后台数据库之间的交 互。因此不管是程序代码问题、硬件问题、数据库问题均有可能体现在weblogic中间件节点异常;并且由于程序代码效率 低下、参数配置不当,也会导致weblogic中间件节点异常。 这种情况下,重启异常weblogic节点,释放资源,是最快的 恢复业务的应急手段。具体原因可以通过备份日志,事后进行分析排查。 本应急预案中涉及到的程序包路径,均是根据信通公司weblogic中间件安装规范中指定的路径。如果未按照规范安装的中间件,请电话咨询对应系统专责协助处理。 二、weblogic中间件故障应急场景 故障应急处理步骤6步: 1、使用IE浏览器访问节点应用确认节点可用性。

2、登陆weblogic控制台确认节点状态。 3、收集故障点日志,备份节点日志。 4、查看节点日志,根据报错信息确定故障原因。 5、根据故障原因,执行应急操作。 6、组织人员进行具体原因分析并整改。 三、故障场景 Weblogic中间件日志文件中常见错误如下:

12 VM Version 1.5.0_12-b04 from Sun Microsystems Inc.> <2014-8-11 下午04时50分58秒 CST>

系统应用服务器内存溢出解决报告

XXX系统应用服务器内存溢出解决报告 xxxx股份有限公司 2010.9

目录 第一章问题现象与分析 (2) 1.1、问题现象 (2) 1.2、通常导致这种现象的原因 (2) 1.3、xxx社保宕机现象对比分析 (3) 第二章解决方法路线图 (4) 2.1 jvm的调整 (4) 2.2 减少jvm内存使用 (5) 2.2.1 加快db访问速度,减少中间件并发业务量 (5) 2.2.2 限制sql返回结果集 (6) 2.2.3 减少业务会话中存放的对象 (6) 2.3 补救措施 (6) 第三章、解决结果与进一步建议 (6) 3.1 解决结果 (6) 3.2 进一步建议 (7) 第一章问题现象与分析 1.1、问题现象 XXX应用服务器经常有内存溢出、系统没有响应的现象,尤其在每月的月末最为明显。 目前的应用服务器有三种类型,其中ibm和linux应用服务器报告频繁出现内存溢出或没有响应的现象,hp unix应用服务器相稳定。在出现问题期间Weblogic无法响应任何客户端请求,大量请求加载到了这台没有响应的Server上,最后只有杀掉并重启这台应用服务器。 1.2、通常导致这种现象的原因 WLS Server 没响应可能的几种原因:

1、繁重的I/O,呼叫DB时间过长导致中间件内存耗尽,server没有响应。 2、程序死循环,loop-backs,这种情况cpu很忙,系统没有响应。 3、连接到外部server,没响应,由于网络等原因 4、2个以上的执行者同步死锁 5、业务量过大,全部线程都被占用,出现队列等待现象 6、读写本地I/O,发生阻塞 WLS Server 宕机的原因: OutOfMemory JNI程序 jvm的bug os的bug 1.3、xxx社保宕机现象对比分析 ?应用服务器没有响应分析 通过初步判断,对于xxx应用服务器没有响应的情况可以做如下排出法解决: ――程序死循环 这种情况会导致cpu非常繁忙,而通过目前观察,每次系统没响应的时候,cpu没有一直100%忙,另外,对出现问题时的java core分析没有发现这类线程,因此可以基本排除这种可能,。 ――连接到外部server,没响应,由于网络等原因 目前我们的业务基本都是直接通过中间件访问数据,没有通过应用服务器间调用或多数据库调用的,基本排除这种可能。 ――2个以上的执行者同步死锁 这种情况有可能,但比较难找,一般都是业务高峰的时候才有可能出现,跟应用人员了解后得知我们很少使用同步方式实现对资源的共享。另外通过对javacore进行分析,并未发现同步造成的死锁现象。 ――业务量过大,全部线程都被占用,出现队列等待现象 通过观察我们的业务量在高峰时确实很大,但由于我们配置的线程数都很高,尽管出现宕机时也没有达到配置的上线,所以这个方面可以被排除。 ――繁重的I/O,呼叫DB时间过长导致中间件内存耗尽 由于我们经常有新业务变更,尤其近期还有居民医保业务上线,因此I/O问题导致

相关文档