1. Quick Start for Basic Features
2. Use Cases for Production Deployments
Deploying an Application to a Two-Instance Cluster
To Install and Configure the GlassFish Server Cluster
To Install and Configure iPlanet Web Server for Load Balancing
Configuring an Oracle Data Source
To Integrate the JDBC Driver into GlassFish Server
To Create a JDBC Connection Pool
Configuring Transport Layer Security (TLS)
To Configure GlassFish Server for TLS/SSL
This example provides all the steps for configuring a cluster in which iPlanet Web Server is used with the load balancer plug-in for load balancing of two GlassFish Server instances. A simple web application is deployed to this cluster. Users of this application access the application through a virtual server.
Note - In this example, line breaks are included for enhanced readability. These line breaks are not part of the syntax of the commands.
The assumptions for this example are as follows:
The domain administration server (DAS) will run on the host dashost.example.com.
The web server and load balancer plug-in will run on the host lbhost.example.com.
The instances will run on the hosts sj01.example.com and sj02.example.com
All steps are performed by the user gfuser.
On the DAS host, the parent of the base installation directory of the Oracle GlassFish Server software is /home/gfuser/glassfish3.
The path of user gfuser contains the directory /home/gfuser/glassfish3/bin.
Secure shell (SSH) software is installed and configured on each host.
The SSH Server Daemon sshd is running on each host.
The configuration of the cluster in this example is shown in the following figure.
Figure 2-1 Sample Two-Instance Cluster
The following topics are addressed here:
All steps in this procedure are performed from the DAS host.
dashost$ asadmin Use "exit" to exit and "help" for online help.
asadmin> setup-ssh sj01.example.com sj02.example.com SSH key not found for user gfuser Would you like to generate a SSH key pair (without a key passphrase) for gfuser to access [sj01.example.com, sj02.example.com]? [y/n]: yes Enter SSH password for gfuser@sj01.example.com> Created directory /home/gfuser/.ssh /usr/bin/ssh-keygen successfully generated the identification /home/gfuser/.ssh/id_rsa Copied keyfile /home/gfuser/.ssh/id_rsa.pub to gfuser@sj01.example.com Successfully connected to gfuser@sj01.example.com using keyfile /home/gfuser/.ssh/id_rsa Successfully connected to gfuser@sj02.example.com using keyfile /home/gfuser/.ssh/id_rsa SSH public key authentication is already configured for gfuser@sj02.example.com Command setup-ssh executed successfully.
asadmin> install-node --installdir /export/glassfish3 sj01.example.com sj02.example.com Created installation zip /home/gfuser/glassfish3033977962688704206.zip Successfully connected to gfuser@sj01.example.com using keyfile /home/gfuser/.ssh/id_rsa Copying /home/gfuser/glassfish3033977962688704206.zip (90012883 bytes) to sj01.example.com:/export/glassfish3 Installing glassfish3033977962688704206.zip into sj01.example.com:/export/glassfish3 Removing sj01.example.com:/export/glassfish3/glassfish3033977962688704206.zip Fixing file permissions of all files under sj01.example.com:/export/glassfish3/bin Successfully connected to gfuser@sj02.example.com using keyfile /home/gfuser/.ssh/id_rsa Copying /home/gfuser/glassfish3033977962688704206.zip (90012883 bytes) to sj02.example.com:/export/glassfish3 Installing glassfish3033977962688704206.zip into sj02.example.com:/export/glassfish3 Removing sj02.example.com:/export/glassfish3/glassfish3033977962688704206.zip Fixing file permissions of all files under sj02.example.com:/export/glassfish3/bin Command install-node executed successfully.
asadmin> start-domain domain1 Waiting for domain1 to start ............................ Successfully started the domain : domain1 domain Location: /home/gfuser/glassfish3/glassfish/domains/domain1 Log File: /home/gfuser/glassfish3/glassfish/domains/domain1/logs/server.log Admin Port: 4848 Command start-domain executed successfully.
asadmin> enable-secure-admin Command enable-secure-admin executed successfully.
asadmin> restart-domain domain1 Successfully restarted the domain Command restart-domain executed successfully.
asadmin> create-cluster pmdcluster Command create-cluster executed successfully.
asadmin> create-node-ssh --nodehost sj01.example.com --installdir /export/glassfish3 sj01 Command create-node-ssh executed successfully.
asadmin> create-node-ssh --nodehost sj02.example.com --installdir /export/glassfish3 sj02 Command create-node-ssh executed successfully.
asadmin> create-instance --node sj01 --cluster pmdcluster pmd-i1 Command _create-instance-filesystem executed successfully. Port Assignments for server instance pmd-i1: JMX_SYSTEM_CONNECTOR_PORT=28686 JMS_PROVIDER_PORT=27676 HTTP_LISTENER_PORT=28080 ASADMIN_LISTENER_PORT=24848 JAVA_DEBUGGER_PORT=29009 IIOP_SSL_LISTENER_PORT=23820 IIOP_LISTENER_PORT=23700 OSGI_SHELL_TELNET_PORT=26666 HTTP_SSL_LISTENER_PORT=28181 IIOP_SSL_MUTUALAUTH_PORT=23920 The instance, pmd-i1, was created on host sj01.example.com Command create-instance executed successfully.
asadmin> create-instance --node sj02 --cluster pmdcluster pmd-i2 Command _create-instance-filesystem executed successfully. Port Assignments for server instance pmd-i2: JMX_SYSTEM_CONNECTOR_PORT=28686 JMS_PROVIDER_PORT=27676 HTTP_LISTENER_PORT=28080 ASADMIN_LISTENER_PORT=24848 JAVA_DEBUGGER_PORT=29009 IIOP_SSL_LISTENER_PORT=23820 IIOP_LISTENER_PORT=23700 OSGI_SHELL_TELNET_PORT=26666 HTTP_SSL_LISTENER_PORT=28181 IIOP_SSL_MUTUALAUTH_PORT=23920 The instance, pmd-i2, was created on host sj02.example.com Command create-instance executed successfully.
asadmin> start-cluster pmdcluster Command start-cluster executed successfully.
asadmin> list-instances pmd-i1 running pmd-i2 running Command list-instances executed successfully.
asadmin> exit Command multimode executed successfully.
All steps in this procedure are performed from the host where the web server and load balancer plug-in will run.
Before You Begin
This example assumes that the path of user gfuser contains the /home/gfuser/webserver7/bin directory.
lbhost$ unzip Oracle-iPlanet-Web-Server-7.0.9-solaris-sparc.zip
lbhost$ setup &
Other steps in this procedure assume the following option settings:
Installation Directory: /home/gfuser/webserver7
Type of Installation: Express
Administrator User Name: admin
Start Administration Server: checked
lbhost$ wadm --user=admin Please enter admin-user-password> Connected to localhost:8989 Oracle iPlanet Web Server 7.0.9 B07/04/2010 02:15
wadm> create-selfsigned-cert --server-name=lbhost.example.com --nickname cert-lbhost --token=internal --config=lbhost CLI201 Command 'create-selfsigned-cert' ran successfully
wadm> create-http-listener --server-name lbhost.example.com --default-virtual-server-name=lbhost --listener-port 8082 --config lbhost http-listener-ssl CLI201 Command 'create-http-listener' ran successfully
wadm> set-ssl-prop --http-listener http-listener-ssl --config lbhost enabled=true client-auth=optional server-cert-nickname=cert-lbhost CLI201 Command 'set-ssl-prop' ran successfully
wadm> deploy-config lbhost CLI201 Command 'deploy-config' ran successfully
wadm> exit
Unless otherwise stated, all steps in this procedure are performed from the host where the web server and load balancer plug-in will run.
dashost$ keytool -export -rfc -alias s1as -keystore /home/gfuser/glassfish3/glassfish/domains/domain1/config/keystore.jks -file ./s1as.rfc Enter keystore password: Certificate stored in file <./s1as.rfc>
lbhost$ unzip glassfish-lbconfigurator-3_1.zip Archive: glassfish-lbconfigurator-3_1.zip inflating: glassfish-lbconfigurator-3_1.jar
lbhost$ java -jar glassfish-lbconfigurator-3_1.jar
Other steps in this procedure assume the following option settings:
Web Server Instance Directory: /home/gfuser/webserver7/https-lbhost
DAS Certificate File: s1as.rfc
lbhost$ wadm start-instance --user=admin --config=lbhost Please enter admin-user-password> CLI204 Successfully started the server instance.
All steps in this procedure are performed from the DAS host.
Before You Begin
This example assumes that the host name pmd.example.com is registered with the DNS server for the example.com domain.
dashost$ asadmin Use "exit" to exit and "help" for online help.
asadmin> create-virtual-server --hosts pmd.example.com --networklisteners http-listener-1 --target pmdcluster pmdserver Command create-virtual-server executed successfully.
asadmin> deploy --availabilityenabled=true --target pmdcluster --virtualservers pmdserver /home/gfuser/apps/hello.war Application deployed with name hello. Command deploy executed successfully.
asadmin> create-http-lb --devicehost lbhost.example.com --deviceport 8082 --target pmdcluster --lbenableallinstances --lbenableallapplications=hello pmdcluster-lb-config Command create-http-lb executed successfully.
asadmin> apply-http-lb-changes pmdcluster-lb-config Command apply-http-lb-changes executed successfully.
asadmin> exit Command multimode executed successfully.