|
使用 IP 多播时,群集中的 WebLogic Server 实例可以共享一个 IP 地址和端口号。此功能使得群集的所有成员可被视为一个实体,并且使得群集成员能够互相通信。
有关在群集中使用和配置多播的常规信息,请参阅群集配置和 config.xml。
有关在控制台中配置多播地址的信息,请参阅“管理控制台联机帮助”中的多播。
多播问题故障排除过程的第一步是验证您是否正确配置了多播地址和端口。必须为每个群集正确配置多播地址。
多播地址和端口配置问题属于群集无法启动或者服务器无法加入群集的最常见原因。对于多播地址要注意下列事项:
<cluster> 元素的多播信息。
验证了多播地址和端口配置正确之后,请确定网络问题是否正在干扰多播通信。
在 UNIX 系统上,您可能会遇到 UnkownHostExceptions 错误。此错误可能会在任何时间发生,甚至当服务器的负载不是很重的情况下也会发生。检查 /etc/nsswitch.conf 并将顺序更改为`files,DNS,NIS'可避免此错误。
有关详细信息,请参阅系统的 nsswitch.conf 联机手册页。
验证了多播地址和端口配置正确,并且网络没有物理或配置问题之后,您可以使用 utils.MulticastTest 来验证多播是否正在运行并确定不同群集之间是否正在发生不希望的流量。
如果 MulticastTest 失败并且计算机是多宿主计算机,则请确保正在使用主地址。请参阅多播和多宿主计算机。
下列部分描述了如何调整 WebLogic Server 的各种功能使其与多播一起运行。
多播超时可能会在网络接口卡(Network Interface Card,简称 NIC)故障转移期间发生。超时可能会导致如下的错误消息:
<Error><Cluster><Multicast socket receive error:
java.io.InterruptedIOException: Receive timed out>
igmp snooping 切换。此切换属于 Internet 组管理协议(Internet Group Management Protocol,简称 IGMP),用于防止受管切换上的多播流量过大的问题。MulticastTTL=32
有关详细信息,请参阅配置多播生存时间 (TTL)。
群集中的每个 WebLogic Server 实例均使用多播来广播通告其可用性的定期心跳消息。群集中的服务器实例通过监视心跳消息来确定某个服务器实例是何时失败的。
多播发送延迟指定服务器等待通过多播发送消息片断的时间长度。此延迟有助于避免发生 OS 级的缓冲区溢出。此内容可以通过 Cluster Mbean 的 MulticastSendDelay 特性进行设置。有关详细信息,请参阅 Cluster Mbean Javadoc。
如果设置了多播发送延迟之后问题仍然存在,则可能需要设置与 UDP 设置相关的下列操作系统参数:
如果这些参数设置的值较低(例如 8K),则当多播数据包大小设置为最大允许大小 (32K) 时,可能会出现问题。请尝试将这些参数设置为 64K。
多播风暴指的是网络上多播数据包的重复传输。多播风暴可能会对网络和相连的工作站带来极大压力,从而可能会导致端点站挂起或失败。
增加多播缓冲区的大小可能会提高通知传输和接收的速度,防止多播风暴。请参阅配置多播缓冲区大小。
如果群集成员位于不同子网上时发生多播问题,则应该配置多播生存时间。群集的多播生存时间(Multicast Time-To-Live,简称 TTL)参数必须足够高,可以确保路由器不会在多播数据包到达其最终目标之前放弃这些多播数据包。
多播 TTL 参数设置可以放弃数据包之前多播消息进行的网络跃点数。对多播 TTL 参数进行合适配置会降低在群集服务器实例之间传输的多播消息发生丢失的危险。
有关详细信息,请参阅配置多播生存时间 (TTL)。
如果执行了上述故障排除提示之后仍然存在多播地址问题,则请收集多播的调试信息。
MulticastMontior 是一个独立的 Java 命令行实用工具,它监视特定多播地址和端口上的多播流量。此命令的语法为:
java weblogic.cluster.MulticastMonitor <multicast_address> <multicast_port> <domain_name> <cluster_name>
MulticastTest 实用工具可帮助您在配置 WebLogic 群集时调试多播问题。该实用工具发出多播数据包,返回多播如何在网络上高效运行的相关信息。
使用 weblogic.Admin 实用工具设置调试标志。例如:
java weblogic.Admin -url t3://localhost:7001 - username weblogic -password weblogic SET -type ServerDebug -property DebugCluster true
通过运行同一个命令并将该参数设置为 false 可关闭调试标志。
AIX version 5.1 不支持 IPv4 映射的多播地址。如果使用 IPv4 多播地址,则不能加入多播组,即使您切换到 IPv6 也不行。在 AIX 上运行 MulticastTest 时,请使用下列示例中指定命令行上的顺序:
java -Djava.net.preferIPv4Stack=true utils.Multicast <options>
根据操作系统的不同,打开的文件描述符数可能会出现问题。在 UNIX 上,您可以使用 loses 来确定在磁盘上某个过程打开了多少个文件。如果出现问题,您则可能需要在该计算机上增加文件描述符数。
|