Thanks to Ajit Kamble, I just made small additions into his document :-). Feel free to visit his blog
to find out about other complex topologies we try out for the open source portal from Sun Microsystem
What is hadb ?
HADB is a horizontally-scalable database. It is designed to support data availability with load balancing,
failover, and state recovery capabilities.
How is it used with Sun Open Portal version ?
HADB is used for session failovers for portal server instances which are clustered. This is also used for portlet session Failover.
Topology that we follow when we cluster Portal server :
Gateway(This comes with the SRA components of the portal) : https://gateway.com
LoadBalancer : http://loadbalancer.com/portal
Access Manager : http://accessmanager.com:8080/amconsole
Portalserver instance1 + Admin server : http://machine1.com:38080/portal
Portalserver instance2: http://machine2.com:38080/portal
Portalserver instance1 and Portalserver instance2 are clustered with Admin server on 4848 port of machine1 .
In this install hadb is installed on machine1 and machine2 machine.
Steps to Configure hadb for Sun Application server 9.1 on Solaris 10 machine :
Pre-requisites for configuring hadb :
1. All the machines should be in the same subnet
2. Ensure that name resolution of all servers is correct on each
server, either via the hosts file or DNS as required.
3. Ensure that the fully qualified hostname is the first entry
after the IP address in the /etc/hosts file. Enter the other machine
details also in hosts file. For ex : machine1.india.sun.com should be present in hosts file of machine2 and viceversa
cat /etc/hosts file on machine1 :
127.0.0.1 localhost
172.12.144.23 machine1 machine1.com loghost
172.12.144.24 machine2 machine2.com
Repeat the same thing for hosts file on machine2
4. Shared Memory Configuration
Depending on how much physical memory is
on the system, configure the shared memory in the system
configuration file: /etc/system
root@as1#prtconf | grep Mem
Memory
size: 1024 Megabytes
Use the following formula to calculate
the value of the shminfo_shmmax parameter
shminfo_shmmax
=(
Server's Physical Memory in MB / 256MB ) * 10000000
examples:
2GB
== 80000000
1GB
== 40000000
512MB
== 20000000
Add the following parameters to the
/etc/system configuration file:
set
shmsys:shminfo_shmmax=0x40000000
set
shmsys:shminfo_shmseg=20
set
semsys:seminfo_semmni=16
set
semsys:seminfo_semmns=128
set
semsys:seminfo_semmnu=1000
set ip:dohwcksum=0
5.Check that hostname lookup and
reverse lookup is functioning correctly, check the contents of the
/etc/nsswitch.conf file hosts entry:
root@as1#cat /etc/nsswitch.conf | grep hosts
hosts: files dns
6. Allow non-console root login by
commenting out the CONSOLE=/dev/console entry in the
/etc/default/login file:
root@as1#cat /etc/default/login | grep “CONSOLE=”
#CONSOLE=/dev/console
7. Enable remote root
ftp, comment out the root entry in the /etc/ftpd/ftpusers
file:
root@as1#cat /etc/ftpd/ftpusers | grep root
#root
8. Permit ssh root login. Set
PermitRootLogin to yes in /etc/ssh/sshd_config
file, and restart the ssh daemon process:
root@as1#cat /etc/ssh/sshd_config | grep PermitRootLogin
PermitRootLogin
yes
9. root@as1#/etc/init.d/sshd stop
10. root@as1#/etc/init.d/sshd start
11. Generate the ssh plulic and private
key pair on each machine, machine1 and machine2 in this case :
root@as1#ssh-keygen -t dsa
Enter file in
which to save the key(//.ssh/id_dsa): <CR>
Enter
passphrase(empty for no passphrase): <CR>
Enter same
passphrase again: <CR>
12. Copy all the public key values to each server's authorized_keys file. Create the
authorized_keys file on each server
root@as1# cd
~/.ssh
root@as1# cp
id_dsa.pub authorized_keys
Run the same on machine2 machine also and copy the public key of machine1(present in the authorized_keys file on machine1) to the authorized_keys file on machine2 and do the same thing viceversa.
13.disableIPv6 interface that is not supported by HADB.
To do this on solaris, please remove the file /etc/hostname6.__0(where __ is eir or hme)
14. Make Date and Time same on all the machines involved in the topology
15. Restart both the machines using init 6
16. Install AS9.1 along with hadb from the installer panel on both the machines machine1 and machine2
17. On both machine1 and machine2 run ma,
cd
/opt/SUNWhadb/4/bin
./ma
18. We have noticed that this wont install all the hadb packages. Hence on both the machines, go to the directory where you have unzipped the AS9.1 installer ex : <AS9.1 unzip location>/installer-ifr/package/
19. run pkgadd -d . SUNWhadbe SUNWhadbi SUNWhadbv
20.machine1 will have DAS and first portal instance and machine2 machine has second portal instance.
21. On machine1 : create cluster
./asadmin create-cluster --user admin pscluster
22. Create node agent on machine1
./asadmin create-node-agent --host machine1.com --port 4848 --user admin machine1node
23. Create node agent on machine2(Note, the --host should point to machine1 since machine1 is the Admin server)
./asadmin create-node-agent --host machine1 --port 4848 --user admin machine2node
24. Create an AS9.1 instance on machine1 :
./asadmin create-instance --user admin --cluster pscluster --nodeagent machine1node --systemproperties HTTP_LISTENER_PORT=38080 machine1instance
25. Create an AS9.1 instance on machine2 :
./asadmin create-instance --user admin --cluster pscluster --host machine1.com --nodeagent machine2node --systemproperties HTTP_LISTENER_PORT=38080 machine2instance
26. Start both the node agents :
/opt/SUNWappserver/appserver/bin/asadmin start-node-agent machine1node
27. run configure-ha-cluster
./asadmin configure-ha-cluster --user admin --port 4848 --devicesize 256 --hosts machine1.com,machine2.com pscluster
IMP Note :
If configure-ha-cluster fails for some reason, then while re-installing the next time, do a ps -ef | grep ma and kill all the ma process and the process which runs on port 15200
restart the machines again and try configure-ha-cluster again.
If configure-ha-cluster is successful, one can start installing the Portal server 7.2 to leverage its enhanced cluster capability as given in the following blog by Prakash Radhakrishnan