Weblogic集群多播配置故障排除
WebLogic Server Cluster组播故障处理总结
WebLogic Server Cluster组播故障处理总结问题描述WebLogic Server 事例在监听或接收讯息时有问题,或者在BEA WebLogic Server 之间通常都无法成功使用组播功能。
故障排除请注意,并非下面所有工作都需要完成。
有些问题仅通过执行几项工作就可以解决。
快速链结●为什么发生此问题?●组播地址/端口问题●不同WLS 版本的组播设定差异●物理问题/共享地址问题●重复IP 地址●测试组播/错误通信●档案描述元问题●Nsswitch 设定●组播超时●丛集心跳信号侦测问题●丛集组播风暴问题●多宿主设定●背景信息●除错组播为什么发生此问题?一般而言,此问题是由于BEA WebLogic Server 中组播的设定问题引起的。
另外,网络问题(比如在该计算机上没有安装组播)也会造成此问题。
使用下列检查清单检查组播的设定、其他可能存在的问题和一般问题。
组播地址/端口问题组播地址出现问题是丛集无法启动或者服务器连结丛集失败的最常见原因之一。
每个丛集需要一个组播地址。
组播地址可以是介于224.0.0.0 和239.255.255.255 之间的IP 号,或者是具有在该范围内的IP 地址的主机名。
如果组播地址不正确,您很有可能看到以下错误:· 无法为丛集建立组播套接字· 组播套接字传送错误· 组播套接字接收错误若要检查地址/端口问题:1. 使用WebLogic Server 控制台检查丛集的组播地址和端口。
2. 检查config.xml 中的组播信息,或通过控制台检查是否有错别字、拼写错误等。
特别检查组播的地址和端口。
有关组播和故障排除的详细信息,参见:/wls/docs70/ConsoleHelp/domain_cluster_config_multicast.ht ml#1104722不同WLS 版本的组播设定差异在WLS 6.1 和WLS 7.0 之间存在影响组播地址和端口的网络设定差异。
weblogic多机集群配置文档
Weblogic10.0多机集群配置说明一配置说明:配置weblogic双机集群,主机1上运行管理服务器,受管理服务器1和代理服务器,主机2上运行受管理服务器2。
二目标:实现所有http请求全部发到主机1上的代理服务器,统一由代理服务分发给两个主机上的受管理服务器来处理业务,并且实现会话复制,即一台机器上的受管理服务器宕掉,所有的请求都转到另一台受管理服务器上,并且会话也会转移到这个服务器。
三配置图解:第一步,首先在主机1上运行weblogic的配置向导。
(01)选择“新建weblogic域”点击“下一步。
(图01)选择“生成一个自动配置的域以支持下列BEA产品“,点击”下一步“。
(图02)(03)填入用户名和密码,请记录填写的信息不要丢失,后面登陆控制台的时候需要用到这些信息,点击“下一步“。
(图03)(04)首先选择左侧的“生产模式“,然后选择右侧的”sun jdk“,点击”下一步“。
(图04)选择下方的“是“,点击”下一步“。
(图05)(06)填写管理服务器的相关信息( 我的配置:a 172.16.15.131 8001),点击“下一步“。
(图06)(07)填写各个受管理服务器的详细信息,这里要注意的是m2的监听地址填的是主机2的ip地址,因为这个服务实际是运行在主机2上,下面是我的配置:m1 172.16.15.131 8002m2 172.16.15.132 8003p 172.16.15.131 8008点击“下一步“。
(图07)(08)填入集群相关信息监听地址、端口可以默认,建议修改成唯一的不要是被占用了的,点击“下一步“。
(图08)(09)将左边的服务器m1和m2添加到右边的c集群下,点击“下一步“。
(图09)(10)勾上“为集群创建http代理c,点击“下一步”。
(图10)填入域的名称和位置,配置是:域名:web_c,域位置:默认,点击,“创建”。
到此主机1的配置向导的工作已完成。
weblogic安装配置及常见问题
weblogic安装配臵及常见问题在安装、配臵WEBLOGIC时,主要有以下几个方面的配臵和问题:一、JSP的设臵1。
weblogic.properties文件中的设臵在PROPERTIES文件中对于JSP进行设臵:# Set up WebLogic JSP propertiesweblogic.httpd.register.*.jsp=\weblogic.servlet.JSPServletweblogic.httpd.initArgs.*.jsp=\pageCheckSeconds=1,\compileCommand=c:/jdk1.3/bin/javac.exe,\workingDir=C:/weblogic/myserver/classfiles,\encoding=gb2312(或GBK),\verbose=true2。
查看JSP生成的JAVA代码在上边的配臵中,到workingDir指定的目录下查找相应目录下的JAVA文件。
在测试JSP时,如果出现编译问题,由于报错位臵不精确,因此经常需要查看相应的JAVA源文件,以便找到真正的问题所在3。
手工编译JSP的方法运行setEnv.sh;java weblogic.jspc your.jsp二、SERVLET的设臵1。
如何进行SERVLET的登记?#用于进行servlet的登记weblogic.httpd.register.test_servlet=doctor.servlets.test_servlet weblogic.httpd.register.test1_servlet=doctor.servlets.test1_servlet weblogic.httpd.register.test2_servlet=doctor.servlets.test2_servlet2。
如何不登记一个SERVLET,而直接测试该SERVLET首先在weblogic.properties文件中登记weblogic.httpd.register.servlets=weblogic.servlet.ServletServlet然后在浏览器中键入:http://host:7001/servlets/your_package/your.class3。
Weblogic项目部署及相关问题解决
Weblogic项目部署1、使用weblogic部署项目时,首先要启动一下开始菜单中weblogic目录下的QuickStart添加一个项目名称。
2、创建完项目之后,在weblogic安装目录\Middleware\user_projects\domains下面就可以看到自己刚刚创建的项目了。
随后启动目录下面的startWebLogic.cmd,启动完成后,启动ie 浏览器在地址栏输入http://localhost:7001/console,然后会出现一个登陆窗口,用户名为创建项目最后输入的名称,默认是weblogic,密码即为自己输入的密码.3、登陆进去之后我们就可以对我们所创建的项目进行配置了:配置服务项中的数据源:名称和JNDI名称我们都要使用项目中app-config-context.xml 配置文件项目中的JNDI名称。
这里使用的是sinosoftDataSource。
数据源配置完成后的参数: url:jdbc:oracle:thin:@10.32.14.73:1521:personal驱动程序类名称:oracle.jdbc.xa.client.OracleXADataSource由于在倒数第二步测试连接成功之后我就直接点击完成,导致最后一步没有完成,最后在部署项目完成之后项目报错找不到数据源,Unable to resolve 'sinosoftDataSource'. Resolved ''; remaining name 'sinosoftDataSource'之后就是在weblogic中部署需要部署的项目,也就是将项目中的webapps目录加载到weblogic中,一切完成之后就可以在浏览器中输入访问路径访问这个项目了。
weblogic部署中遇到的问题:1、内存溢出:修改项目路径\bin\目录下的setDomainEnv.cmd文件,将其中的内容:set MEM_PERM_SIZE_64BIT=-XX:PermSize=128mset MEM_PERM_SIZE_32BIT=-XX:PermSize=48m修改为:set MEM_PERM_SIZE_64BIT=-XX:PermSize=512mset MEM_PERM_SIZE_32BIT=-XX:PermSize=512mMyeclipse中的内存溢出修改:-Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=128m-XX:MaxPermSize=512m -Xverify:none -daPaths中添加一个名称为antlr-2.7.6rc1.jar。
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问题得到解决。
weblogic故障处理(BEA-000362)
weblogic故障处理(BEA-000362)文章分类:Java编程由于weblogic所在磁盘空间不足,导致weblogic运行日志无法读写到本地磁盘,weblogic宕机,重新启动无效,抛出以下异常:####<2011-2-15 上午11时32分57秒 CST> <Critical> <WebLogicServer> <liaoning8dfbce1> <AdminServer> <Main Thread> <<WLSKernel>> <> <> <1297740777470> <BEA-000362> <Server failed. Reason:There are 1 nested errors:weblogic.diagnostics.lifecycle.DiagnosticComponentLifecycleException: weblogic.store.PersistentStoreException:[Store:280020]There was an error while reading from the log fileatweblogic.diagnostics.lifecycle.ArchiveLifecycleImpl.initialize(Archiv eLifecycleImpl.java:44)atweblogic.diagnostics.lifecycle.DiagnosticFoundationService.start(Diag nosticFoundationService.java:107)at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)Caused by: weblogic.store.PersistentStoreException:[Store:280020]There was an error while reading from the log fileat weblogic.store.io.file.Heap.getNextRecoveryFile(Heap.java:794)at weblogic.store.io.file.Heap.recover(Heap.java:706)at weblogic.store.io.file.FileStoreIO.recover(FileStoreIO.java:585) at weblogic.store.io.file.FileStoreIO.open(FileStoreIO.java:94)atweblogic.store.internal.PersistentStoreImpl.open(PersistentStoreImpl. java:350)atweblogic.store.PersistentStoreManager.createFileStore(PersistentStore Manager.java:202)atweblogic.diagnostics.archive.DiagnosticStoreRepository.getStore(Diagn osticStoreRepository.java:61)atweblogic.diagnostics.lifecycle.ArchiveLifecycleImpl.initialize(ArchiveLifecycleImpl.java:42)... 4 moreCaused by: java.io.IOException: Error reading from file, 已到文件结尾。
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问题得到解决。
Weblogic故障诊断
议程
故障诊断的模式 Thread Dump WebLogic Server 工作线程 典型问题及解决方案
– Server Crash – Server Hang – High CPU
故障诊断的模式
准确描述现象:平台、版本、操作、信息 使用工具收集数据 使用工具分析数据 尝试解决问题 给出最佳解决方案 总结经验并加以重用
NEW IN_NATIVE IN_VM IN_JAVA BLOCKED ..._TRANS
议程
故障诊断的模式 Thread Core Dump WebLogic Server 工作线程 典型问题及解决方案
– Server Crash – Server Hang – High CPU
工作线程
两个线程池
Socket Reader Thread Dump
Execute 线程
• 并行处理执行队列中的请求。 • 默认情况下,有15个Exceute线程。
议程
故障诊断的模式 Thread Dump WebLogic Server 工作线程 典型问题及解决方案
– Server Crash – Server Hang – High CPU
当JVM崩溃时,会弹出窗口:
– Do you want to debug the problem? – 不要选择Yes/No,获取此时的Thread Dump。
Thread Dump: JDK1.5
Thread t@41: (state = BLOCKED) - ng.Object.wait(long) (Interpreted frame) - ng.Object.wait(long) (Interpreted frame) - ng.Object.wait() @bci=2, line=474 (Interpreted frame) - org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run() @bci=19, line=642 (Interpreted frame) - ng.Thread.run() @bci=11, line=595 (Interpreted frame)
WebLogic故障排除
使用jarbuilder为客户端应用生成wlfullclient.jar
• 解决办法:
• 使用 jarbuilder 生成 wlfullclient.jar
• 具体操作:
• cd C:/beahome/wlserver_10.3/server/lib • java –jar wljarbuilder.jar // creates wlfullclient.jar which contains all the classes from weblogic.jar plus some of the exploded modules.
JVM Crash行为
• 大多数的JVM在Crash时,支持额外选项:
• 暂停执行,进行最后的thread dump,或使用操作系统的调试 工具 • 执行自定义脚本
议程
• Guardian • JVM层面的问题诊断 • Java应用程序及服务器层面问题诊断
Java异常处理概念
• 异常会给出JVM、WLS或应用程序的问题所在 • Checked Exception是可恢复的问题,应该被捕获并且 在应用程序代码中进行处理 • Unchecked Exception或者error:
• Native (操作系统内存) • Heap (堆内存) • 特定Java 内存代(例如,permanet)
对Out of Memory的响应
• JVM会发送error到标准输出流和错误输出流 • WLS会将应用程序没有处理的Java异常和错误都输出 到服务器日志 • Out-of-Memory和类似的系统错误不应该由应用程序直 接处理 • 如果应用程序发生错误,会给客户端返回错误信息( 例如HTTP 500) • 如果WLS子系统发生错误,则服务器处于不稳定状态 ,需要重启
weblogic单点集群搭建+错误解决
weblogic单点集群搭建+错误解决环境Red Hat Enterprise 6.5 x86_64.isojdk-8u31-linux-x64.tar.gzwls1036_generic.jar开始之前关闭NetworkMange和iptables(或者配置防火墙放开后续配置中的端口)安装配置weblogic单点集群[root@node1 Desktop]# groupadd bea[root@node1 Desktop]# useradd -g bea weblogic[root@node1 Desktop]# passwd weblogicChanging password for user weblogic.New password: renhatBAD PASSWORD: it is based on a dictionary wordBAD PASSWORD: is too simpleRetype new password:passwd: all authentication tokens updated successfully.su - weblogicvim .bash_profileexport JAVA_HOME=/weblogic/jdk 这里是方式jdk的位置export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATHsource .bash_profile[weblogic@node1 ~]$ java –version 查看一下当前用户的java的版本确认是否更改成功java version "1.8.0_31"Java(TM) SE Runtime Environment (build 1.8.0_31-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)java -D64 -jar wls1036_generic.jar调出之后的界面启动adminserver解决方法route add -host 239.192.0.0 dev eth1vim /etc/rc.local 开机自动启动添加组播地址/sbin/route add -host 239.192.0.0 dev eth1解决方法Vim /home/weblogic/Oracle/Middleware/user_projects/domains/mycluster_domain/bin/setDomainEnv.sh 在配置文件中加两行.preferIPv4Stack=true解决方法关闭防火墙重启受管理节点。
weblogic日常维护总结与故障诊断
中间件故障诊断总结一、步骤:1、准确描述现象:客户说的和自己查看到的:平台、版本、操作、信息等。
特别是,故障前是否有做过什么操作:网络调整、设备调整、主机参数调整、配置文件修改……反正将这一切都列入排查的对象。
2、使用工具收集数据,收集配置文件、日志、dump文件等等。
3、使用分析数据,根据问题或收集的数据,使用适当的工具分析数据,当然包括了在网上和在官方支持站点搜索类似的问题的解决办法。
4、尝试解决问题,根据找到的问题点,尝试解决。
如修改错的,复原正确的;运行有问题的,适当调整运行的环境和运行的参数等等。
5、给出最佳解决方案,一般就是继续观察了。
6、总结经验并加以重用,知识积累。
二、通过前台收集基本的信息:1、重点是故障前做过的操作2、比对运行平台是否在官方的兼容性列表中,一般就是关注各个版本,特别是一些比较怪异的问题3、检查环境和参数,如能打开控制台,就在控制台中初步观察,一般进入控制台的格式是如:。
常用的留意点如下:A、域运行状态(域-监视-健康状况);一般为running状态,如果不是running,那这些界面就没有了。
B、服务器运行状态(域-环境-服务器),正常的为running。
C、各个server性能(JVM)状态(域-环境-服务器,点击具体的serve后进入,监视-健康状况);留意JVM 堆中当前可用的内存量。
不同的JVM,所显示的内容可能不一样,以下为sun的:D、各个server线程状态(域-环境-服务器,点击具体的serve后进入,监视-线程);一般来说,空闲线程要多;健康状况为ok如下图health状态为:Warning,这个是有线程阻塞的。
阻塞线程的内容为:####<2011-8-13 上午02时42分35秒E、JDBC(域-环境-服务器,点击具体的serve后进入,监视-JDBC);活动连接数合理。
F、程序EJB/Web Module(域-部署);状态为活动,健康状况为ok。
WebLogic问题分析常用方法及技巧剖析
WebLogic问题分析常用方法及技巧说明:该文档专门针对WebLogic10.3怎么查问题、定位问题及日常维护中的一些小技巧,该文档适合对WEB应用程序有一定认识、对WebLogic 有一定了解,对当前主机环境熟悉,对Aix命令有一定基础的相关人员。
其它非法人员切记在不了解的情况下做任何修改,执行任何命令,以此带来的任何问题及影响概不负责。
一、日常监控1、集群负载监控1.查看集群内各Server的单独访问地址,是否能正常访问,Server访问地址后面有统一说明,常见的无法访问原因有:a.Server没有启动(提示Service not available),启动Server即可;b.应用程序是否为Active(提示403或404),update或start即可;c.应用程序已经是Active,Server也RUNNING仍无法访问,则可以通过应用程序的Monitoring查看各Server上的运行情况,查看对应Server的*.out日志,通常情况下是应用程序更新有问题导致的;2.查看Proxy Server的线程数,根据应用程序根路径名可以定位是哪个具体的Server或集群,若有队列吞吐量为0的情况说明集群没有实现分发(需要分析Proxy的web.xml 文件,看看对应的servlet(即应用程序根路径))是否有如下配置:<servlet><servlet-name>Ngboss</servlet-name> #该名称必需要有对应的servlet-mapping<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class><init-param><param-name>WebLogicCluster</param-name><param-value>10.131.39.75:7101|10.131.39.76:7101 #IP及端口是否配置正确,顺序是否正确</param-value></init-param><init-param><param-name>CookieName</param-name><param-value>NGBOSS_JSESSIONID</param-value> #该名称必需与应用程序的weblogic.xml里配置的CookieName一致</init-param><init-param><param-name>wl-dispatch-policy</param-name><param-value>ngboss</param-value></init-param> #该段配置是用来对集群分发,配合它才能实现集群的分发,param-value即servlet 的访问名称</servlet>............<servlet-mapping><servlet-name>Ngboss</servlet-name> #该名称必需要有对应的servlet <url-pattern>/*</url-pattern></servlet-mapping>3.查看应用程序的Monitoring的Session,根据各Server上的在线Session数即可判断集群是否实现负载,常见的无法负载原因有:a.集群内存在已挂死的Server(查看各Server的*.out日志即可);b.Proxy的web.xml配置错误,如IP、端口、CookieName、servlet名等;c.应用程序发布的target是不是在集群;2、Server内存、队列、线程数监控1. 1.进入对应的Server监控页,查看Performance的Java 内存、Threads的队列及线程数、JDBC连接数等3、WTC监控1.Service->WTCServer->Ctrl是否connected4、JDBC监制1.查看连接的总体情况,看看是否有未释放的连接,查看时要多次刷新页面看看Java内存是否可以正常回收、队列及线程数是否有居高不下、JDBC是否有长时间不释放(这种情况下需要DBA配合分析)5、日志监控1.定期查看server/logs和logs/xxx_error.log出现的错误日志6、JMS监制1.Interoperability->WTC Servers->Connected是否为true7、后台进程监控1.用命令ps –ef | grep $ServerName,看进程是否存在,ServerName列表可参看Server访问地址里的访问根路径名二、问题分析定位必杀技1.用topas命令,查看占用CPU高的进程ID;2.然后用ps -ef | grep $ID即可看到对应的ServerName;3.然后进Console看该Server的运行状态(RUNNING),如果Server已经Down掉了可以直接通过Console启起来,记得不要把ngbossdomain/servers/$ServerName/logs下的文件删除,用作之后的日志分析4.在Console可以操作的前提下,还可以查看该Server的Dump 日志、进程的内存使用情况、队列及空闲线程、JDBC连接数等5.若Console不可操作(一般在有Server挂死的情况下),可以用命令ps -mp $ID -oTHREAD | grep R;kill -3 $ID(需要记录该命令的输出内容),执行完后会在ngbossdomain 下生成javacore文件(该文件与Console里的Dump日志内容相似),该命令可以多执行几次,生成多个javacore文件,方便之后的问题分析;如果需要重启服务可以用kill -9 $ID,执行完这个命令后该Server会自动重启,切记要先生成javacore,再kill -9;说明:通过分析某一进程的各个线程运行情况,定位问题,可以通过多种途径获取进程,如:1.根据有问题的系统模块找到对应的Server,然后用ps –ef | grep ServerName即可得到进程名2.根据WL的控制台找到对应的Server,然后用ps –ef | grep ServerName即可得到进程名三、javacore快速定位1、生成javacore文件1.通过命令ps -mp $ID -o THREAD | grep R;kill -3 $ID($ID为进程ID),即可在域目录(ngbossdomain)下生成与进程ID对应的javacore文件,主要分析*.txt文件,记下该命令的输出日志,记下着色处的数字,示例如下:2.:/ngboss/webapp $ps -mp 286906 -o THREAD | grep R;USER PID PPID TID ST CP PRI SC WCHAN F TT BND COMMANDwebapp 286906 53800 - A 90 60 245 * 242001 - - /usr/java6_64/jre/bin/java =acctmanm22 -Djava.security.policy=/bea/weblogic/server/lib/weblogic.policy-Dweblogic.management.server=http://10.200.141.23:7001-Djava.library.path=/usr/java6_64/jre/lib/ppc64/default:/usr/java6_64/jre/lib/ppc64:/usr/java6 _64/jre/lib/ppc64:/usr/java6_64/jre/lib/ppc64/default:/usr/lib:/usr/java6_64/jre/lib/ppc64/j9v m:/usr/java6_64/jre/lib/ppc64:/usr/java6_64/jre/../lib/ppc64::/bea/weblogic/server/native/aix/ ppc64:/usr/lib-Djava.class.path=/bea/weblogic/server/lib/AIX-ComboPatch-Essex.jar:/bea/weblogic/server/ lib/CR370915_1030GA.jar:/bea/patch_wls1030/profiles/default/sys_manifest_classpath/webl ogic_patch.jar:/bea/patch_cie660/profiles/default/sys_manifest_classpath/weblogic_patch.jar: /usr/java6_64/lib/tools.jar:/bea/weblogic/server/lib/weblogic_sp.jar:/bea/weblogic/server/lib/ weblogic.jar:/bea/modules/features/weblogic.server.modules_10.3.0.0.jar:/bea/weblogic/serv er/lib/webservices.jar:/bea/modules/org.apache.ant_1.6.5/lib/ant-all.jar:/bea/modules/net.sf.an tcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar::/bea-Dweblogic.system.BootIdentityFile=/ngboss/webapp/ngbossdomain/servers/acctmanm22/da ta/nodemanager/boot.properties -Dweblogic.nodemanager.ServiceEnabled=true -Dweblogic.security.SSL.ignoreHostnameVerification=false-Dweblogic.ReverseDNSAllowed=false -Xms3072m -Xmx4096m -Dibm.stream.nio=true -Dfile.encoding=GBK nguage=zh -Duser.region=CN -Xgcpolicy:gencon weblogic.Server- - - 975497 R 88 141 0 - 400000 - - -说明:该命令生成当进程正在运行(状态为R)的线程日志,着色处为线程ID,将该ID用Windows自带的计算器转换成16位即可在javacore文件里找到对应的线程日志2、分析javacore定位问题1.用vi命令查看javacore*.txt文件,查找线程ID转16位的串;2.如果1查到的内容是:GC日志、Wait状态、autoLogin栈都不需要关注,只关注有带有相应模块串的异常栈信息,示例如下:3.3XMTHREADINFO "ExecuteThread: '2' for queue: 'default'" TID:0x0000000117168700,j9thread_t:0x00000001170E8160, state:CW, prio=53XMTHREADINFO1 (native thread ID:0x325063, native priority:0x5, native policy:UNKNOWN)4XESTACKTRACE at oracle/jdbc/driver/T4CMAREngine.unmarshalCLR(T4CMAREngine.java:1589(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/T4CMAREngine.unmarshalCLR(T4CMAREngine.java:1801(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/T4CMAREngine.unmarshalDALC(T4CMAREngine.java:2125(CompiledCode))4XESTACKTRACE at oracle/jdbc/driver/T4C8TTIrxh.unmarshalV10(T4C8TTIrxh.java:107(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/T4C8Oall.receive(T4C8Oall.java:654(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194(Compile d Code))4XESTACKTRACE at oracle/jdbc/driver/T4CPreparedStatement.fetch(T4CPreparedStatement.java:1017(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java: 275(Compiled Code))4XESTACKTRACE at oracle/jdbc/driver/OracleResultSetImpl.next(OracleResultSetImpl.java:228(Compiled Code)) 4XESTACKTRACE at weblogic/jdbc/wrapper/ResultSet_oracle_jdbc_driver_OracleResultSetImpl.next(Bytecode PC:20(Compiled Code))4XESTACKTRACE at com/linkage/appframework/data/DatasetResult.<init>(DatasetResult.java:28(Compiled Code))4XESTACKTRACE at com/linkage/dbframework/jdbc/DaoManager.queryList(DaoManager.java:1612(Compiled Code))4XESTACKTRACE at com/linkage/dbframework/jdbc/DaoManager.queryList(DaoManager.java:1741(Compiled Code))4XESTACKTRACE at com/linkage/dbframework/jdbc/DaoManager.queryList(DaoManager.java:1756(Compiled Code))4XESTACKTRACE at com/linkage/dbframework/BaseEntity.queryList(BaseEntity.java:246(Compiled Code))4XESTACKTRACE at com/linkage/dbframework/BaseEntity.queryListBySqlstoreParser(BaseEntity.java:566(Comp iled Code))4XESTACKTRACE at com/linkage/cencustmgr/queryserverinfo/dao/QueryServerInfoDAO.queryServerInfo(Query ServerInfoDAO.java:61)4XESTACKTRACE at com/linkage/cencustmgr/queryserverinfo/bean/QueryServerInfoBean.queryCheckRecord(Qu eryServerInfoBean.java:74)4XESTACKTRACE at com/linkage/cencustmgr/queryserverinfo/page/QueryServerInfo.exportExcel(QueryServerInfo.java:170)4XESTACKTRACE at sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method)4.根据2即可定位到是具体应用的具体Java文件的具体方法,定位具体问题,然后再去分析该代码即可3、WADE应用javacore文件分析小技巧1、后台定位1.找到进程ID(可通过topas,或ps -ef | grep ServerName等方法),执行kill -3命令,生成javacore文件2.vi 1 生成的javacore文件,查找queryList或export关键字符,即可快速定位问题代码2、前台定位1.登录WebLogic控制台,打开有问题Server,进入Performance监控页,生成Dump ThreadStacks内容;2.查找queryList或export关键字符,即可快速定位问题代码;说明:针对javacore文件分析,要灵活运行相关信息。
WeblogicClusterBEA-000116故障处理
Weblogic Cluster BEA-000116故障处理部署环境:Weblogic 9.2 MP3 for linux实验:Weblogic Cluster: (MServer1,MServer2) 7222Multicast IP: 239.192.0.0AdminServer: 192.168.1.33:7001MServer1: 192.168.1.33:7201MServer2: 192.168.1.33:7202Machine1: (MServer1) NodeManager(192.168.1.33:5556)Machine2: (MServer2) NodeManager(192.168.1.33:5557)注意:本实验环境各个Server SSL设置---->Hostname Verification: NONE描述:(NodeManager 成功启动)当启动某ManagedServer时分别报以下错误:/home/weblogic/bea/user_projects/domains/clustersys/servers/MServer_1/logs/MServer_1.outDec 16, 2010 9:12:56 PM CST> <Info> <WebLogicServer> <BEA-000215><Loaded License : /home/weblogic/bea/license.bea><Dec 16, 2010 9:12:57 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING><Dec 16, 2010 9:12:57 PM CST> <Info> <WorkManager> <BEA-002900><Initializing self-tuning thread pool><Dec 16, 2010 9:12:58 PM CST> <Notice> <Log Management> <BEA-170019> <The server log file<Dec 16, 2010 9:13:15 PM CST> <Notice> <Security> <BEA-090082><Security initializing using security realm myrealm.><Dec 16, 2010 9:13:31 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY><Dec 16, 2010 9:13:31 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING><Dec 16, 2010 9:13:34 PM CST> <Error> <Cluster> <BEA-000116><Failed to join cluster Cluster_1 at address 239.192.0.0 due to:.SocketException:No such .SocketException:No such deviceat .PlainDatagramSocketImpl.join(Native Method)at .PlainDatagramSocketImpl.join(PlainDatagramSocketImpl.java:172) at .MulticastSocket.joinGroup(MulticastSocket.java:276)atweblogic.cluster.MulticastFragmentSocket.initializeMulticastSocket(MulticastF ragmentSocket.java:112)atweblogic.cluster.MulticastFragmentSocket.start(MulticastFragmentSocket.jav a:134)Truncated. see log file for complete stacktrace><Dec 16, 2010 9:13:34 PM CST> <Critical> <WebLogicServer><BEA-000362><Server failed. Reason: There are 1 nested errors:.SocketException: No such deviceat .PlainDatagramSocketImpl.join(Native Method)at .PlainDatagramSocketImpl.join(PlainDatagramSocketImpl.java:172) at .MulticastSocket.joinGroup(MulticastSocket.java:276)atweblogic.cluster.MulticastFragmentSocket.initializeMulticastSocket(MulticastF ragmentSocket.java:112)atweblogic.cluster.MulticastFragmentSocket.start(MulticastFragmentSocket.jav a:134)atweblogic.cluster.FragmentSocketWrapper.start(FragmentSocketWrapper.java :87)at weblogic.cluster.MulticastManager$1.run(MulticastManager.java:186)atweblogic.cluster.MulticastManager.startListening(MulticastManager.java:192) at weblogic.cluster.InboundService.startListening(InboundService.java:40)at weblogic.cluster.InboundService.start(InboundService.java:29)at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)atweblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin gWorkManagerImpl.java:464)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)><Dec 16, 2010 9:13:34 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED><Dec 16, 2010 9:13:34 PM CST> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down><Dec 16, 2010 9:13:34 PM CST> <Notice> <WebLogicServer><BEA-000365><Server state changed to FORCE_SHUTTING_DOWN><Dec 16, 2010 9:13:37 PM> <Debug> <NodeManager> <Waiting for the process to die: 26869><Dec 16, 2010 9:13:38 PM> <Info> <NodeManager> <Server failed during startup so will not be restarted><Dec 16, 2010 9:13:38 PM> <Debug> <NodeManager><runMonitor returned, setting finished=true and notifying waiters> AdminServer 前台报以下信息:<Dec 16, 2010 9:13:40 PM CST> <Error> <NodeManager> <BEA-300048><Unable to start the server MServer_1 :Exception while starting server 'MServer_1': java.io.IOException: Server failed to start up.See server output log for more details.>分析:依据以下提示,可判断组播地址问题。
Weblogic10.3.6集群配置手册
Weblogic10.3.6集群配置手册
1.本文环境
软件:WebLogic Server 10.3.6配置WebLogic Server集群
WebLogic集群的体系结构
)
这种架构将所有的Web应用以及相关的服务应用全部置于集群中的单一WLS实例中,这种架构的优势在于:
灵活的负载平衡机制
多层结构的集群架构(Cluster 在负载平衡机制需要调用集群EJB中的方法时;
在需要更高的系统稳定性时;
配置集群应用的必要条件
集群中的所有Server必须使用相同的版本,包括Service Pack
要以CLUSTER方式运行,必须有包含CLUSTER许可的LICENSE才行
配置前的规划
在配置集群应用前要对集群的配置信息有一个良好的规划,下面就是我们这次配置的集群信息:在同一网段内的不同机器上配置集群,其中Managed_Server_X为受管理服务器,根据现场实际情况决定数量。
weblogic集群受管服务器报
weblogic集群受管服务器报weblogic集群在多播情况下,启动受管服务器报错<Error> <Cluster> <BEA-000110><Error> <Cluster> <BEA-000109> ,折磨了我好几天,今天终于找到答案了。
以下是报的错:<2015-1-31 下午09时48分24秒CST> <Error> <Cluster> <BEA-000110> <Multicast socket receive error: .SocketException: Socket closed.SocketException: Socket closedat .PlainDatagramSocketImpl.receive0(Native Method)at.AbstractPlainDatagramSocketImpl.receive(AbstractPlain DatagramSocketImpl.java:146)at.DatagramSocket.receive(DatagramSocket.java:816) atweblogic.cluster.MulticastFragmentSocket.receive(MulticastFrag mentSocket.java:239)atweblogic.cluster.FragmentSocketWrapper.receive(FragmentSock etWrapper.java:98)Truncated. see log file for complete stacktrace><2015-1-31 下午09时48分24秒CST> <Error> <Cluster> <BEA-000109> <An error occurred while sending multicast message: java.io.IOException: Invalid argumentjava.io.IOException: Invalid argumentat .PlainDatagramSocketImpl.send(Native Method) at .DatagramSocket.send(DatagramSocket.java:697)atweblogic.cluster.MulticastFragmentSocket.sendThrottled(Multic astFragmentSocket.java:206)atweblogic.cluster.MulticastFragmentSocket.send(MulticastFragm entSocket.java:158)atweblogic.cluster.FragmentSocketWrapper.send(FragmentSocket Wrapper.java:91)Truncated. see log file for complete stacktrace解决方法:1. 查看多播的端口是否为7001如果是7001,那么要改掉。
Weblogic常见报错以及解决方法[转载]
Weblogic常见报错以及解决⽅法[转载]Weblogic常见报错以及解决⽅法[转载]2020-09-13 09:55:22 4109 收藏 11⽂章标签:前⾔:Oracle WebLogic中间件在⽹站部署过程中经常会使⽤到。
该产品系列的核⼼是Oracle WebLogic服务器,它是⼀个功能强⼤和可扩展的Java EE服务器。
今天整理了在运维过程中经常会遇到的各种报错以及解决⽅法,纯技术⼲货,希望能够对正在学习weblogic过程中的您提供帮助。
weblogic有两种部署⽅式,单点模式和集群模式,单点模式直接创建⼀个域,在控制台进⾏程序部署即可;⽽集群模式分为admin(管理)节点和Managed(被管理)节点,管理节点通过控制台对被管节点进⾏管理,程序部署在被管节点的集群上。
不论是单点模式,还是集群模式,常见的报错基本⼀致。
基本概念Domain :域是作为单元进⾏管理的⼀组相关的 WebLogic Server 资源。
⼀个域包含⼀个或多个 WebLogic Server 实例,这些实例可以是集群实例、⾮群集实例,或者是集群与⾮群集实例的组合。
⼀个域可以包含多个集群。
域还包含部署在域中的应⽤程序组件、此域中的这些应⽤程序组件和服务器实例所需的资源和服务。
应⽤程序和服务器实例使⽤的资源和服务⽰例包括计算机定义、可选⽹络通道、连接器和启动类。
Domain 中包含⼀个特殊的 WebLogic 服务器实例,叫做 Administration Server,这是我们配置管理Domain中所有资源的核⼼。
通常,我们称加⼊Domain中的其他实例为 Managed Server,所有的Web应⽤、EJB、Web Services和其他资源都部署在这些服务器上。
Administration Server :管理服务器是控制整个域配置的中⼼操作节点,管理服务器维护着整个域的配置并将配置分配到每个被管理服务器 Managed Server 中。
weblogic运维时经常遇到的问题和常用的配置
weblogic运维时经常遇到的问题和常⽤的配置希望这篇能把weblogic运维时经常遇到的问题、常⽤的配置汇总到⼀起。
1、配置jvm参数:⼀般在domain启动过程中会看到以下启动的⽇志信息,如下图所⽰:图中红⾊⽅框部分为启动weblogic domain的命令。
其中包括了jvm参数以及classpath信息。
【注意】java -client是由于之前建⽴的domain是开发模式的。
⽣产模式的话,这⾥执⾏的是java -server。
⾄于-client与-server的区别,⼤家去google下吧,这⾥不介绍了。
那如何修改这个配置呢?找到setDomainEnv.cmd⽂件(linux下⾯就是setDomainEnv.sh了),位置为:weblogic11\user_projects\domains\example\bin\setDomainEnv.cmd修改⽂件中的MEM_ARGS部分,相关参数配置如下:Java代码1. call "%WL_HOME%\common\bin\commEnv.cmd"2.3. set WLS_HOME=%WL_HOME%\server4.5. if "%JAVA_VENDOR%"=="Sun" (6. set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m7. set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m8. ) else (9. set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m10. set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m11. )12.13. set MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT%14.15. set MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT%16.17. if "%JAVA_USE_64BIT%"=="true" (18. set MEM_ARGS=%MEM_ARGS_64BIT%19. ) else (20. set MEM_ARGS=%MEM_ARGS_32BIT%21. )22.23. set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m24.25. set MEM_PERM_SIZE_32BIT=-XX:PermSize=48m26.27. if "%JAVA_USE_64BIT%"=="true" (28. set MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT%29. ) else (30. set MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT%31. )32.33. set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m34.35. set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m36.37. if "%JAVA_USE_64BIT%"=="true" (38. set MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_64BIT%39. ) else (40. set MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_32BIT%41. )42. if "%JAVA_VENDOR%"=="Sun" (43. if "%PRODUCTION_MODE%"=="" (44. set MEM_DEV_ARGS=-XX:CompileThreshold=8000 %MEM_PERM_SIZE%45. )46. )47.48. @REM Had to have a separate test here BECAUSE of immediate variable expansion on windows49.50. if "%JAVA_VENDOR%"=="Sun" (51. set MEM_ARGS=%MEM_ARGS% %MEM_DEV_ARGS% %MEM_MAX_PERM_SIZE%52. )53.54. if "%JAVA_VENDOR%"=="HP" (55. set MEM_ARGS=%MEM_ARGS% %MEM_MAX_PERM_SIZE%56. )57.58. if "%JAVA_VENDOR%"=="Apple" (59. set MEM_ARGS=%MEM_ARGS% %MEM_MAX_PERM_SIZE%60. )61.62. @REM IF USER_MEM_ARGS the environment variable is set, use it to override ALL MEM_ARGS values63.64. if NOT "%USER_MEM_ARGS%"=="" (65. set MEM_ARGS=%USER_MEM_ARGS%66. )主要就是修改-Xms、-Xmx、-XX:PermSize、-XX:MaxPermSize的参数(视具体硬件、JVM负载情况进⾏修改)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 服务器。
地址冲突网络中的地址冲突可能会对多播通信造成干扰。
使用netstat实用工具验证没有其他网络资源正在使用群集多播地址。
验证每个计算机都具有一个唯一的IP 地址。
UNIX 系统上的nsswitch.conf 设置在UNIX 系统上,您可能会遇到UnkownHostExceptions错误。
此错误可能会在任何时间发生,甚至当服务器的负载不是很重的情况下也会发生。
检查/etc/nsswitch.conf 并将顺序更改为`files,DNS,NIS'可避免此错误。
有关详细信息,请参阅系统的nsswitch.conf联机手册页。
使用MulticastTest 实用工具验证了多播地址和端口配置正确,并且网络没有物理或配置问题之后,您可以使用utils.MulticastTest来验证多播是否正在运行并确定不同群集之间是否正在发生不希望的流量。
如果MulticastTest 失败并且计算机是多宿主计算机,则请确保正在使用主地址。
请参阅多播和多宿主计算机。
调整多播功能下列部分描述了如何调整WebLogic Server 的各种功能使其与多播一起运行。
多播超时多播超时可能会在网络接口卡(Network Interface Card,简称NIC)故障转移期间发生。
超时可能会导致如下的错误消息:<Error><Cluster><Multicast socket receive error:java.io.InterruptedIOException: Receive timed out>发生此错误时,您可以:禁用NIC 故障转移。
禁用igmp snooping切换。
此切换属于Internet 组管理协议(Internet Group Management Protocol,简称IGMP),用于防止受管切换上的多播流量过大的问题。
在Windows 2000 上,检查IGMP 级别以确保支持多播数据包。
将多播生存时间设置为下列内容:MulticastTTL=32有关详细信息,请参阅配置多播生存时间(TTL)。
群集心跳群集中的每个WebLogic Server 实例均使用多播来广播通告其可用性的定期心跳消息。
群集中的服务器实例通过监视心跳消息来确定某个服务器实例是何时失败的。
下列部分描述了发生群集心跳问题时的可能解决方案。
多播发送延迟多播发送延迟指定服务器等待通过多播发送消息片断的时间长度。
此延迟有助于避免发生OS 级的缓冲区溢出。
此内容可以通过Cluster Mbean 的MulticastSendDelay 特性进行设置。
有关详细信息,请参阅Cluster Mbean Javadoc。
操作系统参数如果设置了多播发送延迟之后问题仍然存在,则可能需要设置与UDP 设置相关的下列操作系统参数:xdp_xmit_hiwatudp_recv_hiwat如果这些参数设置的值较低(例如8K),则当多播数据包大小设置为最大允许大小(32K) 时,可能会出现问题。
请尝试将这些参数设置为64K。
多播风暴多播风暴指的是网络上多播数据包的重复传输。
多播风暴可能会对网络和相连的工作站带来极大压力,从而可能会导致端点站挂起或失败。
增加多播缓冲区的大小可能会提高通知传输和接收的速度,防止多播风暴。
请参阅配置多播缓冲区大小。
多播和多宿主计算机在多宿主环境中使用多播时要注意下列事项:确保从WebLogic Server 控制台配置了UnixMachine实例,并且为每个服务器实例指定了处理多播流量的InterfaceAddress。
运行/usr/sbin/ifconfig -a检查多宿主环境中每台计算机的MAC 地址。
确保每台计算机均具有唯一的MAC 地址。
如果多台计算机使用同一个MAC 地址,则可能会导致多播问题。
不同子网上的多播如果群集成员位于不同子网上时发生多播问题,则应该配置多播生存时间。
群集的多播生存时间(Multicast Time-To-Live,简称TTL)参数必须足够高,可以确保路由器不会在多播数据包到达其最终目标之前放弃这些多播数据包。
多播TTL 参数设置可以放弃数据包之前多播消息进行的网络跃点数。
对多播TTL 参数进行合适配置会降低在群集服务器实例之间传输的多播消息发生丢失的危险。
有关详细信息,请参阅配置多播生存时间(TTL)。
调试多播如果执行了上述故障排除提示之后仍然存在多播地址问题,则请收集多播的调试信息。
调试实用工具下列实用工具可帮助您调试多播配置问题。
MulticastMonitorMulticastMontior 是一个独立的Java 命令行实用工具,它监视特定多播地址和端口上的多播流量。
此命令的语法为:java weblogic.cluster.MulticastMonitor <multicast_address> <multicast_port> <domain_name> <cluster_name>MulticastTestMulticastTest 实用工具可帮助您在配置WebLogic 群集时调试多播问题。
该实用工具发出多播数据包,返回多播如何在网络上高效运行的相关信息。
调试标志下列调试标志特定于多播:DebugClusterDebugClusterHeartBeatsDebugClusterFragments在命令行上设置调试标志通过添加下列选项,在服务器启动期间在命令行中设置这些标志:-Dweblogic.debug.DebugCluster=true-Dweblogic.debug.DebugClusterHeartBeats=true-Dweblogic.debug.DebugClusterFragments=true使用weblogic.Admin 设置调试标志使用weblogic.Admin 实用工具设置调试标志。
例如:java weblogic.Admin -url t3://localhost:7001 - username weblogic -password weblogic SET -type ServerDebug -property DebugCluster true通过运行同一个命令并将该参数设置为false可关闭调试标志。
杂项问题下列部分描述了您可能遇到的杂项多播问题。
AIX 上的多播AIX version 5.1 不支持IPv4 映射的多播地址。
如果使用IPv4 多播地址,则不能加入多播组,即使您切换到IPv6 也不行。
在AIX 上运行MulticastTest 时,请使用下列示例中指定命令行上的顺序:java .preferIPv4Stack=true utils.Multicast <options>另外,请验证AIX 上的下列设置以正确配置群集操作:通过执行下列命令然后重新引导计算机将MTU 大小设置为1500:chdev -1 lo0 -a mtu=1500 -P确保下列内容已经添加到了/etc/netsvc.conf中:hosts=local,bind4此行对于确保只有IPv4 地址会发送到IP 解析的名称服务是必需的。
文件描述符问题根据操作系统的不同,打开的文件描述符数可能会出现问题。
在UNIX 上,您可以使用loses来确定在磁盘上某个过程打开了多少个文件。
如果出现问题,您则可能需要在该计算机上增加文件描述符数。
多播配置故障排除的其他资源下列资源可能有助于解决多播问题:WebLogic Server 发行说明。