Architecture of Server
Click to Enlarge
Configuration changes to the Linux kernel are required to increase the amount of shared memory available. HADB utilizes shared memory to communicate synchronously with the application server for performance and writes to disk asynchronously in a separate thread for recovery in the event of a failure.
Creating clusters utilizing DAS was a breeze. Instances can be configured and added to clusters even if they don't physically exist yet, and the DAS will automatically detect when the instance comes online. Configurations can be created and shared by clusters or copied to create similar configurations with the ability to tweak settings such as base ports, JVM settings, thread pools and logging details.
Once the cluster was configured it was necessary to configure the loadbalancer.xml file. This file specifies the members of the cluster and is utilized by Sun's Web server plug-in, which is supported by both Sun's ONE Web Server and Apache. In previous versions of Sun's application server it was necessary to manually edit this file, which meant continuing maintenance when adding or removing machines from the cluster. This functionality has been moved into the command line interface administrative tool, asadmin. The loadbalancer.xml file is now automatically generated in a few short asadmin commands and is subsequently updated automatically as instances are added or removed from the cluster.
Once the cluster and load balancing configuration was complete, I was able to easily start and stop instances from DAS. After starting both instances, I was able to deploy applications to the cluster in a few simple steps. Applications can be designated for deployment to any combination of clusters and individual server instances. Configuring JDBC connection pools and data sources was just as easy, and I was able to push the configuration to the cluster, so all machines in the cluster were automatically configured with the JDBC data sources in one easy step.
Application management in Sun's DAS
Click to Enlarge
Using Sun's latest version of NetBeans, version 4.1, I was able to quickly develop a J2EE application that utilized JSP and JSTL (Java Server Tag Library) to communicate with a custom EJB (Enterprise Java Bean) handling communication with NWC Inc.'s inventory stored in an Oracle 9i database. I was able to easily deploy the application to the cluster using DAS.
Testing HADB was a simple process. I deployed a simple JSP, which printed out information regarding the server it had come from (test4, test2) and session data. Via the same JSP, I was able to add session data after deploying it to the cluster. After adding unique session data, I stopped the instance of 8.1 running on test2. I then tried to add more session data to on the page accessing test2 and was immediately served by test4, but session data was intact, proving that HADB was working correctly.
Also cool and new in AS 8.1 is support for JMX (Java Management eXtensions) Mbeans. While running the JMX Console that comes with J2SE 5.0, I was able to monitor all instances of the application server. Although not very useful in the lab environment, in a larger J2EE-based infrastructure, JMX is a powerful mechanism for monitoring multiple J2EE-based applications and technologies and is supported by most of the J2EE application server vendors as well as some J2EE-specific applications.
In older versions of Sun's application server, load balancing and HADB were only available in the enterprise edition (EE). With the new pricing structure of Application Server 8.1, load balancing capabilities have been moved into the Standard Edition (SE), while HADB capabilities remain an EE feature. At an easy to swallow $2,000 per CPU for SE, that's a lot of power, and the $10,000 per CPU for EE is still only a third of a comparable offering from IBM.
It may have taken Sun a while to catch up with the competition in terms of administrative capabilities and feature sets, but Sun Java System Application Server 8.1 is definitely a player in the market again.