Wednesday, April 17, 2013

How to do Multicast Test on the Network


When you have servers in one cluster, the servers communicate with each other using multicast messaging mode.

But most of times you see the messages in the log files of the servers like “Lost Multicast Messages”(because of network or some other reasons)

This means there is something wrong in the servers communication. At this point of time it is necessary to test the network connection between the ip addresses where the clusters are running.

We have simple syntax to test the multicast
Syntax : java utils.MulticastTest -n name -a address [-p portnumber] [-t timeout] [-s send]
-N : Name of the server so that you can identify the communication.
-A : Multicast address on which the messages are sent and received.
-P : This is the multicast port number on which the servers communicate.
-T : This is the timeout value, if no multicast message is received within this time, warning is shown on the shell prompt.
-S : The duration in seconds between sending the messages.
Below is how you do it:
Test :  Start the command prompts on machines where you have your managed servers. (can be 1 or more)
Ensure that the servers in the cluster are not running, this test is for checking the network connectivity.
Set the java environment on both the shells. Then enter the below syntax:
System 1 : java utils.MulticastTest -N Instance1 -A 237.0.0.1 -P 7004 -T 10 -S 2
System 2 : java utils.MulticastTest -N Instance2 -A 237.0.0.1 -P 7004 -T 10 -S 2

Difference between Multicast message and Unicast


When servers are in a cluster, these member servers communicate with each other by sending heartbeats and indicating that they are alive. For this communication between the servers, either unicast or multicast messaging is used. This is chosen from the admin console in Cluster -> Configuration -> Messaging -> Messaging Mode.
To use multicast messaging, hardware configuration and support for multicast packets is required. Unicast does not have this requirement, which is why using unicast in latest versions is recommended.
When multicast messaging is used, it is a one-to-many communication, every server sends the notification/heartbeat/multicast packet to each other. This causes a heavy load on the application’s multicast buffer, so if the buffer is full, new multicast messages cannot be written to the buffer and the application is not notified when messages are dropped. So there is a possibility that the server instances miss the messages. This might lead in the cluster throwing out the server instances out of the cluster.
Unicast configuration is much easier because it does not require cross network configuration that multicast requires. Additionally, it reduces potential network errors that can occur from multicast address conflicts.
Mode of Communication:
Multicast – A multicast address and multicast port is used for listening to the messages.
Unicast – A network channel is used for communication between the servers. If no channel is specified, default network channel is used.
=====================
Method of communication between servers:
Multicast – Each server communicates with every member server in the cluster. Which means heartbeats are sent to every server.
Unicast - For the member servers in the cluster, group leaders are chosen and only those group leaders communicate with the servers among the group and these leaders notify each other about the availability of all the other servers.
For example : Suppose there are 6 servers in the cluster. 2 groups are made and there are 2 group leaders. Other 2 servers of the group will notify their leader that they are alive and the group leader will send this information to the leader of other group.
The frequency of communication in unicast mode is similar to the frequency of sending messages on multicast port.
=====================
For new server versions, using unicast is recommended because it is a simplified communication mode. But for backward compatibility with the previous versions, you will need to use multicast if there is a communication requirement between clusters of versions prior to WLS 10.0.
Whenever the messaging mode of the cluster is changed, all the servers in the cluster need a restart because the changes are not dynamic.
If you have any questions regarding unicast and multicast messaging mode, please let us know about it.

How to configure Sunone Iplanet server for Weblogic server

Just follow the simple steps .... !
Step 1). Create a Web server running on port 8081 using the Admin Console of SunOne(port should be uniq).
Step 2). Copy over the plugin present in the following directory
C:\bea103\wlserver_10.3\server\plugin\win\32\proxy61.dll
To the Sun One Installation Directory
C:\Sun\WebServer6.1\plugins\lib
Step 3). Load the plugins by adding the following lines in magnus.conf present in
C:\Sun\WebServer6.1\https-testserver\configsu
magnus.conf
Init fn=”load-modules” funcs=”wl_proxy,wl_init” shlib=”C:/Sun/WebServer6.1/plugins/lib/
proxy61.dll”
To forward request to a Standalone Server add the following lines to obj.conf file present in
the following directory
C:\Sun\WebServer6.1\https-testserver\config
obj.conf

To forward request to a CLuster we need to add the following in the bj.conf file

To configure SSL Between SunOne Webserver and Weblogic Server, add the following in
the obj.conf file

where rootCA.pem is the root certificate of Weblogic Server.
Step 4). Start the test server using startsvr.bat present in
C:\Sun\WebServer6.1\https-testserver
Step 5). Acess the Weblogic Console using the following url
http://localhost:8081/console