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 发行说明。