httpd+mod_cluster and jboss master on seperat hosts?
joffer Jun 4, 2012 3:21 PMI've got two jboss 7.1.1 slaves (running with host-slave.xml) and one jboss 7.1.1 master (host-master.xml) on centos6 on my LAN and one Apache 2.2.15 (centos6) with mod_cluster 1.2.0.Final in DMZ.
I'm having problem getting my slaves to register with mod_cluster. Do I need to run httpd+mod_cluster on the same host as jboss master?
I've can't do multicast between LAN and DMZ, so the frontend has an extra nic connected to the LAN segment.
My Server-Group "group-extranet" is using the 'ha' profile (and not full-ha).
simplified config on apache (removed config on logging etc):
global config:
## Load modules for mod_cluster
LoadModule slotmem_module modules/mod_slotmem.so
LoadModule manager_module modules/mod_manager.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module modules/mod_advertise.so
Listen 10001
MemManagerFile /var/cache/httpd
AllowDisplay On
vhost config:
<VirtualHost internal-ip:10001>
ServerName cluster.testing.local
KeepAliveTimeout 60
MaxKeepAliveRequests 0
ManagerBalancerName group-extranet
EnableMCPMReceive
ServerAdvertise On
</VirtualHost>
<VirtualHost public-ip:80>
ServerName frontend.testing.local
<Location /cluster-manager>
SetHandler mod_cluster-manager
Order deny,allow
Deny from all
Allow from "client-network"
</Location>
</VirtualHost>
I see the /cluster-manager/ site, but no hosts have registered:
<SNIP>
mod_cluster/1.2.0.Final
start of "httpd.conf" configuration
mod_proxy_cluster.c: OK
mod_sharedmem.c: OK
Protocol supported: http AJP https
mod_advertise.c: OK
Server: frontend.testing.local
Server: frontend.testing.local VirtualHost: public-ip:80
Server: cluster.testing.local VirtualHost: internal-ip:10001 Advertising on Group 224.0.1.105 Port 23364 for http://internal-ip:10001 every 10 seconds
end of "httpd.conf" configuration
Auto Refresh show DUMP output show INFO output
</SNIP>
I have verified that multicast works between my frontend(-lan-nic) and backend jboss following http://www.techstacks.com/howto/troubleshoot-jgroups-and-multicast-ip-issues.html and running recieve and send test both ways.
$JAVA_HOME/bin/java -cp jgroups-3.0.6.Final.jar org.jgroups.tests.McastReceiverTest -mcast_addr 224.0.1.100 -port 23456
$JAVA_HOME/bin/java -cp jgroups-3.0.6.Final.jar org.jgroups.tests.McastSenderTest -mcast_addr 224.0.1.100 -port 23456
Master startup (not background, but console at the moment)
/opt/jboss/default/bin/domain.sh --host-config=host-master.xml -b 0.0.0.0 -bmanagement=0.0.0.0
Slave startup (not background, but console at the moment):
/opt/jboss/default/bin/domain.sh --host-config=host-slave.xml --master-address=jboss-master-internal-ip -b=0.0.0.0 --backup
slave console output shows mod_cluster initializes:
[Server:q1impweb01n01-extranet] 18:35:57,160 INFO [org.apache.coyote.http11.Http11AprProtocol] (MSC service thread 1-1) Starting Coyote HTTP/1.1 on http--0.0.0.0-8080
[Server:q1impweb01n01-extranet] 18:35:57,196 INFO [org.apache.coyote.ajp.AjpAprProtocol] (MSC service thread 1-1) Starting Coyote AJP/1.3 on ajp--0.0.0.0-8009
[Server:q1impweb01n01-extranet] 18:35:57,525 INFO [org.jboss.modcluster.ModClusterService] (MSC service thread 1-1) Initializing mod_cluster 1.2.0.Final
[Server:q1impweb01n01-extranet] 18:35:57,571 INFO [org.jboss.modcluster.advertise.impl.AdvertiseListenerImpl] (MSC service thread 1-1) Listening to proxy advertisements on 224.0.1.105:23364
[Server:q1impweb01n01-extranet] 18:35:57,939 INFO [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on /0.0.0.0:4447
Update #1: I found out that multicast was transmitted on DMZ nic, so added a route for it to be transmitted on LAN nic. Verified with tcpdump. First I got udp checksum error since these servers are vmware-guest, but fixed that by turning offloading according to http://ubuntuforums.org/showthread.php?t=1940190. But I still doesn't see any multicast traffic on my slaves, which are in the same network
Update #2: Setting the proxyList manually (console > Profiles > ha > Web > Modcluster > Proxies > Proxy List > IP:PORT) made the slaves connect but when the second slave connected I got errors like
{code]Error [MEM: MEM: Old node still exist: {4}] sending command CONFIG to proxy frontend.testing.local/internal-ip:100001, configuration will be reset{code}
This was fixed by adding instance-id="${jboss.node.name}" to the web subsystem.
Still not working with multicast
Is 7.1.2.EAP better?