Weblogic内存溢出及常用参数配置

合集下载

heapdumponoutofmemoryerror 参数使用 -回复

heapdumponoutofmemoryerror 参数使用 -回复

heapdumponoutofmemoryerror 参数使用-回复堆转储(Heap Dump)是一种用于诊断和分析Java应用程序问题的重要工具。

当Java程序运行时发生OutOfMemoryError(内存溢出)错误时,堆转储是非常有用的。

本文将以"heapdumponoutofmemoryerror 参数使用" 为主题,逐步解释使用heapdumponoutofmemoryerror 参数来生成堆转储文件,并且介绍如何使用这些文件进行进一步的分析。

第一步:什么是内存溢出错误(OutOfMemoryError)?内存溢出错误是Java程序在运行时无法分配更多的内存而导致的错误。

这通常是由于应用程序使用的内存超过了Java虚拟机的堆内存配置限制所致。

一旦发生内存溢出错误,应用程序将无法继续执行,并且通常会崩溃。

第二步:为什么要使用heapdumponoutofmemoryerror 参数?当我们遇到内存溢出错误时,通常需要进一步分析问题的根本原因。

这时,我们可以使用Java虚拟机(JVM)的heapdumponoutofmemoryerror 参数来生成一个堆转储文件。

这个文件会显示Java堆的当前状态,包括对象的数量和类型,以及它们之间的引用关系。

第三步:如何使用heapdumponoutofmemoryerror 参数?要使用heapdumponoutofmemoryerror 参数,我们需要在Java应用程序运行时使用适当的命令行参数来启动虚拟机。

通常,我们需要向Java 应用程序的启动命令中添加以下参数:`-XX:+HeapDumpOnOutOfMemoryError`这个参数告诉JVM在内存溢出错误发生时生成堆转储文件。

文件名通常使用默认命名策略,并带有日期和时间戳以区分不同的转储文件。

第四步:如何分析生成的堆转储文件?生成堆转储文件后,我们可以使用各种工具来分析它。

64位weblogic安装部署以及常见问题解决

64位weblogic安装部署以及常见问题解决

64位weblogic11g安装部署以及常见问题解决方案目录(一) 安装 (1)在Windows 64位操作系统安装Weblogic的注意事项 (3)(二) 部署运行 (3)1. 包引入错误 (3)2.乱码现象 (3)3.mime-typeType配置问题 (4)4.应用不存在 (4)5.ClassNotFoundException: org.hibernate.hql.ast.HqlToken (4)6.weblogic部署war包action不能访问问题解决方法[There is no Action mapped fornamespace / and action name] (5)ng.StackOverflowError (5)(一)安装我们在64位的服务器上为提高性能要安装64位的weblogic。

经常在网上看到有人问,weblogic有64位的么?weblogic需要破解么?weblogic有专门的64位版本,这里安装的是weblogic11g,也就是10.3.6版本,12c的版本安装应该类似。

weblogic从bea被oracle收购后,不需要破解,就只有授权。

什么意思呢?就是说从oracle官网上下载的weblogic 就是全功能版本,不管是集群还是其他,功能没有任何限制。

但是如果要用于商业环境,必须要向oracle买license,当然可以偷偷的用,那就是盗版,侵权,有一天oracle可以告的破产……。

1、下载64位weblogic,打下这个地址::// oracle/technetwork/middleware/ias/downloads/wls-main-097127.html,在这里可以看到除了mac os X操作系统外,其他系统的64位都是同一个版本,wls1036_generic.jar。

如下列图,weblogic的下载需要注册一个oracle官网的帐号。

2、下载64位JDK,我们下载的文件wls1036_generic.jar文件里面不包括JDK,如有可能, 请尽量在Windows/Linux平台下使用JRockit虚拟机,下载地址::// oracle/technetwork/middleware/jrockit/downloads/index.html。

Weblogic集群多播配置故障排除

Weblogic集群多播配置故障排除

Weblogic集群多播配置故障排除使用IP 多播时,群集中的WebLogic Server 实例可以共享一个IP 地址和端口号。

此功能使得群集的所有成员可被视为一个实体,并且使得群集成员能够互相通信。

下列部分提供了对IP 多播配置问题进行故障排除的建议:验证多播地址和端口配置识别网络配置问题使用MulticastTest 实用工具调整多播功能调试多播杂项问题多播配置故障排除的其他资源有关在群集中使用和配置多播的常规信息,请参阅群集配置和config.xml。

有关在控制台中配置多播地址的信息,请参阅“管理控制台联机帮助”中的多播。

验证多播地址和端口配置多播问题故障排除过程的第一步是验证您是否正确配置了多播地址和端口。

必须为每个群集正确配置多播地址。

多播地址和端口配置问题属于群集无法启动或者服务器无法加入群集的最常见原因。

对于多播地址要注意下列事项:多播地址必须是介于224.0.0.0 和239.255.255.255 之间的IP 地址,或者具有此范围IP 地址的主机名。

WebLogic Server 使用的默认多播地址是239.192.0.0。

不要使用任何x.0.0.1 多播地址,其中x介于0 和9 之间(包括0 和9)。

可能的错误由于多播配置问题经常会出现下列类型的错误:无法为群集创建多播套接口多播套接口发送错误多播套接口接收错误检查多播地址和端口要检查多播地址和端口,请执行下列操作:通过WebLogic Server 管理控制台检查群集多播地址和端口,或检查config.xml 中<cluster>元素的多播信息。

识别网络配置问题验证了多播地址和端口配置正确之后,请确定网络问题是否正在干扰多播通信。

物理连接确保网络中不存在物理问题。

验证群集中每个承载服务器的计算机的网络连接。

验证网络的所有组件是否正确连接并且运行正常,其中包括路由器和DNS 服务器。

地址冲突网络中的地址冲突可能会对多播通信造成干扰。

IIS内存溢出解决步骤

IIS内存溢出解决步骤

IIS内存溢出解决步骤IIS(Internet Information Services)是一种用于托管和管理Web应用程序的Microsoft Web服务器。

内存溢出是指在运行过程中,应用程序使用的内存超过了系统所分配给它的内存,导致应用程序崩溃或运行缓慢。

解决IIS内存溢出问题需要一系列步骤,下面是一个详细的步骤指南。

1.确认内存溢出问题:首先,需要确认是否存在内存溢出问题。

可以使用Windows任务管理器或性能监视器来监视IIS进程的内存使用情况。

如果发现内存使用率持续增加,并且应用程序出现崩溃、运行缓慢或响应时间变长的情况,那么很可能存在内存溢出问题。

2.分析内存溢出原因:确定了存在内存溢出问题后,下一步是分析其原因。

可以使用性能监视器、IIS日志、事件查看器等工具来收集相关信息。

可能的原因包括内存泄漏、请求处理超时、缓存配置不当等。

3.优化应用程序:一些应用程序代码可能存在内存泄漏问题,这意味着在使用完内存后没有及时释放。

可以通过代码审查、性能剖析器等工具来定位并修复这些问题。

同时,还可以考虑优化数据库查询、减少不必要的HTTP请求等措施来降低内存使用。

4.调整IIS配置:根据分析结果,可能需要调整IIS的一些配置来解决内存溢出问题。

这些配置包括:-提高应用程序池的限制:可以增加应用程序池的内存限制和空闲时间限制,以便更好地适应应用程序的需求。

可以通过IIS管理器或命令行工具来进行配置。

-调整缓存设置:可以减少IIS的缓存大小,或者使用物理磁盘缓存替代内存缓存来减少内存使用。

可以在IIS管理器的配置文件中进行相关设置。

-优化会话状态管理:如果应用程序使用会话状态,可以将会话状态存储在SQL服务器或其他外部存储中,以减少内存使用。

可以通过配置文件或代码来进行设置。

-减少并发连接数:如果服务器负荷较高,可以减少并发连接数限制,以降低内存使用。

可以通过IIS管理器或配置文件来进行设置。

-启用动态压缩:如果应用程序的资源文件较大,可以启用IIS的动态压缩功能,以减少网络传输和内存使用。

weblogic连接池配置及相关异常解决

weblogic连接池配置及相关异常解决

1、配置连接池通过IP/console进入管理控制台(如果不知道用户名和密码可以通过以下方式进入:右击StartWebLogic.sh快捷方式,选择“编辑”,在文本中可以找到用户名和密码)在左侧菜单中依次进入mydomain(自定义的域名称)-服务-JDBC-连接缓冲池点击“配置新的JDBC Connection Pool... ”数据类型选择:Oracle数据库驱动程序选择:Oracle's Driver (Thin) Version:9.0.1,0.2.0,10点击右下角的“继续”在名称中写入想要设置的连接池名称如myConnection数据库名称:要访问的数据库名称主机名:写入数据库服务器的主机名称或IP地址端口号默认为:1521数据库用户名称、密码点击“继续”在下一页中点击“测试驱动程序配置”显示“连接成功”点击“创建和部署”在新页面的列表中出现mpConnection的配置项连接池配置完毕2、配置JDBC数据源在管理控制台左侧菜单中依次进入mydomain(自定义的域名称)-服务-JDBC-数据源点击“配置新的JDBC Data Source”在名称中写入要配置的数据源名称myConnection在JNDI名称中写入访问的名字pc/ora9)点击“继续”在缓冲池名称中选择myConnection点击“继续”、“创建”在列表中出现myConnection配置项数据源配置完毕异常解决:<Error><JDBC><001059><Error during Data Source creatrion:mon. ResourceException:DataSource(MeetingDataSource) be created with non-exitstent Pool(connection or multi)(japool)<Error><EJB><010070><Error activating Platform_AppMng.jarException is:Unable to deploy EJB:AppInfoEntity from Platform_AppMng.jar:Weblogic.ejb20.WLDeploymentException:The DataSource with the JNDI name:DataSource Could not be located.Please ensure that the DataSourece has been deployede successfully and that the JNDI Name in your EJB Deployment descriptor is correct.<Error><Deployer><149231><The slave deployer was unable to set the activation state to true for The application_appsdir_platfor_AppMng.jarWeblogic.management.ApplicationException:activate failed forPlatform_AppMng.jarModule Name:Platform_AppMng.jar,Error:Exception activating module:EJBModule(Platform_AppMng.jar,status=PREPARED)Unable to deploy EJB:AppInfoEntity from Platform_AppMng.jarWeblogic.ejb20.WLDeploymentException:The DataSource with the JNDI name:DataSource Could not be located.Please ensure that the DataSourece has been deployede successfully and that the JNDI Name in your EJB Deployment descriptor is correct.<Alert><WebLogicServer><000297><Inconsistent security configuration,ng.Exception: Certificate expired or not yet valid:<Emergency><Security><090034><Not listening for SSL,java.io.IOException:Inconsistent Security configuration,Certificate expired or not yet valid:打开浏览器后页面报错:Error 500—Internal Server Error10.5.1 500—Internal Server Error后台报错:-log- Config:Failed get Property cop.databaseConnectionUser-log- Config:Failed get Property cop. databaseConnectionPassword-log- Config:Failed get Property cop.webappserver Initial Context Factory-log- Config:Failed get Property cop.webappserver ProviderUrl-exp- NotFoundException:unable to resolve ‘wegovDataSourece’-exp- getConnection is failed-exp- ng.NullPointerException-exp- process funtion is failed-exp- wad2.helper.WADHelperException-exp- WAD-Helper-connection is null<Error><HTTP><101017><[ServletContext(...)]Root Cause of ServletExceptionng.NullPointer Exception这个异常时JDBC连接池的错误,是用户操作过程中改了数据库用户的密码造成的,解决方法:在JDBC数据库连接池中将密码改掉,然后“apply”,然后重启webLogic问题得到解决。

Java内存溢出(OOM)异常完全指南

Java内存溢出(OOM)异常完全指南

Java内存溢出(OOM)异常完全指南本⽂分析什么情况会导致这些异常出现,提供⽰例代码的同时为您提供解决指南。

Nikita Salnikov-TarnovskiPlumbr Co-Founder and VP of Engineering本⽂内容来源于,对原⽂内容有删减和补充这也许是⽬前最为完整的Java OOM异常的解决指南。

1、ng.OutOfMemoryError:Java heap spaceJava应⽤程序在启动时会指定所需要的内存⼤⼩,它被分割成两个不同的区域:Heap space(堆空间)和Permgen(永久代):JVM内存模型⽰意图这两个区域的⼤⼩可以在JVM(Java虚拟机)启动时通过参数-Xmx和-XX:MaxPermSize设置,如果你没有显式设置,则将使⽤特定平台的默认值。

当应⽤程序试图向堆空间添加更多的数据,但堆却没有⾜够的空间来容纳这些数据时,将会触发ng.OutOfMemoryError: Java heap space异常。

需要注意的是:即使有⾜够的物理内存可⽤,只要达到堆空间设置的⼤⼩限制,此异常仍然会被触发。

原因分析触发ng.OutOfMemoryError: Java heap space最常见的原因就是应⽤程序需要的堆空间是XXL号的,但是JVM提供的却是S号。

解决⽅法也很简单,提供更⼤的堆空间即可。

除了前⾯的因素还有更复杂的成因:流量/数据量峰值:应⽤程序在设计之初均有⽤户量和数据量的限制,某⼀时刻,当⽤户数量或数据量突然达到⼀个峰值,并且这个峰值已经超过了设计之初预期的阈值,那么以前正常的功能将会停⽌,并触发ng.OutOfMemoryError: Java heap space异常。

内存泄漏:特定的编程错误会导致你的应⽤程序不停的消耗更多的内存,每次使⽤有内存泄漏风险的功能就会留下⼀些不能被回收的对象到堆空间中,随着时间的推移,泄漏的对象会消耗所有的堆空间,最终触发ng.OutOfMemoryError: Java heap space错误。

IIS内存溢出解决步骤

IIS内存溢出解决步骤

内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。

引起内存溢出的原因有很多种,常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;3.代码中存在死循环或循环产生过多重复的对象实体;4.使用的第三方软件中的BUG;5.启动参数内存值设定的过小;内存溢出的解决方案:第一步,修改JVM启动参数,直接增加内存。

(-Xms,-Xmx参数一定不要忘记加。

)第二步,检查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。

第三步,对代码进行走查和分析,找出可能发生内存溢出的位置。

重点排查以下几点:1.检查对数据库查询中,是否有一次获得全部数据的查询。

一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。

这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。

因此对于数据库查询尽量采用分页的方式查询。

2.检查代码中是否有死循环或递归调用。

3.检查是否有大循环重复产生新对象实体。

4.检查对数据库查询中,是否有一次获得全部数据的查询。

一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。

这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。

因此对于数据库查询尽量采用分页的方式查询。

5.检查List、MAP等集合对象是否有使用完后,未清除的问题。

List、MAP 等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。

第四步,使用内存查看工具动态查看内存使用情况。

java lang OutOfMemoryError unable to create new native thread内存泄漏分析

java lang OutOfMemoryError unable to create new native thread内存泄漏分析

【问题现象】:自动化用例跑了约三个多小时后,界面响应时间长,界面出现500错误。

之后再点击时,页面重定向至首页。

查看jboss 下的server.log 文件发现内存溢出的OutOfMemory 异常。

【出现的问题日志】:ng.OutOfMemoryErrorat java.util.zip.ZipFile.open(Native Method)at java.util.zip.ZipFile.<init>(ZipFile.java:203)at java.util.jar.JarFile.<init>(JarFile.java:132)at java.util.jar.JarFile.<init>(JarFile.java:97)2010-11-24 15:32:48,377 ERROR [STDERR] Exception in thread"Thread-5271"2010-11-24 15:32:48,377 ERROR [STDERR] ng.OutOfMemoryError:unable to create new native thread【问题定位】:对于一般的内存泄漏导致的堆栈溢出,通常的错误信息主要有以下几种。

1. ng.OutOfMemoryError: Java heap space2. ng.OutOfMemoryError: PermGen space3. ng.OutOfMemoryError: Requested array size exceeds VM limit4. ng.OutOfMemoryError: <reason> <stack trace> (Native method)回复次数:1∙∙ luozhangwen ∙(我不懒--押宝党实习生) ∙等 级: ∙ #1楼 得分:0回复于:2010-12-27 16:06:51而在出现内存泄露的机器上,其日志显示是无法创建本地线程的原因所引起的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Weblogic内存溢出及常用参数配置
一、WebLogic内存溢出
最近访问量门户访问量突然增大,总是内存溢出,频繁宕机,调整了很多参数没起作用,偶然发现Weblogic域在不断增大,罪魁祸首竟然是Weblogic的诊断文件,也是造成Weblogic内存溢出的主要原因。

当Weblogic启动时就加载了每个Server上的诊断文件,占用了大部分内存分配,用户访问量越大这个文件也随之越大,将他删除后重新启动服务,八个Server竟然也只用了6分钟,部署项目也只需7,8分钟,一直平稳运行,再无内存溢出现象。

该文件地址:
/bea/user_projects/domains/{domain_name}/servers/{Server_name}/data/s tore/diagnostics/*.DAT
(注:AdminServer下该诊断文件为1M左右正常)
但是该文件还会继续生成增大,我们的域中并没有配置相关启动诊断文件的设置,Bea售后也无法解释,但可以通过尝试增加启动参数
(ui.disableInstrumentation=true
)来控制该诊断文件的增长,在
/bea/user_projects/domains/{domain_name}/bin/startWebLogic.sh中:
if [ "${WLS_REDIRECT_LOG}" = "" ] ; then
echo "Starting WLS with line:"
echo "${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} ui.disableInstrumentation=true =${S ERVER_NAME}
-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${PROXY _SETTINGS} ${SERVER_CLASS}"
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS}
ui.disableInstrumentation=true =${SE RVER_NAME}
-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${PROXY_SETTINGS} ${SERVER_CLASS}
else
echo "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}"
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS}
ui.disableInstrumentation=true =${SE RVER_NAME}
-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${PROXY_SETTINGS} ${SERVER_CLASS} >"${WLS_REDIRECT_LOG}" 2>&1
该参数控制netui的诊断文件的生成。

同时,可以在
/bea/user_projects/domains/{domain_name}/bin/setDomainEnv.sh中设置GC 日志的打印参数分析:
MEM_ARGS=”-Xms2048m –Xmx2048m –verbosegclog:gc.log”
Export MEM_ARGS
该参数会在/bea/user_projects/domains/{domain_name}/下输出gc.lgo
二、Portal Domain 调整
Domain目录/bin/setDomainEnv中,如下参数:
三、Weblogic 常用参数配置
Weblogic.xml中的参数:
集群环境部署参数(集群单机环境都可用):
<wls:session-descriptor>
<wls:persistent-store-type>replicated_if_clustered</wls:persisten t-store-type>
<wls:sharing-enabled>true</wls:sharing-enabled>
</wls:session-descriptor>
自动编译检测时间
<wls:jsp-descriptor>
<wls:page-check-seconds>60</wls:page-check-seconds>
</wls:jsp-descriptor>
<wls:container-descriptor>
<wls:servlet-reload-check-secs>60</wls:servlet-reload-check-secs> </wls:container-descriptor>
三、集群项目部署报错及解决
集群环境项目部署,总会出现版本不一致,造成的部署失败或部署非常慢,部署报错信息:
Failure occured in the execution of deployment request with ID '116857440499' for task '2'.
Error is: 'weblogic.management.DeploymentException: J2EE:160149Error while processing library references.
Unresolved application library references, defined in weblogic-application.xml: Extension-Name: beehive-controls-1.0, Specification-Version: 1,
Implementation-Version: 1.0, exact-match: false,
Extension-Name: weblogic-controls-1.0, Specification-Version: 1,
Implementation-Version: 1.0, exact-match: false,
Extension-Name: wls-commonslogging-bridge, Specification-Version: 1, Implementation-Version: 1.0, exact-match: false.'
weblogic.management.DeploymentException: J2EE:160149Error while processing library references.
Unresolved application library references, defined in weblogic-application.xml: Extension-Name: beehive-controls-1.0, Specification-Version: 1,
Implementation-Version: 1.0, exact-match: false,
Extension-Name: weblogic-controls-1.0, Specification-Version: 1,
Implementation-Version: 1.0, exact-match: false,
Extension-Name: wls-commonslogging-bridge, Specification-Version: 1, Implementation-Version: 1.0, exact-match: false.
......
解决办法:
将weblogic上所有的类库不仅发不到Cluster中还要同时发布到AdminServer 上,改变所有类库的Target,如图。

相关文档
最新文档