You are viewing a plain text version of this content. The canonical link for it is here.
Posted to olio-commits@incubator.apache.org by sh...@apache.org on 2009/09/30 17:35:33 UTC

svn commit: r820360 [2/7] - in /incubator/olio/docs: java_setup.html java_setup_kit.html php_setup.html php_setup_kit.html rails_setup.html rails_setup_kit.html

Modified: incubator/olio/docs/java_setup.html
URL: http://svn.apache.org/viewvc/incubator/olio/docs/java_setup.html?rev=820360&r1=820359&r2=820360&view=diff
==============================================================================
--- incubator/olio/docs/java_setup.html (original)
+++ incubator/olio/docs/java_setup.html Wed Sep 30 17:35:33 2009
@@ -1,359 +1,53 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 <head>
-
-
-
-
-
-
-
-
-  
-  
-  
-  
-  
-  
-  
-  <meta http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
-
-
-
-
-
-
-
-  
-
-
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
+  <meta http-equiv="CONTENT-TYPE"
+ content="text/html; charset=iso-8859-1">
   <title>Olio/Java Install and Setup Guide</title>
   <meta name="generator" content="Bluefish 1.0.7">
-
-
-
-
-
-
-
-
-  
-  
-  
-  
-  
-  
-  
   <meta name="author" content="Akara Sucharitakul">
-
-
-
-
-
-
-
-
-  
-  
-  
-  
-  
-  
-  
   <meta name="CREATED" content="20070926;10111500">
-
-
-
-
-
-
-
-
-  
-  
-  
-  
-  
-  
-  
   <meta name="CHANGEDBY" content="Shanti Subramanyam">
-
-
-
-
-
-
-
-
-  
-  
-  
-  
-  
-  
-  
   <meta name="CHANGED" content="20071002;14122900">
 </head>
-
-
 <body style="direction: ltr;" lang="en-US">
-
-
-
-
-
-
-
-
 <h1 align="center">Olio/Java<br>
-
-
-
-
-
-
-
-
-Install and Setup Guide From Source Tree</h1>
-
-
-
-
-
-
-
-
-<p><span style="font-weight: normal;">Note: The
-application currently does not use memcached. Please ignore the
-memcached related setup instructions</span><br>
-
-
-
-
-
-
-
-
-</p>
-
-
-
-
-
-
-
-
+Install and Setup Guide From Source<br>
+</h1>
 <h2>Overview</h2>
-
-
-
-
-
-
-
-
 <p>Java Olio is a macro-level benchmark consisting of the
 following
 components:</p>
-
-
-
-
-
-
-
-
 <ol>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  <li>
     <p style="margin-bottom: 0in;">The web application</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
     <p style="margin-bottom: 0in;">The main database </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p style="margin-bottom: 0in;">Distributed storage
-servers (MogileFS or localFS)</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p style="margin-bottom: 0in;">Storage metadata
-database (for MogileFS)</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
+    <p style="margin-bottom: 0in;">Distributed storage servers (NFS or
+MogileFS)</p>
+  </li>
+</ol>
+<ol start="4">
+  <li>An optional caching server (memcached)<br>
+  </li>
+</ol>
+<ol start="5">
+  <li>
+    <p style="margin-bottom: 0in;">Storage metadata database (for
+MogileFS)</p>
+  </li>
+  <li>
     <p style="margin-bottom: 0in;">Geocoder emulator </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
     <p>Workload driver</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
+  </li>
 </ol>
-
-
-
-
-
-
-
-
 <p>If your primary interest is in setting up the application
-alone, you need items 1-5 above and they can all be setup on a single
+alone, you need items 1-3 above and they can all be setup on a single
 system. If on the other hand, you would like to drive load against the
 application, you will need at least 2 systems. At higher loads, you may
 need multiple systems. At a minimum, we need to separate the SUT
@@ -362,2407 +56,626 @@
 workload driver. It is best to connect the driver machine to the SUT
 machine on a local private network. This ensures that latencies
 measured do not include arbitrary delays.</p>
-
-
-
-
-
-
-
-
 <p>For a horizontally scaled workload, or to measure the
 performance of the individual components, you can deploy the SUT
 components on separate physical or virtual machines. &nbsp;Keep in
 mind though that the
-bulk of cpu is spent in the application server component.&nbsp;<br>
-
-
-
-
-
-<br>
-
-
-
-
-
-Java Olio is available either as a kit, or by downloading the source.
-&nbsp;There are two separate sections that describe how to get started,
-either by <a href="#Extracting_the_Contents">Extracting the Contents</a>, or by <a href="#Downloading_The_Source">Downloading the source</a>.<br>
-
-
-
-
-
+bulk of cpu is spent in the application server component. <br>
 <br>
-
-
-
-
-
-
-
-
 In the following sections, we'll go over the steps
 needed to configure each component :</p>
-
-
-
-
-
-
-
-
-<a href="#Extracting_the_Contents">Extracting the Contents</a><br>
-
-
-
-<br>
-
-
-
-<a href="#Downloading_The_Source">Downloading the source</a>
-<p><a href="#setupDriver">Setting up the driver</a></p>
-
-
-
-
-
-
-
-
-<p><a href="#installWebApp">Installing the Web
-Application</a></p>
-
-
-
-
-
-
-
-
-<p><a href="#setupDB">Setting up the database</a></p>
-
-
-
-
-
-
-
-
-<p><a href="#loadDB">Loading the database</a></p>
-
-
-
-
-
-
-
-
-<p><a href="#setupFileStore">Setting up the filestore</a></p>
-
-
-
-
-
-
-
-
-<p><a href="#startMemCached">Starting memcached
-Server</a></p>
-
-
-
-
-
-
-
-
-<p><a href="#setupEmulator">Setting up the Geocoder
-Emulator</a></p>
-
-
-
-
-
-
-
-
-<p><a href="#testWebApp">Testing the web application</a></p>
-
-
-
-
-
-
-
-
+<a href="#Prerequisite_Software:">Prerquisite Software<br>
+</a><br>
+<a href="#Downloading_The_Source">Downloading the Source</a>
+<p><a href="#setupDriver">Setting up the Driver</a></p>
+<p><a href="#setupDB">Setting up the Database</a></p>
+<p><a href="#loadDB">Loading the Database</a></p>
+<p><a href="#Setting_up_Caching">Setting up Caching<br>
+</a></p>
+<p><a href="#setupEmulator">Setting up the Geocoder Emulator</a><br>
+</p>
+<p><a href="#Installing_the_Web_Application_">Setting up the
+Application Server</a><br>
+</p>
+<p><a href="#installWebApp">Building the Web Application</a><br>
+</p>
+<p><a href="#testWebApp">Testing the Web Application</a></p>
 <p><a href="#startRun">Starting a benchmark run</a></p>
-
-
-
-
-
-
-
-
-<h2><a name="Prerequisite_Software:"></a>Prerequisite
-Software:</h2>
-
-
-
-
-
-
-
-
+<h2><a name="Prerequisite_Software:"></a>Prerequisite Software</h2>
 <ul>
-
-
-
-
-
-
-
-
-  <li><a href="http://java.sun.com/javase/downloads/index.jsp">Java
-SE 6</a></li>
-
-
-
-
-
-
-
-
-  <li><a href="http://ant.apache.org/">Apache
-Ant&nbsp;</a></li>
-
-
-
-
-
-
-
-
+  <li><a href="http://java.sun.com/javase/downloads/index.jsp">Java SE 6</a></li>
+  <li><a href="http://ant.apache.org/">Apache Ant&nbsp;</a></li>
   <li><a href="http://subversion.tigris.org/">Subversion:&nbsp;</a>
-an open source revision control system</li>
-
-
-
-
-
-
-
-
+(if you are going to be installing from the source repository)</li>
   <li><a href="http://faban.sunsource.net/">Faban</a>
 a facility for developing and running benchmarks.</li>
-
-
-
-
-
-
-
-
-  <li>Java EE 5 compliant application server - eg. <a href="https://glassfish.dev.java.net/public/downloadsindex.html">GlassFish</a></li>
-
-
-
-
-
-
-
-
-  <li>Java Persistence API (JPA) provider - eg. <a href="http://www.eclipse.org/eclipselink/">Eclipselink</a></li>
-
-
-
-
-
-
-
-
-  <li>Database tier - eg. mySQL</li>
-
-
-
-
-
-
-
-
-</ul>
-
-
-
-
-
-<h2><a name="Extracting_the_Contents"></a>Extracting the Contents</h2>
-
-
-
-
-
-<br>
-
-
-
-
-
-The Olio/Java kit is packaged as a gzipped tar file. The first task is
-to unzip the file and untar it to extract it's contents. Because of the
-long pathnames, please use gtar to extract. This can be done as follows:<br>
-
-
-
-
-
-<br>
-
-
-
-
-
-# gzcat olio-java-&lt;version&gt;.tar.gz | gtar xvf -<br>
-
-
-
-
-
-<br>
-
-
-
-
-
-This will cause a directory named olio-java-&lt;version&gt; to be created whose contents should look like:<br>
-
-
-
-
-
-<br>
-
-
-
-
-
-# ls olio-java-0.1*<br>
-
-
-
-
-
-<br>
-
-
-
-
-
-LICENSE JavaOlioDriver.jar RELEASE-NOTES-java-0.1.txt geocoder.war Java_setup.html<br>
-
-
-
-
-
-<br>
-
-
-
-
-
-NOTICE olioJava/ release<br>
-
-
-
-
-
-<br>
-
-
-
-
-
-#<br>
-
-
-
-
-
-<br>
-
-
-
-
-
-We will use $JAVA_OLIO_HOME to designate the name of this directory. A description of the contents follows :<br>
-
-
-
-
-
-<br>
-
-
-
-
-
-<ul>
-
-
-
-
-
-  <li>&nbsp;The <span style="font-style: italic;">oliojava</span> directory contains the web application. This
-application will be deployed on the webserver. <br>
-
-
-    <br>
-
-
-
-
-
-  </li>
-
-
-
-
-
-  <li>&nbsp;<span style="font-style: italic;">JavaOlioDriver.jar</span> contains the load generator/driver
-(which we typically refer to simply as <span style="font-style: italic;">driver</span>). The driver is
-implemented using <a href="http://sunsource.faban.net">Faban</a>, an open source benchmarking toolkit.<br>
-
-
-
-
-
-    <br>
-
-
-
-
-
-  </li>
-
-
-
-
-
-  <li><span style="font-style: italic;">geocoder.war</span> contains the simple servlet used to emulate the geocoder.<br>
-
-
-
-
-
-    <br>
-
-
-
-
-
-  </li>
-
-
-
-
-
-  <li><span style="font-style: italic;">java_setup.html</span> is this document.<br>
-
-
-    <br>
-
-
-
-
-
-  </li>
-
-
-
-
-
-  <li><span style="font-style: italic;">release</span> contains the release name. LICENSE and NOTICE contain the licenses.<br>
-
-
-
-
-
-  </li>
-
-
-
-
-
+  <li>Java EE 5 compliant application server - eg. <a
+ href="https://glassfish.dev.java.net/public/downloadsindex.html">GlassFish</a></li>
+  <li>Java Persistence API (JPA) provider - eg. <a
+ href="http://www.eclipse.org/eclipselink/">Eclipselink</a></li>
+  <li>Database server - e.g. MySQL(minimum 5.0)<br>
+  </li>
 </ul>
-
-
-
-
-
-
-
-
-<h2><a name="Downloading_The_Source"></a>Downloading
-The Source</h2>
-
-
-
-
-
-
-
-
-<span style="text-decoration: underline; font-weight: bold;"></span><br>
-
-
-
-
-
-
-
-
-The Olio source is available via SVN at <a href="https://svn.apache.org/repos/asf/incubator/olio/">https://svn.apache.org/repos/asf/incubator/olio/</a>.
-Please see the <a href="http://www.apache.org/dev/version-control.html#anon-svn">instructions</a>
+<h2><a name="Downloading_The_Source"></a>Downloading The Source</h2>
+The Olio source is available in the source package
+(apache-olio-java-src-&lt;version&gt;.tar) from the Olio <a
+ href="http://incubator.apache.org/olio/downloads">Downloads</a> page
+or via SVN at <a
+ href="https://svn.apache.org/repos/asf/incubator/olio/">https://svn.apache.org/repos/asf/incubator/olio/</a>.
+The source kit offers a stable release and the SVN repository has the
+latest code. If you choose to use SVN, please see the <a
+ href="http://www.apache.org/dev/version-control.html#anon-svn">instructions</a>
 for downloading the source. We will use $OLIO_HOME to designate the
 directory where the source is downloaded. The source is organized as
 follows :<br>
-
-
-
-
-
-
-
-
-<br>
-
-
-
-
-
-
-
-
 <ul>
-
-
-
-
-
-
-
-
   <li>The <span style="font-style: italic;">webapp</span> directory
-contains the web application. The java/trunk sub-directory
+contains the web application. The <span style="font-style: italic;">java/trunk
+    </span>sub-directory
 contains the workspace for the Java application. The java source
-directory resides in java/trunk/ws/apps/webapp/src/java. &nbsp;We
-will
-refer to
-webapp/java/trunk as $WEBAPP in this document.</li>
-
-
-
-
-
-
-
-
+directory resides in j<span style="font-style: italic;">ava/trunk/ws/apps/webapp/src/java</span>.
+&nbsp;We
+will refer to <span style="font-style: italic;">webapp/java/trunk</span>
+as $WEBAPP in this document.</li>
 </ul>
-
-
-
-
-
-
-
-
 <ul>
-
-
-
-
-
-
-
-
   <li>The <span style="font-style: italic;">workload</span>
 directory contains the code for the load
 generator/driver (which we typically refer to simply as driver). The
 driver is implemented using <a href="http://faban.sunsource.net/">Faban</a>,
-an open source benchmarking toolkit. The java/trunk sub-directory has
+an open source benchmarking toolkit. The <span
+ style="font-style: italic;">java/trunk</span> sub-directory has
 the faban driver code to drive the php application. In future, we'd
 like to integrate the driver source for all implementations of the
-application. The $OLIO_HOME/workload/java/trunk directory is referred to as
-$WORKLOAD in this document.<br>
-
-
-
-
-
-  </li>
-
-
-
-
-
-  <li>The geocoder directory contains the code for the geocoder emulator. This code is shared across all implementations of Olio.<br>
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
+application. The $OLIO_HOME/workload/java/trunk directory is referred
+to as
+$WORKLOAD in this document.</li>
 </ul>
-
-
-
-
-
-
-
-
-<p></p>
-
-
-
-
-
-
-
-
-<h2><a name="setupDriver"></a>Setting up the
-driver</h2>
-
-
-
-
-
-
-
-
+<ul>
+  <li>The <span style="font-style: italic;">geocoder</span> directory
+contains the code for the geocoder emulator. This code is shared across
+all implementations of Olio.<br>
+  </li>
+</ul>
+<h2><a name="setupDriver"></a>Setting up the Driver</h2>
 Even if you don't plan to drive load against the application, this
 setup is required as the database and file loaders are part of the
-workload driver&nbsp; - feel free to install the driver on the same
+workload driver&nbsp; - in this case feel free to install the driver on
+the same
 system as the web application.
 <ol>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p align="left">See <a href="http://faban.sunsource.net/docs/guide/harness/install.html">http://faban.sunsource.net/docs/guide/harness/install.html</a>
+  <li>
+    <p align="left">See <a
+ href="http://faban.sunsource.net/docs/guide/harness/install.html">http://faban.sunsource.net/docs/guide/harness/install.html</a>
 for Faban installation instructions. Note that faban needs to be
-installed on all the machines used for the benchmark. &nbsp; Please
+installed on all the machines used for the benchmark.&nbsp; Please
 also read the <span style="font-style: italic;">Getting
 Started Guide</span> to get a high-level understanding of Faban
 terminology and how it works.&nbsp; From now on, we
 will refer to the faban install directory as $FABAN_HOME.</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>Install the required Faban services : <br>
+  </li>
+  <ul>
+    <li><code>cd $FABAN_HOME</code></li>
+    <li><code>cp
+samples/services/GlassfishService/build/GlassfishService.jar
+services&nbsp; (if using Glassfish)<br>
+      </code></li>
+    <li><code>cp samples/services/MysqlService/build/MysqlService.jar
+services</code></li>
+    <li><code>cp
+samles/services/MemcachedService/build/MemcachedService.jar
+services&nbsp; (if using Memcached)</code><br>
+    </li>
+  </ul>
+  <li>
     <p align="left">To build the driver, do the following:<br>
-
-
-
-
-
-
-
-
     </p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
     <ul>
-
-
-
-
-
-
-
-
-      <li>cd $WORKLOAD/java/trunk<br>
-
-
-
-
-
-
-
-
+      <li><code>cd $WORKLOAD; cp build.properties.template
+build.properties</code><br>
         <br>
-
-
-
-
-
-
-
-
       </li>
-
-
-
-
-
-
-
-
-      <li>Copy build.properties.template to build.properties. &nbsp;Edit this new file build.properties and set faban.home to
-$FABAN_HOME, faban.url to <span style="font-family: monospace;">http://driver_host:9980
-        </span>where <span style="font-style: italic;">driver_host</span>
+      <li>Edit build.properties and set faban.home to
+$FABAN_HOME, faban.url to <span style="font-family: monospace;">http://<span
+ style="font-style: italic;">driver_host</span>:9980 </span>where <span
+ style="font-style: italic;">driver_host</span>
 is the name of the machine where the Faban master will run. This is
 usually the driver system.<br>
-
-
-
-
-
-
-
-
         <br>
-
-
-
-
-
-
-
-
       </li>
-
-
-
-
-
-
-
-
       <li>Set the environment variable JAVA_HOME to point to your
-JDK1.6 installation.<br>
-
-
-
-
-
-
-
-
+JDK1.6 installation.</li>
+    </ul>
+    <br>
+    <ul>
+      <li><a href="http://dev.mysql.com/downloads/connector/j/5.0.html">Download</a>
+MySQL Connector/J (JDBC Driver for MySQL) and install
+the jar in the <code>$WORKLOAD/lib</code> directory.<br>
         <br>
-
-
-
-
-
-
-
-
       </li>
-
-
-
-
-
-
-
-
-      <li>Build the driver using the command: ant deploy.jar. If
-successful, you should see the file JavaWeb20Driver.jar in the build
+      <li>Build the driver using the command: <code>ant deploy.jar</code>.
+If
+successful, you should see the file OlioDriver.jar in the <span
+ style="font-style: italic;">build</span>
 sub-directory.</li>
-
-
-
       <br>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
     </ul>
-
-
-
-  </li>
-
-
-
-  <li>Download MySQL Connector/J (JDBC Driver for MySQL) and install the jar in&nbsp;$FABAN_HOME/benchmarks/JavaOlioDriver/lib.</li>
-
-
-
-
-
-
-
-
-  
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p align="left">For the driver to work, you will need
+  </li>
+  <li> For the driver to work, you will need
 JDK 1.6. Set JAVA_HOME to the path of the JDK in the faban user's
-environment.</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p align="left">Start the faban master on the master
-driver machine :</p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
+environment.</li>
+  <li>
+    <p align="left">Start the faban master on the master driver machine
+:</p>
     <p align="left">$FABAN_HOME/master/bin/startup.sh</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
     <p align="left">Test that you can connect to the
 master by pointing your browser at http://<i>&lt;driver_machine&gt;</i>:9980.
 &nbsp;You should see the Faban welcome page or if you have already
 deployed the driver, a page with the text "Welcome to Java Olio
 Workload"</p>
-
-
-
-  </li>
-
-
-
+  </li>
+  <li>
+    <p>Copy&nbsp; MySQL Connector/J (JDBC Driver for MySQL) jar to
+$FABAN_HOME/benchmarks/OlioDriver/lib. </p>
+  </li>
   <li>To deploy the Faban driver, you can
-either copy $WORKLOAD/build/JavaOlioDriver.jar to the
-$FABAN_HOME/benchmarks directory, or execute <span style="font-family: monospace;">ant deploy</span>.
+either copy $WORKLOAD/build/OlioDriver.jar to the
+$FABAN_HOME/benchmarks directory, or execute <span
+ style="font-family: monospace;">ant deploy</span>.
 &nbsp;Executing the deploy target will deploy the build jar file on
 the Faban master that you specified as the 'faban.url' in the
-build.properties file. &nbsp;To use ant deploy you must have completed steps 4, 6 and 7 and have Faban up and running.</li>
-
-
-
-
-
-  
-
-
-
-
+build.properties file. &nbsp;To use ant deploy you must have completed
+steps 4, 6 and 7 and have Faban up and running.</li>
 </ol>
-
-
-
-
-
-
-
-
 <span style="font-weight: bold;"></span>
-<h2><a name="Setting_Up_the_Database"></a>Setting
-Up the Database</h2>
-
-
-
-
-
-
-
-
-Sun Web Stack (formerly known as Coolstack) is one pre-integrated suite of open source applications
-optimized for Solaris. If you're running on any other operating system,
-please install the mySQL on those systems. &nbsp;You can <a href="https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=Web-Stack-1.4-OTH-G-F@CDS-CDS_SMI">download</a> the official Sun binaries for Sun Web Stack if you are on Solaris or Red Hat Linux.
+<h2><a name="Setting_Up_the_Database"></a>Setting Up the Database</h2>
+Sun Web Stack is one pre-integrated suite
+of open source applications
+optimized for Solaris and RHEL. You can <a
+ href="https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=Web-Stack-1.4-OTH-G-F@CDS-CDS_SMI">download</a>
+the official Sun binaries for Sun Web Stack if you are on Solaris or
+Red Hat Linux (it comes pre-installed on OpenSolaris). If you are
+running on any other operating system,
+please install MySQL on the database system. &nbsp;
 <span style="font-weight: bold;"></span>
 <ol>
-
-
-
-
-
-
-
-
-  <li>If you plan to run MySQL on a separate machine, install
-MySQL on
+  <li>If you plan to run MySQL on a separate machine, install MySQL on
 that system. We will refer to the MySQL installation directory as
 MYSQL_HOME.</li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  <li>
     <p>Setup the mysql user/group and permissions for its
 directories: <br>
-
-
-
-
-
-
-
-
-    <span style="font-family: monospace;"></span><span style="font-family: monospace;"># groupadd mysql </span><br style="font-family: monospace;">
-
-
-
-
-
-
-
-
+    <span style="font-family: monospace;"></span><span
+ style="font-family: monospace;"># groupadd mysql </span><br
+ style="font-family: monospace;">
     <span style="font-family: monospace;"># useradd
--d&nbsp;$MYSQL_HOME -g mysql -s /usr/bin/bash&nbsp;</span><span style="font-family: monospace;">mysql</span><span style="font-family: monospace;"><br>
-
-
-
-
-
-
-
-
+-d&nbsp;$MYSQL_HOME -g mysql -s /usr/bin/bash&nbsp;</span><span
+ style="font-family: monospace;">mysql</span><span
+ style="font-family: monospace;"><br>
 # chown -R
 mysql:mysql $MYSQL_HOME</span><br>
-
-
-
-
-
-
-
-
     <span style="font-family: monospace;"></span></p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
     <p>Create the database :<br>
-
-
-
-
-
-
-
-
-    <span style="font-family: monospace;"># su - mysql</span><br style="font-family: monospace;">
-
-
-
-
-
-
-
-
-    <span style="font-family: monospace;">$ cd&nbsp;bin</span><br style="font-family: monospace;">
-
-
-
-
-
-
-
-
+    <span style="font-family: monospace;"># su - mysql</span><br
+ style="font-family: monospace;">
+    <span style="font-family: monospace;">$ cd&nbsp;bin</span><br
+ style="font-family: monospace;">
     <span style="font-family: monospace;">$
 ./mysql_install_db</span></p>
-
-
-
-
-  </li>
-
-
-
-
+  </li>
   <li>A sample MySQL configuration file (my.cnf) is included in the
 $WEBAPP/etc. Please read the embedded comments and edit the file
 appropriately after copying it to /etc. &nbsp; Note that the data
-directory that the <span style="font-style: italic;">innodb_data_home_dir</span> variable refers to must be writable by the mysql user.<br>
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+directory that the <span style="font-style: italic;">innodb_data_home_dir</span>
+variable refers to must be writable by the mysql user.<br>
+  </li>
+  <li>
     <p>Start the mysql server. Substitute your own password for <i>pwd
     </i><span style="font-style: normal;">(we
 typically use</span><i> adminadmin</i><span style="font-style: normal;">)</span><br>
-
-
-
-
-
-
-
-
-    <span style="font-family: monospace;">$&nbsp;</span><span style="font-family: monospace;">./mysqld_safe --defaults-file=/etc/my.cnf &amp;</span><br style="font-family: monospace;">
-
-
-
-
-
-
-
-
+    <span style="font-family: monospace;">$&nbsp;</span><span
+ style="font-family: monospace;">./mysqld_safe
+--defaults-file=/etc/my.cnf &amp;</span><br
+ style="font-family: monospace;">
     <span style="font-family: monospace;">$ ./mysqladmin
--u root password <span style="font-style: italic;">&lt;your-</span></span><i style="font-family: monospace;"><span style="font-style: italic;">password&gt;</span><br>
-
-
-
-
-
-
-
-
+-u root password <span style="font-style: italic;">&lt;your-</span></span><i
+ style="font-family: monospace;"><span style="font-style: italic;">password&gt;</span><br>
 $ </i><span style="font-family: monospace;">./mysqladmin
--u root -h &lt;machine-name&gt; password</span><i style="font-family: monospace;">
+-u root -h &lt;machine-name&gt; password</span><i
+ style="font-family: monospace;">
 &lt;your-password&gt;</i></p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
     <p>Create the olio user and grant privileges :<br>
-
-
-
-
-
-
-
-
     <span style="font-family: monospace;">$ ./mysql -uroot
--p</span><i style="font-family: monospace;">pwd</i><br style="font-family: monospace;">
-
-
-
-
-
-
-
-
+-p</span><i style="font-family: monospace;">pwd</i><br
+ style="font-family: monospace;">
     <span style="font-family: monospace;">mysql&gt;
-create user 'olio'@'%' identified by 'olio';</span><br style="font-family: monospace;">
-
-
-
-
-
-
-
-
+create user 'olio'@'%' identified by 'olio';</span><br
+ style="font-family: monospace;">
     <span style="font-family: monospace;">mysql&gt;
-grant all privileges </span><span style="font-family: monospace;">on *.* to 'olio'@'%'
-identified by 'olio' with grant option;</span><span style="font-family: monospace;"></span><span style="font-family: monospace;"><br>
-
-
-
-
-
-
-
-
-    </span><span style="font-family: monospace;"></span><span style="font-family: monospace;"><br>
-
-
-
-
-
-
-
-
+grant all privileges </span><span style="font-family: monospace;">on
+*.* to 'olio'@'%'
+identified by 'olio' with grant option;</span><span
+ style="font-family: monospace;"></span><span
+ style="font-family: monospace;"><br>
+    </span><span style="font-family: monospace;"></span><span
+ style="font-family: monospace;"><br>
     <br>
-
-
-
-
-
-
-
-
     </span>In some cases the wildcard '%' does not work reliably
 as a
 substitution for all hosts. You need to grant the privileges to
 'olio'@'&lt;hostname&gt;' individually, where hostname are the
-names
-of the driver and apache systems.<br>
-
-
-
-
-
-
-
-
-    <span style="font-family: monospace;"></span>Eg.<span style="font-family: monospace;"> mysql&gt;
-grant all </span><span style="font-family: monospace;">privileges
-    </span><span style="font-family: monospace;">on
+names of the driver and apache systems.<br>
+    <span style="font-family: monospace;"></span>Eg.<span
+ style="font-family: monospace;"> mysql&gt;
+grant all </span><span style="font-family: monospace;">privileges </span><span
+ style="font-family: monospace;">on
 *.* to 'olio'@'localhost' identified by 'olio' with grant option;</span><br>
-
-
-
-
-
-
-
-
     </p>
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
+  </li>
   <li>Create database<br>
-
-
-
-
-
-
-
-
     <span style="font-family: monospace;">mysql&gt;
 create database bpwebapp;</span><br style="font-family: monospace;">
-
-
-
-
-
-
-
-
     <span style="font-family: monospace;">mysql&gt;
 use bpwebapp;<br>
-
-
-
-
-
-
-
-
     <br>
-
-
-
-
-
-
-
-
     </span></li>
-
-
-
-
-
-
-
-
   <li>Although it is possible to create the database schema
 automatically by JPA upon
 deployment or when the application server starts, it recommended to
 create the schema via the&nbsp;<span style="font-style: italic;">schema.sql</span>
 file provided found in the $WEBAPP/etc/, $WORKLOAD/bin or
-$FABAN_HOME/benchmarks/OlioJavaDriver/bin if you have already deployed
+$FABAN_HOME/benchmarks/OlioDriver/bin if you have already deployed
 the driver to the Faban master.<br>
-
-
-
-
-
-
-
-
     <br>
-
-
-
-
-
-
-
-
-    <span style="font-family: monospace;">mysql&gt; \.</span><span style="font-style: italic; font-family: monospace;">
+    <span style="font-family: monospace;">mysql&gt; \.</span><span
+ style="font-style: italic; font-family: monospace;">
 &lt;location&gt;</span><span style="font-family: monospace;">/schema.sql<br>
-
-
-
-
-
-
-
-
 mysql&gt; exit</span><span style="font-family: monospace;"><br>
-
-
-
-
-
-
-
-
     </span>&nbsp;Now, if you login as the user olio, you
 should be able to see the
 database created by the root user.</li>
-
-
-
-
-
-
-
-
 </ol>
-
-
-
-
-
-
-
-
-<h2><a name="loadDB"></a> <font size="4">Loading
-the database</font></h2>
-
-
-
-
-
-
-
-
+<h2><a name="loadDB"></a> <font size="4">Loading the Database</font></h2>
 <p><font size="3">It is best to load the database
 manually the first
 time so that we can test the web application. However, while doing
 benchmark runs, the benchmark driver can be configured to
 automatically re-load the database before the run.</font></p>
-
-
-
-
-
-
-
-
 <ol>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  <li>
     <p><font size="3">Login to the machine running
 the Faban master driver. Only this machine has the loader at this time.</font></p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li><font size="3">Go to the directory containing
-the loader script:<br>
-
-
-
-
-
-
-
-
-    </font><font size="3"><span style="font-family: monospace;"># cd </span></font><span style="font-family: monospace;"><span style="font-style: italic;">$FABAN_HOME</span>/benchmarks/JavaOlioDriver/bin</span></li>
-
-
-
-
-
-
-
-
+  </li>
+  <li><font size="3">Go to the directory containing the loader script:<br>
+    </font><font size="3"><span style="font-family: monospace;"># cd </span></font><span
+ style="font-family: monospace;"><span style="font-style: italic;">$FABAN_HOME</span>/benchmarks/OlioDriver/bin</span></li>
   <li>Ensure the script has execute permissions. Faban takes care
 of this for the runs, but since we have not yet started the first run,
 we will need to change that ourselves:<br>
-
-
-
-
-
-
-
-
-    <span style="font-family: monospace;"># chmod +x
-dbloader.sh</span></li>
-
-
-
-
+    <span style="font-family: monospace;"># chmod +x dbloader.sh</span></li>
   <li>You may have to edit the dbloader.sh to reflect your version of
 the JDBC Driver for MySQL that you downloaded and placed in the&nbsp;
-$FABAN_HOME/benchmarks/JavaOlioDriver/lib in step 3 of <a href="#setupDriver">Setting Up the Driver</a> section. &nbsp;On line 51 of dbloader.sh, the CLASSPATH is currently set to MySQL JDBC driver version 5.0.6. &nbsp;<br>
-
-
-
-
+$FABAN_HOME/benchmarks/OlioDriver/lib in step 3 of <a
+ href="#setupDriver">Setting Up the Driver</a> section. &nbsp;On line
+51 of dbloader.sh, the CLASSPATH is currently set to MySQL JDBC driver
+version 5.0.6. &nbsp;<br>
 Eg. <span style="font-family: monospace;">CLASSPATH=$B/mysql-connector-java-5.0.6-bin.jar</span></li>
-
-
-
-
-
-
-
-
   <li>Run the loader script:<br>
-
-
-
-
-
-
-
-
-    <span style="font-family: monospace;"># ./dbloader.sh <span style="font-style: italic;">&lt;dbserver&gt;
+    <span style="font-family: monospace;"># ./dbloader.sh <span
+ style="font-style: italic;">&lt;dbserver&gt;
 &lt;load_scale&gt;</span></span><br>
-
-
-
-
-
-
-
-
 For a fully loaded T2000 (8x1.2Ghz) we are currently running a scale of
 around 1000. You can start small with a SCALE of 50 or so for initial
 testing<span style="font-weight: bold;">.</span></li>
-
-
-
-
-
-
-
-
   <span style="font-family: monospace;"></span>
 </ol>
-
-
-
-
-
-
-
-
-<h2><a name="startMemCached"></a><font size="4">Setting up memcached
-server</font></h2>
-
-
-
-
-
-
-
-
-Note - for the current version of Olio Java, you will not have need to
-install memcached servers. <br>
-
-
-
-
-
-
-
-
-<br>
-
-
-
-
-
-
-
-
-The Olio application uses memcached for caching the home page which
-dramatically reduces the load on the database. If you are running Olio
-to stress MySQL, you may not want to have the caching tier. In this
-case, set the CacheSystem to NoCache in $APP_DIRetc/config.php. This
-will eliminate the use of memcached and all requests will directly go
-to the database. However, if you do want to use memcached (scaling will
-be very difficult without it), you need to setup an instance of
-memcached. This can typically run on the same system as the web server.
-<ol>
-
-
-
-
-
-
-
-
-  <li>Download and install memcached on the system you plan to
-use. </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p style="margin-bottom: 0in;"><font size="3">Start
-the memcached server thus :<br>
-
-
-
-
-
-
-
-
-    </font><font size="3"><span style="font-family: monospace;">#
-nohup /opt/coolstack/bin/memcached -m 256 -u mysql &amp;</span></font></p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p style="margin-bottom: 0in;">Edit the web.xml to
-reflect where you have installed your memcached servers (see Installing
-Web Application for more details).<font size="3"><span style="font-family: monospace;"><br>
-
-
-
-
-
-
-
-
-    </span></font><font size="3">Note that the
-Faban harness will start the memcached servers before each run.</font></p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-</ol>
-
-
-
-
-
-
-
-
-<h2><a name="setupEmulator"><font size="4">Setting
-up the Geocoder
+<h2><a name="setupEmulator"><font size="4">Setting up the Geocoder
 Emulator</font></a></h2>
-
-
-
-
-
-
-
-
-<p>The Geocoder Emulator is a simple J2EE application that you
-can deploy on
-Glassfish or Tomcat. It is typically run on a driver machine. The
-following steps
-describe how to install it.</p>
-
-
-
-
-
-
-
-
+<p>The Geocoder Emulator is a simple Java EE application that you
+can deploy on Glassfish or Tomcat. It is typically run on a driver
+machine. The
+following steps describe how to install it.</p>
 <p>To build the geocoder:</p>
-
-
-
-
-
-
-
-
 <ul>
-
-
-
-
-
-
-
-
   <li>Build the geocoder.war file by going to the 'geocoder'
 directory and following the instructions in the README file.</li>
-
-
-
-
-
-
-
-
 </ul>
-
-
-
-
-
-
-
-
 <p>
 For Glassfish:</p>
-
-
-
-
-
-
-
-
 <ol>
-
-
-
-
-
-
-
-
-  <li>Download and install Glassfish V2 from <a href="https://glassfish.dev.java.net/public/downloadsindex.html">https://glassfish.dev.java.net/public/downloadsindex.html.</a>
-&nbsp;(alternatively, you can use any J2EE container like Tomcat to
-deploy - see below)</li>
-
-
-
-
-
-
-
-
-  <li>Copy the geocoder.war from the geocoder directory ($OLIO_HOME/geocoder) to
+  <li>Download and install Glassfish V2 from <a
+ href="https://glassfish.dev.java.net/public/downloadsindex.html">https://glassfish.dev.java.net/public/downloadsindex.html.</a>
+    <br>
+  </li>
+  <li>Copy the geocoder.war from the geocoder directory
+($OLIO_HOME/geocoder) to
 $GLASSFISH_HOME/domains/domain1/autodeploy (domain1 is the default
 domain created with Glassfish)</li>
-
-
-
-
-
-
-
-
   <li>Start Glassfish by using $GLASSFISH_HOME/bin/asadmin
 start-domain domain1.</li>
-
-
-
-
-
-
-
-
 </ol>
-
-
-
-
-
-
-
-
 For Tomcat:
 <ol>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p>Download and install Tomcat (either from Cool Stack
-CSKtomcat package or directly from <a href="http://tomcat.apache.org/">http://tomcat.apache.org</a>)
-on the driver machine. The install directory doesn't matter &ndash;
+  <li>
+    <p>Download and install Tomcat (<a href="http://tomcat.apache.org/">http://tomcat.apache.org</a>)
+on the driver machine. The install directory doesn't matter &#8211;
 we will refer to it as $TOMCAT_HOME. </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p>Build the geocoder.war file by going to the 'geocoder' directory and following the instructions in the README file.</p>
-
-
-
-
-
-  </li>
-
-
-
-
-
-  <li>Copy the geocoder.war file from the geocoder/dist directory to $TOMCAT_HOME/webapps.</li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
+    <p>Build the geocoder.war file by going to the 'geocoder' directory
+and following the instructions in the README file.</p>
+  </li>
+  <li>Copy the geocoder.war file from the geocoder/dist directory to
+$TOMCAT_HOME/webapps.</li>
+  <li>
     <p>Start Tomcat using $TOMCAT_HOME/bin/startup.sh.</p>
-
-
-
-
-
-  </li>
-
-
-
-
-
+  </li>
 </ol>
-
-
-
-
-
-
-
-
-<h2><a name="Installing_the_Web_Application_"></a>Installing
-the Web Application</h2>
-
-
-
-
-
-
-
-
-<br>
-
-
-
-
-
-
-
-
-The web application is a J2EE 5 web application. It requires the
-following
-components:<br>
-
-
-
-
-
-
-
-
-<br>
-
-
-
-
-
-
-
-
+<h2><a name="Installing_the_Web_Application_"></a>Setting up the
+Application Server<br>
+</h2>
+The web application is a Java EE 5 web application. It requires the
+following components:<br>
 <ol>
-
-
-
-
-
-
-
-
-  <li>J2EE compliant application server (eg. <a href="https://glassfish.dev.java.net/public/downloadsindex.html">GlassFish
-v2.1</a>) (see special <a href="#Note_to_WebLogic_Application_Server">Note for Oracle WebLogic</a> users)</li>
-
-
-
-
-
-
-
-
-  <li>JPA provider &nbsp;( eg. <a href="http://www.eclipse.org/eclipselink/">Eclipselink</a>)</li>
-
-
-
-
-
-
-
-
+  <li>Java EE compliant application server (eg. <a
+ href="https://glassfish.dev.java.net/public/downloadsindex.html">GlassFish
+v2.1</a>)</li>
+  <li>JPA provider &nbsp;( eg. <a
+ href="http://www.eclipse.org/eclipselink/">Eclipselink</a>)</li>
 </ol>
-
-
-
-
-
-
-
-
-Install the necessary components outlined above. &nbsp;For
-GlassFish
-specific instructions, see section on GlassFish Installation and
-Configuration.<br>
-
-
-
-
-
-
-
-
-Before building the WAR file to deploy on the application server, you
-will first have to edit the web descriptors to point to your database
-and geocoder that you set up in the previous steps. &nbsp;<br>
-
-
-
-
-
-
-
-
+Install the necessary components outlined above.&nbsp; GlassFish
+specific instructions are given below. See <a href="#OtherAppServers">instructions</a>
+for other application servers.<br>
+<h2><font size="4"><a name="Glassfish_Installation_and_Configuration"></a>&nbsp;Glassfish
+Installation and Configuration</font></h2>
 <ol>
-
-
-
-
-
-
-
-
-  <li>Edit web.xml in the application war file to configure
-the&nbsp;
-geocoder URL. &nbsp;This is found in
-$WEBAPP/ws/apps/webapp/web/WEB-INF/web.xml &nbsp;</li>
-
-
-
-
-
-
-
-
-  
-  
-  
-  
-  
-  
-  
-  <ol>
-
-
-
-
-
-
-
-
-    <li>Edit the env-entry for Geocoder URL to point to where
-your geocoder application is deployed.</li>
-
-
-
-
-
-
-
-
-  
-  
-  
-  
-  
-  
-  
-  </ol>
-
-
-
-
-
-
-
-
+  <li>
+    <p>Install Glassfish application server V2 UR2 from <a
+ href="https://glassfish.dev.java.net/public/downloadsindex.html"><span
+ style="text-decoration: underline;">https://glassfish.dev.java.net/public/downloadsindex.html.</span></a>
+    <br>
+The directory where Glassfish has been installed will now be referred
+to as $GLASSFISH_HOME. </p>
+  </li>
+  <li>
+    <p>Download the JDBC driver for mysql from <a
+ href="http://dev.mysql.com/downloads/connector/j/5.1.html">http://dev.mysql.com/downloads/connector/j/5.1.html.</a>
+&nbsp; Extract the mysql-connector-java-5.1.X-bin.jar and drop this
+is
+$GLASSFISH_HOME/domains/domain1/lib/ext directory (or whatever you have
+named your domain).</p>
+  </li>
+  <li>The benchmark utilizes JPA (Java Persistence API) and has been
+benchmarked
+with the EclipseLink implementation. &nbsp;GlassFish v2
+uses TopLink as the default JPA implementation so you will have to
+    <a
+ href="http://www.eclipse.org/eclipselink/downloads/previous_releases.php">download</a>
+the eclipselink.jar,
+and &nbsp;put this in $GLASSFISH_HOME/lib directory.&nbsp;&nbsp;
+an issue with running with the latest EclipseLink, so you will need to
+get EclipseLink 1.1.0.
+  </li>
+  <br>
+  <li>Instructions on how to use the Glassfish admin
+interface is <a
+ href="https://glassfish.dev.java.net/javaee5/admin-gui/admin-gui.html#Usage">https://glassfish.dev.java.net/javaee5/admin-gui/admin-gui.html#Usage</a>.
+&nbsp;To edit the classpath prefix, please consult&nbsp; <a
+ href="https://glassfish.dev.java.net/javaee5/docs/AG/ablwj.html#ablwm">https://glassfish.dev.java.net/javaee5/docs/AG/ablwj.html#ablwm</a>.
+&nbsp;<br>
+Note:
+&nbsp;To use the admin interface, you will have to start Glassfish.
+&nbsp;To do
+so,&nbsp; use $GLASSFISH_HOME/bin/asadmin start-domain domain1 (or
+whatever your
+domain name is if you are using the default domain1).<br>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;To
+stop Glassfish, use $GLASSFISH_HOME/bin/asadmin stop-domain domain1.</li>
+  <li>
+    <p>Create JDBC connection pool and resource. &nbsp;Please
+consult <a
+ href="https://glassfish.dev.java.net/javaee5/docs/AG/ablih.html">https://glassfish.dev.java.net/javaee5/docs/AG/ablih.html</a>
+for details. &nbsp;MM MySQL Type 4 Driver (Non-XA)<br>
+The JAR file for the MySQL driver is
+mysql-connector-java-version-bin.jar, for example,
+mysql-connector-java-5.1.6-bin.jar. Configure the connection pool
+using the following settings:<br>
+    </p>
+    <ul>
+      <li>Name: Use this name when you configure the JDBC resource.
+&nbsp;eg. BPwebappPool</li>
+      <li>Resource Type: Specify the appropriate value, eg.
+javax.sql.DataSource</li>
+      <li>Database Vendor: mysql</li>
+      <li>DataSource Classname: Specify one of the following:</li>
+      <ul>
+        <li>com.mysql.jdbc.jdbc2.optional.MysqlDataSource</li>
+      </ul>
+      <li>Properties:</li>
+      <ul>
+        <li>serverName - Specify the host name or IP address of the
+database server.</li>
+      </ul>
+      <ul>
+        <li>port - Specify the port number of the database server eg.
+3306</li>
+      </ul>
+      <ul>
+        <li>user - Set as appropriate, &nbsp;eg. olio</li>
+        <li>&nbsp;password - Set as appropriate, eg. olio</li>
+        <li>databaseName - Set as appropriate, eg. bpwebapp</li>
+        <li>URL
+- If you are using global transactions, you can set this property
+instead of serverName, port, and databaseName, eg.
+jdbc:mysql://&lt;dbhost&gt;:3306/bpwebapp</li>
+        <li>Keep the rest of properties created.</li>
+      </ul>
+    </ul>
+6. &nbsp;Create the JDBC resource with the JNDI name
+jdbc/BPWebappDB pointing to new resource created above. </li>
 </ol>
-
-
-
-
-
-
-
-
-<h2><a name="Building_the_codebase"></a>Building
-the web application from the codebase</h2>
-
-
-
-
-
-
-
-
+<h2><a name="OtherAppServers"></a><font size="4">Configuring other
+Application Servers</font></h2>
 <ol>
-
-
-
-
-
-
-
-
+  <li>Download the JDBC driver for mysql from <a
+ href="http://dev.mysql.com/downloads/connector/j/5.1.html">http://dev.mysql.com/downloads/connector/j/5.1.html.</a>&nbsp;
+Extract the mysql-connector-java-5.1.X-bin.jar and put this your
+application server classpath (or external library directory)</li>
+  <li>Download a Java Persistence API (JPA) provider, eg.
+EclipseLink. &nbsp;You will have to download the eclipselink.jar
+from <a href="http://www.eclipse.org/eclipselink">http://www.eclipse.org/eclipselink</a>,
+and put this in your application server classpath.</li>
+  <li>Create JDBC connection pool and resource for connecting to
+mySQL database. &nbsp;Below are examples for the properties used for
+the
+connection pool:<br>
+&nbsp;&nbsp;&nbsp; * Name: Use this name when you configure
+the JDBC resource.&nbsp; eg. BPwebappPool<br>
+&nbsp;&nbsp;&nbsp; * Resource Type: Specify the appropriate
+value, eg. javax.sql.DataSource<br>
+&nbsp;&nbsp;&nbsp; * Database Vendor: mysql<br>
+&nbsp;&nbsp;&nbsp; * DataSource Classname: Specify one of
+the following:<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+o com.mysql.jdbc.jdbc2.optional.MysqlDataSource<br>
+&nbsp;&nbsp;&nbsp; * Properties:<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+o serverName -
+Specify the host name or IP address of the database server.<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+o port - Specify the port number of the database server eg. 3306<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+o user - Set as appropriate.<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+o&nbsp; password - Set as appropriate.<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+o databaseName - Set as appropriate, eg. bpwebapp<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+o URL - If you
+are using global transactions, you can set this property instead of
+serverName, port, and databaseName, eg.
+jdbc:mysql://&lt;dbhost&gt;:3306/bpwebapp<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+o Keep the rest of properties created.<br>
+    <br>
+6.&nbsp; Create the JDBC resource with the JNDI name
+jdbc/BPWebappDB pointing to new resource created above.<br>
+  </li>
+</ol>
+<h2><a name="Building_the_codebase"></a>Building the web application<br>
+</h2>
+<ol>
+  <li>Before building the WAR file to deploy on the application server,
+you
+will first have to edit the web descriptors to point to your database
+and geocoder that you set up in the previous steps. &nbsp;<br>
+  </li>
+  <ul>
+    <li>Edit the <span style="font-style: italic;">env-entry</span>
+for Geocoder URL in
+$WEBAPP/ws/apps/webapp/web/WEB-INF/web.xml to point to where
+your geocoder application is deployed.</li>
+  </ul>
   <li>Set JAVA_HOME, ANT_HOME accordingly in your environment.<br>
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
+  </li>
   <li>In the $WEBAPP/ws/bp-project directory, copy the
 build.properties.template to build.properties. &nbsp;Edit the
 build.properties for the relevant build details.
 &nbsp;Note that $WEBAPP was introduced in the section "Downloading the
 Source":<br>
-
-
-
-
-
-
-
-
     <span style="font-family: monospace;">$ vi
 &lt;$WEBAPP&gt;/ws/bp-project/build.properties<br>
-
-
-
-
-
-
-
     <br>
-
-
-
-
-
-
-
-
     </span>Note that javaee.home needs to be pointed to the
 your Java EE 5 application server home directory, or if you're using
 GlassFish, the $GLASSFISH_HOME directory. &nbsp;It will look for the
 necessary Java EE jars expecting it to be in the javaee.home/lib
 directory.<br>
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
+  </li>
   <li>Change directories to the level of the webapp directory:<br>
-
-
-
-
-
-
-
-
     <span style="font-family: monospace;">$ cd
 &lt;$WEBAPP&gt;/ws/apps/webapp<br>
-
-
-
-
-
-
-
     </span></li>
-
-
-
-
-
-
-
-
   <li>Compile and jar the WAR file by executing the default
 "ant"command. &nbsp;You should see messages that the build is
 compiling:<br>
-
-
-
-
-
-
-
-
     <span style="font-family: monospace;"><br>
-
-
-
-
-
-
-
-
 $ ant<br>
-
-
-
-
-
-
-
-
 Buildfile: build.xml<br>
-
-
-
-
-
-
-
-
     <br>
-
-
-
 build:<br>
-
-
-
     <br>
-
-
-
 default:<br>
-
-
-
     <br>
-
-
-
 default-ear:<br>
-
-
-
     <br>
-
-
-
 init:<br>
-
-
-
     <br>
-
-
-
 -pre-compile:<br>
-
-
-
     <br>
-
-
-
 bpp-actual-compilation:<br>
-
-
-
 &nbsp;&nbsp;&nbsp;&nbsp; [echo] Compiling webapp<br>
-
-
-
 &nbsp;&nbsp;&nbsp; [javac] Compiling 49 source files to
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/build/classes<br>
-
-
-
-&nbsp;&nbsp;&nbsp; [javac] Note: Some input files use unchecked or unsafe operations.<br>
-
-
-
-&nbsp;&nbsp;&nbsp; [javac] Note: Recompile with -Xlint:unchecked for details.<br>
-
-
-
+&nbsp;&nbsp;&nbsp; [javac] Note: Some input files use unchecked or
+unsafe operations.<br>
+&nbsp;&nbsp;&nbsp; [javac] Note: Recompile with -Xlint:unchecked for
+details.<br>
     <br>
-
-
-
 include-jmaki-local:<br>
-
-
-
     <br>
-
-
-
 include-jmaki:<br>
-
-
-
 &nbsp;&nbsp;&nbsp;&nbsp; [echo] Copying jMaki Runtime to
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/./build/web<br>
-
-
-
 &nbsp;&nbsp;&nbsp; [mkdir] Created dir:
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/build/web/temp<br>
-
-
-
 &nbsp;&nbsp;&nbsp; [unzip] Expanding:
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/lib/ajax-wrapper-comp-1.8.1.jar
 into
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/build/web/temp<br>
-
-
-
 &nbsp;&nbsp;&nbsp; [mkdir] Created dir:
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/build/web/resources<br>
-
-
-
 &nbsp;&nbsp; [delete] Deleting directory
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/build/web/temp<br>
-
-
-
     <br>
-
-
-
 -post-compile:<br>
-
-
-
 &nbsp;&nbsp;&nbsp;&nbsp; [copy] Copying 3 files to
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/build/classes<br>
-
-
-
 &nbsp;&nbsp;&nbsp; [mkdir] Created dir:
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/build/web/WEB-INF/lib<br>
-
-
-
 &nbsp;&nbsp;&nbsp;&nbsp; [copy] Copying 7 files to
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/build/web/WEB-INF/lib<br>
-
-
-
     <br>
-
-
-
 ......<br>
-
-
-
 ......<br>
-
-
-
     <br>
-
-
-
 bpp-copy-dist:<br>
-
-
-
-&nbsp;&nbsp;&nbsp; [mkdir] Created dir: /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/dist<br>
-
-
-
+&nbsp;&nbsp;&nbsp; [mkdir] Created dir:
+/Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/dist<br>
 &nbsp;&nbsp;&nbsp;&nbsp; [copy] Copying 1 file to
 /Users/klichong/projects/java_testOlio/JavaOlio/webapp/java/trunk/ws/apps/webapp/dist<br>
-
-
-
     <br>
-
-
-
 default-not-ear:<br>
-
-
-
     <br>
-
-
-
 default:<br>
-
-
-
     <br>
-
-
-
 BUILD SUCCESSFUL<br>
-
-
-
     </span></li>
-
-
-
-
-
-
-
-
   <li>The resulting <span style="font-weight: bold;">webapp.wa</span>r
-file should be located in the&nbsp;<span style="font-family: monospace;">&lt;$OLIO_HOME&gt;</span><span style="font-family: monospace;">/ws/apps/webapp/dist </span>directory.<br>
-  </li>
-
-
-
-
-
-
-
-
+file should be located in the&nbsp;<span style="font-family: monospace;">&lt;$OLIO_HOME&gt;</span><span
+ style="font-family: monospace;">/ws/apps/webapp/dist </span>directory.</li>
 </ol>
-<span style="font-weight: bold;"><a name="Note_to_WebLogic_Application_Server"></a>Note to WebLogic Application Server Users:</span><br>
 <br>
+<h3><span style="font-weight: bold;">Note to WebLogic Application
+Server Users</span></h3>
 If you are deploying Olio to Oracle WebLogic Server 11g Release 1
 (10.3.1), there is a WebLogic bug (8448313) that results in a JPA
 exception because lazy fetching is being used. &nbsp; The Exception
@@ -2771,20 +684,29 @@
 <span style="font-family: monospace;">javax.persistence.PersistenceException:
 Exception [EclipseLink-0] (Eclipse Persistence Services -
 1.1.1.v20090430-r4097):
-org.eclipse.persistence.exceptions.IntegrityException</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">Descriptor Exceptions:</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">---------------------------------------------------------</span><br style="font-family: monospace;">
+org.eclipse.persistence.exceptions.IntegrityException</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">Descriptor Exceptions:</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">---------------------------------------------------------</span><br
+ style="font-family: monospace;">
 <br style="font-family: monospace;">
-<span style="font-family: monospace;">Descriptor Exceptions:</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">---------------------------------------------------------</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">Descriptor Exceptions:</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">---------------------------------------------------------</span><br
+ style="font-family: monospace;">
 <br style="font-family: monospace;">
 <span style="font-family: monospace;">Exception [EclipseLink-60]
 (Eclipse Persistence Services - 1.1.1.v20090430-r4097):
-org.eclipse.persistence.exceptions.DescriptorException</span><br style="font-family: monospace;">
+org.eclipse.persistence.exceptions.DescriptorException</span><br
+ style="font-family: monospace;">
 <span style="font-family: monospace;">Exception Description: The method
 [_persistence_setaddress_vh] or [_persistence_getaddress_vh] is not
-defined in the object [org.apache.olio.webapp.model.Person].</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">Internal Exception: java.lang.NoSuchMethodException: org.apache.olio.webapp.model.Person._persistence_getaddress_vh()</span><br>
+defined in the object [org.apache.olio.webapp.model.Person].</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">Internal Exception:
+java.lang.NoSuchMethodException:
+org.apache.olio.webapp.model.Person._persistence_getaddress_vh()</span><br>
 <br>
 This bug is&nbsp; related to loading classes before the weaver has a
 chance to execute that has been fixed in later editions and is
@@ -2797,2134 +719,384 @@
 will just have to add the target 'weave' in the -post-compile step.<br>
 <div style="margin-left: 40px;">
 <ol>
-  <li>Open build.xml in the&nbsp;<span style="font-family: monospace;">&lt;$WEBAPP&gt;/ws/apps/webapp </span>directory. &nbsp;</li>
+  <li>Open build.xml in the&nbsp;<span style="font-family: monospace;">&lt;$WEBAPP&gt;/ws/apps/webapp
+    </span>directory. &nbsp;</li>
   <li>&nbsp;Comment line 30 of build.xml :<br>
-    <span style="font-family: monospace;">30 &nbsp; &nbsp; &nbsp;&lt;target name="-post-compile" depends="init, include-jmaki-local"&gt;</span></li>
-  <li>Uncomment line 32 which has already added the target "weave" to the -post-compile target.<br>
-    <span style="font-family: monospace;">&nbsp;31&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- uncomment this line below to do static weaving for weblogic bug --&gt;</span><br style="font-family: monospace;">
-    <span style="font-family: monospace;">&nbsp;32&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--target name="-post-compile" depends="init, include-jmaki-local, weave"--&gt;</span></li>
+    <span style="font-family: monospace;">30 &nbsp; &nbsp;
+&nbsp;&lt;target name="-post-compile" depends="init,
+include-jmaki-local"&gt;</span></li>
+  <li>Uncomment line 32 which has already added the target "weave" to
+the -post-compile target.<br>
+    <span style="font-family: monospace;">&nbsp;31&nbsp;&nbsp;&nbsp;&nbsp;
+&lt;!-- uncomment this line below to do static weaving for weblogic bug
+--&gt;</span><br style="font-family: monospace;">
+    <span style="font-family: monospace;">&nbsp;32&nbsp;&nbsp;&nbsp;&nbsp;
+&lt;!--target name="-post-compile" depends="init, include-jmaki-local,
+weave"--&gt;</span></li>
   <li>Since the 'weave' target calls an ant task
 (org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask), it
 needs class files from the javax.persistence_1.0.0.0_1-0-2.jar and
 eclipselink.jar to complete the task.</li>
-  <li>Copy &nbsp;the eclipselink.jar to the <span style="font-family: monospace;">$WEBAPP_HOME/ws/lib</span> directory (see step 3 of <a href="#GlassFish_Installation_and_Configuration">GlassFish Installation and Configuration</a>)</li>
-  <li>Specify the weblogic.lib environment variable in the ant call so that appropriate jar files can be found:<br>
+  <li>Copy &nbsp;the eclipselink.jar to the <span
+ style="font-family: monospace;">$WEBAPP_HOME/ws/lib</span> directory
+(see step 3 of <a
+ href="java_setup.html#GlassFish_Installation_and_Configuration">GlassFish
+Installation and Configuration</a>)</li>
+  <li>Specify the weblogic.lib environment variable in the ant call so
+that appropriate jar files can be found:<br>
     <br>
-eg.<span style="font-family: monospace;"> ant -Dweblogic.lib=$my_weblogic_path/oracle/middleware/modules<br>
+eg.<span style="font-family: monospace;"> ant
+-Dweblogic.lib=$my_weblogic_path/oracle/middleware/modules<br>
     </span>Note that the <span style="font-family: monospace;">weblogic.lib</span>
 environment variable needs to be specified on the command line because
 of the call to the&nbsp;StaticWeaveAntTask and cannot read the
 variables within the build.xml or its imported build files.<br>
   </li>
-  <li>You should note that the <span style="font-family: monospace;">copy-persistence-config, define.weave</span> and <span style="font-family: monospace;">weave</span> steps has taken place in the output. &nbsp;You can deploy the resulting WAR file to WebLogic.<br>
+  <li>You should note that the <span style="font-family: monospace;">copy-persistence-config,
+define.weave</span> and <span style="font-family: monospace;">weave</span>
+steps has taken place in the output. &nbsp;You can deploy the resulting
+WAR file to WebLogic.<br>
 ...<br>
-    <span style="font-family: monospace;">include-jmaki-local:</span><br style="font-family: monospace;">
+    <span style="font-family: monospace;">include-jmaki-local:</span><br
+ style="font-family: monospace;">
     <br style="font-family: monospace;">
-    <span style="font-family: monospace;">include-jmaki:</span><br style="font-family: monospace;">
-    <span style="font-family: monospace;">copy-persistence-config:</span><br style="font-family: monospace;">
+    <span style="font-family: monospace;">include-jmaki:</span><br
+ style="font-family: monospace;">
+    <span style="font-family: monospace;">copy-persistence-config:</span><br
+ style="font-family: monospace;">
     <span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
 [copy] Copying 1 file to
-/Users/klichong/projects/olio/webapp/java/trunk/ws/apps/webapp/build/classes/META-INF</span><br style="font-family: monospace;">
+/Users/klichong/projects/olio/webapp/java/trunk/ws/apps/webapp/build/classes/META-INF</span><br
+ style="font-family: monospace;">
     <span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
 [copy] Copying 1 file to
-/Users/klichong/projects/olio/webapp/java/trunk/ws/apps/webapp/build/classes/META-INF</span><br style="font-family: monospace;">
+/Users/klichong/projects/olio/webapp/java/trunk/ws/apps/webapp/build/classes/META-INF</span><br
+ style="font-family: monospace;">
     <br style="font-family: monospace;">
-    <span style="font-family: monospace;">define.weave:</span><br style="font-family: monospace;">
+    <span style="font-family: monospace;">define.weave:</span><br
+ style="font-family: monospace;">
     <br style="font-family: monospace;">
-    <span style="font-family: monospace;">weave:</span><br style="font-family: monospace;">
+    <span style="font-family: monospace;">weave:</span><br
+ style="font-family: monospace;">
     <br style="font-family: monospace;">
-    <span style="font-family: monospace;">-post-compile:</span><br style="font-family: monospace;">
-    <span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; [copy] Copying 3 files to /Users/klichong/projects/olio/webapp/java/trunk/ws/apps/webapp/build/classes</span></li>
+    <span style="font-family: monospace;">-post-compile:</span><br
+ style="font-family: monospace;">
+    <span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+[copy] Copying 3 files to
+/Users/klichong/projects/olio/webapp/java/trunk/ws/apps/webapp/build/classes</span></li>
 </ol>
 &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ....</div>
-
-
-
-
-
-
-
-
 <h2>Deploying the Web Application</h2>
-
-
-
-
-
-
-
-
-The Java Olio web application can be deployed on any Java EE compliant
-application server with a JPA provider.
-<ol>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p>Deploy
+Deploy
 the webapp.war from the $WEBAPP/ws/apps/webapp/dist directory to your
-Java EE 5 application server. &nbsp;<br>
-
-
-
-
-
-
-
-
-If you are using GlassFish, you can do so by
+Java EE 5 application server. &nbsp;
+<ol>
+  <li>If you are using GlassFish, you can do so by
 either dropping the war file in the
 $GLASSFISH_HOME/domains/domain1/autodeploy directory. &nbsp;You can
 also
-deploy via different methods by referring to <a href="https://glassfish.dev.java.net/downloads/quickstart/index.html#Packaging_and_Deploying_Applications">https://glassfish.dev.java.net/downloads/quickstart/index.html#Packaging_and_Deploying_Applications</a>.
-&nbsp;</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-</ol>
-
-
-
-
-
-
-
-
-<h2><a name="installWebApp"></a><font size="4">Configuring the Application Server</font></h2>
-
-
-
-
-
-
-
-
-<ol>
-
-
-
-
-
-
-
-
-  <li>Download the JDBC driver for mysql from <a href="http://dev.mysql.com/downloads/connector/j/5.1.html">http://dev.mysql.com/downloads/connector/j/5.1.html.</a>&nbsp;
-Extract the mysql-connector-java-5.1.X-bin.jar and put this your
-application server classpath (or external library directory)</li>
-
-
-
-
-
-
-
-
-  <li>Download a Java Persistence API (JPA) provider, eg.
-EclipseLink. &nbsp;You will have to download the eclipselink.jar
-from <a href="http://www.eclipse.org/eclipselink">http://www.eclipse.org/eclipselink</a>,
-and put this in your application server classpath.</li>
-
-
-
-
-
-
-
-
-  <li>Create JDBC connection pool and resource for connecting to
-mySQL
-database. &nbsp;Below are examples for the properties used for the
-connection pool:<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp; * Name: Use this name when you configure
-the JDBC resource.&nbsp; eg. BPwebappPool<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp; * Resource Type: Specify the appropriate
-value, eg. javax.sql.DataSource<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp; * Database Vendor: mysql<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp; * DataSource Classname: Specify one of
-the following:<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-o com.mysql.jdbc.jdbc2.optional.MysqlDataSource<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp; * Properties:<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-o serverName -
-Specify the host name or IP address of the database server.<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-o port - Specify the port number of the database server eg. 3306<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-o user - Set as appropriate.<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-o&nbsp; password - Set as appropriate.<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-o databaseName - Set as appropriate, eg. bpwebapp<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-o URL - If you
-are using global transactions, you can set this property instead of
-serverName, port, and databaseName, eg.
-jdbc:mysql://&lt;dbhost&gt;:3306/bpwebapp<br>
-
-
-
-
-
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-o Keep the rest of properties created.<br>
-
-
-
-
-
-
-
-
-    <br>
-
-
-
-
-
-
-
-
-6.&nbsp; Create the JDBC resource with the JNDI name
-jdbc/BPWebappDB pointing to new resource created above.<br>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-</ol>
-
-
-
-
-
-
-
-
-<h2><a name="GlassFish_Installation_and_Configuration"></a><font size="4"><a name="Glassfish_Installation_and_Configuration"></a>&nbsp;GlassFish
-Installation and Configuration</font></h2>
-
-
-
-
-
-
-
-
-<ol>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p>Install Glassfish application server V2 UR2 from <a href="https://glassfish.dev.java.net/public/downloadsindex.html"><span style="text-decoration: underline;">https://glassfish.dev.java.net/public/downloadsindex.html.</span></a>
+deploy via different methods by referring to <a
+ href="https://glassfish.dev.java.net/downloads/quickstart/index.html#Packaging_and_Deploying_Applications">https://glassfish.dev.java.net/downloads/quickstart/index.html#Packaging_and_Deploying_Applications</a>.&nbsp;
     <br>
-
-
-
-
-
-
-
-
-The directory where Glassfish has been installed will now be referred
-to as $GLASSFISH_HOME. </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p>Download the JDBC driver for mysql from <a href="http://dev.mysql.com/downloads/connector/j/5.1.html">http://dev.mysql.com/downloads/connector/j/5.1.html.</a>
-&nbsp; Extract the mysql-connector-java-5.1.X-bin.jar and drop this
-is
-$GLASSFISH_HOME/domains/domain1/lib/ext directory (or whatever you have
-named your domain).</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>The
-benchmark utilizes JPA (Java Persistence API) and has been benchmarked
-with the EclipseLink implementation. &nbsp;GlassFish v2
-uses TopLink as the default JPA implementation so you will have to download the
-eclipselink.jar from <a href="http://www.eclipse.org/eclipselink">http://www.eclipse.org/eclipselink</a>,
-and &nbsp;put this in $GLASSFISH_HOME/lib directory. &nbsp;This
-is a concurrency <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=238696">bug
-filed</a>
-on EclipseLink so you will need to get a EclipseLink build after
-July 2008. &nbsp;Note that GlassFish v3 will use EclipseLink as the
-default JPA implementation but Olio has not been tested yet on
-GlassFish v3. </li>
-
-
-
-
-
-
-
-
-  <br>
-
-
-
-
-
-
-
-
-  <li>Instructions on how to use the
-Glassfish admin
-interface is <a href="https://glassfish.dev.java.net/javaee5/admin-gui/admin-gui.html#Usage">https://glassfish.dev.java.net/javaee5/admin-gui/admin-gui.html#Usage</a>.
-&nbsp;To edit the classpath prefix, please consult&nbsp; <a href="https://glassfish.dev.java.net/javaee5/docs/AG/ablwj.html#ablwm">https://glassfish.dev.java.net/javaee5/docs/AG/ablwj.html#ablwm</a>.
-&nbsp;<br>
-
-
-
-
-
-
-
-
-Note:
-&nbsp;To use the admin interface, you will have to start Glassfish.
-&nbsp;To do
-so,&nbsp; use $GLASSFISH_HOME/bin/asadmin start-domain domain1 (or
-whatever your
-domain name is if you are using the default domain1).<br>
-
-
-
-
-
-
-
-
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;To
-stop Glassfish, use $GLASSFISH_HOME/bin/asadmin stop-domain domain1.</li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p>Create JDBC connection pool and resource. &nbsp;Please
-consult <a href="https://glassfish.dev.java.net/javaee5/docs/AG/ablih.html">https://glassfish.dev.java.net/javaee5/docs/AG/ablih.html</a>
-for details. &nbsp;MM MySQL Type 4 Driver (Non-XA)<br>
-
-
-
-
-
-
-
-
-The JAR file for the MySQL driver is
-mysql-connector-java-version-bin.jar, for example,
-mysql-connector-java-5.1.6-bin.jar. Configure the connection pool
-using the following settings:<br>
-
-
-
-
-
-
-
-
-    </p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
-    <ul>
-
-
-
-
-
-
-
-
-      <li>Name: Use this name when you configure the JDBC
-resource. &nbsp;eg. BPwebappPool</li>
-
-
-
-
-
-
-
-
-      <li>Resource Type: Specify the appropriate value, eg.
-javax.sql.DataSource</li>
-
-
-
-
-
-
-
-
-      <li>Database Vendor: mysql</li>
-
-
-
-
-
-
-
-
-      <li>DataSource Classname: Specify one of the following:</li>
-
-
-
-
-
-
-
-
-      
-      
-      
-      
-      
-      
-      
-      <ul>
-
-
-
-
-
-
-
-
-        <li>com.mysql.jdbc.jdbc2.optional.MysqlDataSource</li>
-
-
-
-
-
-
-
-
-      
-      
-      
-      
-      
-      
-      
-      </ul>
-
-
-
-
-
-
-
-
-      <li>Properties:</li>
-
-
-
-
-
-
-
-
-      
-      
-      
-      
-      
-      
-      
-      <ul>
-
-
-
-
-
-
-
-
-        <li>serverName - Specify the host name or IP address of
-the database server.</li>
-
-
-
-
-
-
-
-
-      
-      
-      
-      
-      
-      
-      
-      </ul>
-
-
-
-
-
-
-
-
-      
-      
-      
-      
-      
-      
-      
-      <ul>
-
-
-
-
-
-
-
-
-        <li>port - Specify the port number of the database server
-eg. 3306</li>
-
-
-
-
-
-
-
-
-      
-      
-      
-      
-      
-      
-      
-      </ul>
-
-
-
-
-
-
-
-
-      
-      
-      
-      
-      
-      
-      
-      <ul>
-
-
-
-
-
-
-
-
-        <li>user - Set as appropriate, &nbsp;eg. olio</li>
-
-
-
-
-
-
-
-
-        <li>&nbsp;password - Set as appropriate, eg. olio</li>
-
-
-
-
-
-
-
-
-        <li>databaseName - Set as appropriate, eg. bpwebapp</li>
-
-
-
-
-
-
-
-
-        <li>URL
-- If you are using global transactions, you can set this property
-instead of serverName, port, and databaseName, eg.
-jdbc:mysql://&lt;dbhost&gt;:3306/bpwebapp</li>
-
-
-
-
-
-
-
-
-        <li>Keep the rest of properties created.</li>
-
-
-
-
-
-
-
-
-      
-      
-      
-      
-      
-      
-      
-      </ul>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
-    </ul>
-
-
-
-
-
-
-
-
-6. &nbsp;Create the JDBC resource with the JNDI name
-jdbc/BPWebappDB pointing to new resource created above. </li>
-
-
-
-
-
-
-
-
+  </li>
 </ol>
-
-
-
-
-
-
-
-
 <h2><a name="installWebApp"></a><font size="4">Tuning Glassfish</font></h2>
-
-
-
-
-
-
-
-
 <ol>
-
-
-
-
-
-
-
-
-  <li>Go to the administration interface, eg.
-http://localhost:4848.</li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  <li>Go to the administration interface, eg. http://localhost:4848.</li>
+  <li>
     <p>Ensure that you have the JVM option "-server" and the heap
-size
-has been adequately sized. &nbsp;For benchmarking purposes, we have
+size has been adequately sized. &nbsp;For benchmarking purposes, we
+have
 sized Xmx and Xms to 3G.</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p>Start Glassfish. Check that you can connect to it from
-your
+  </li>
+  <li>
+    <p>Start Glassfish. Check that you can connect to it from your
 browser (http://<i>host</i>:8080), but don't try to access
 any of the application pages yet !&nbsp;&nbsp;To do
-so,&nbsp; <br>
-
-
-
-
-
-
-
-
+so :<br>
     </p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
     <ul>
-
-
-
-
-
-
-
-
-      <li>use $GLASSFISH_HOME/bin/asadmin start-domain domain1
-(or
-whatever your
-domain name is if you are using the default domain1).&nbsp;</li>
-
-
-
-
-
-
-
-
+      <li>use $GLASSFISH_HOME/bin/asadmin start-domain domain1</li>
       <li>To
 stop Glassfish, use $GLASSFISH_HOME/bin/asadmin stop-domain domain1.</li>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
     </ul>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
+  </li>
+</ol>
+<h2><a name="Setting_up_Caching"></a><font size="4">Setting up Caching</font></h2>
+For the Olio Java application, there are multiple caching options which
+are set by -D options in the appserver config file (For glassfish, this
+is in domains/domain1/config/domain.xml) :<br>
+<ul>
+  <li>No cache. This option is useful if you want to stress MySQL. In
+this
+case, set <code>-DcacheOlio=false.</code></li>
+  <li><code></code> MapCache. This is the default and doesn't require
+any setting. It does a good job of off-loading the database.</li>
+  <li>Memcache. In this case, the home page contents are cached in
+memcached. Set <code>-DcacheFactoryClass=org.apache.olio.webapp.cache.MemCachedFactory</code>
+and <code>-DmemcachedInstances=&lt;host&gt;:&lt;port&gt;</code>
+where &lt;host&gt;:&lt;port&gt; point to the memcached instance.
+&lt;port&gt; is 11211 if you use the default port when starting
+memcached.<br>
+  </li>
+</ul>
+To use memcached, you will need to setup an instance of the server.
+This can typically run on the same system as the application server.
+<ol>
+  <li>Download and install memcached on the system you plan to
+use. </li>
+  <li>
+    <p style="margin-bottom: 0in;"><font size="3">Start the memcached
+server thus :<br>
+    </font><font size="3"><span style="font-family: monospace;">#
+nohup /opt/coolstack/bin/memcached -m 256 -u mysql &amp;</span></font></p>
+  </li>
 </ol>
-
-
-
-
-
-
-
-
-<h2><font size="4">Setting up the
-filestore</font></h2>
-
-
-
-
-
-
-
-
+<h2><font size="4">Setting up the Filestore</font></h2>
 <p><font size="3">Olio for Java EE can be configured to
 use either a local
-filesystem or MogileFS for the object data. Our initial testing with
+filesystem (typically NFS-mounted off a file server) or MogileFS for
+the object data. Our initial testing with
 MogileFS found some severe performance issues, so for now we advice
-using a normal filesystem (LocalFS). </font><font size="3">You
+using a normal filesystem. </font><font size="3">You
 will need about 50GB of
 space for the data, as the data does grow over runs</font>.
 &nbsp;Using a single spindle does work but may create performance
 bottlenecks. &nbsp;We recommend striping the filesystem across at
-least
-3 spindles to avoid such bottlenecks. &nbsp;A local file system
-needs
-to be setup on the same machine as the web application. &nbsp;A
-network
-file system can reside on a separate server but needs to be exported
+least 3 spindles to avoid such bottlenecks. &nbsp;A local file system
+needs to be setup on the same machine as the web application. &nbsp;A
+network file system can reside on a separate server but needs to be
+exported
 and mounted on the system running the web application.</p>
-
-
-
-
-
-
-
-
 <ol>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  <li>
     <p><font size="3">Create a directory (or mount a
 filesystem) designated for storing the image and binary files. This
 directory is referred to as &lt;filestore&gt;. Any valid name
 for the OS should be fine. Ensure that everyone has read and write
 access to
 it:<br>
-
-
-
-
-
-
-
-
-    </font><font size="3"><span style="font-family: monospace;"># mkdir -p <span style="font-style: italic;">&lt;filestore&gt;</span></span><br style="font-family: monospace;">
-
-
-
-
-
-
-
-
-    <span style="font-family: monospace;"># chmod a+rwx <span style="font-style: italic;">&lt;filestore&gt;</span></span></font></p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+    </font><font size="3"><span style="font-family: monospace;"># mkdir
+-p <span style="font-style: italic;">&lt;filestore&gt;</span></span><br
+ style="font-family: monospace;">
+    <span style="font-family: monospace;"># chmod a+rwx <span
+ style="font-style: italic;">&lt;filestore&gt;</span></span></font></p>
+  </li>
+  <li>
     <p><font size="3">Now load the filestore.
-&nbsp;You should have the $FABAN_HOME/benchmarks/JavaOlioDriver.jar
+&nbsp;You should have the $FABAN_HOME/benchmarks/OlioDriver.jar
 file on this system.</font><br>
-
-
-
-
-
-
-
-
-    <font size="3"><font style="font-family: monospace;" size="3">#&nbsp;<span style="font-style: italic;"></span></font></font>cd
+    <font size="3"><font style="font-family: monospace;" size="3">#&nbsp;<span
+ style="font-style: italic;"></span></font></font>cd
 $FABAN_HOME/benchmarks; mkdir olio<br>
-
-
-
-
-
-
-
-
     <br>
-
-
-
-
-
-
-
-
-# cd olio; jar xvf ../JavaOlioDriver.jar; chmod a+x bin/*<br>
-
-
-
-
-
-
-
-
+# cd olio; jar xvf ../OlioDriver.jar; chmod a+x bin/*<br>
 # $FABAN_HOME/benchmarks/olio/bin/fileloader.sh
 &lt;load_scale&gt; $FILESTORE<br>
-
-
-
-
-
-
-
-
     <br>
-
-
-
-
-
-
-
-
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This loads files for
-use for up to<span style="font-style: italic;"> load_scale</span> number of active users.<font size="3"><font style="font-family: monospace;" size="3">&nbsp;<br>
-
-
-
-
-
-
-
-
-    <br>
-
-
-
-
-
-
-
-
-    </font></font><font size="3"><font size="3"><span style="font-family: monospace;"></span></font></font><font size="3"><font size="3"><font>Eg.
-To load the filestore for 1000 users, you would do the following:</font></font></font><font size="3"><font size="3"><span style="font-family: monospace;"></span></font></font><br>
-
-
-
-
-
-
-
-
+use for up to<span style="font-style: italic;"> load_scale</span>
+number of active users.<font size="3"><font
+ style="font-family: monospace;" size="3">&nbsp;<br>
+    <br>
+    </font></font><font size="3"><font size="3"><span
+ style="font-family: monospace;"></span></font></font><font size="3"><font
+ size="3"><font>Eg.
+To load the filestore for 1000 users, you would do the following:</font></font></font><font
+ size="3"><font size="3"><span style="font-family: monospace;"></span></font></font><br>
     <span style="font-family: monospace;"># cd
 /filestore/artifacts</span><br style="font-family: monospace;">
-
-
-
-
-
-
-
-
     <span style="font-family: monospace;">#
-/opt/faban/benchmarks/JavaOlioDriver/bin/fileloader.sh 1000 .</span></p>
-
-
-
-
-
-
-
-
+/opt/faban/benchmarks/OlioDriver/bin/fileloader.sh 1000 .</span></p>
     <font size="3"><font size="3"><span style="font-family: monospace;"></span></font></font>
-    
-    
-    
-    
-    
-    
-    
     <p><font size="3"><font size="3">This
-loads files for use for up to <span style="font-family: monospace; font-style: italic;">load_scale</span>
+loads files for use for up to <span
+ style="font-family: monospace; font-style: italic;">load_scale</span>
 number of concurrent users.&nbsp;</font></font></p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
+  </li>
   <li><font size="3"><font size="3">The filestore location is read
 from the application server as a Java environment
 variable,&nbsp;webapp.image.directory. &nbsp;To set the value of the
 filestore, simply add an JVM argument eg.
 -Dwebapp.image.directory=/export/myfilestore. &nbsp;If you are using
 GlassFish, you use the administration interface to add this JVM
-argument by looking at the<a href="#Glassfish_Installation_and_Configuration"> GlassFish Installation and Configuration</a> section, step 3. <br>
-
-
-
-
-
-
-
-
-    </font></font><font size="3"><font size="3"><span style="font-family: monospace;"><br>
-
-
-
-
-
-    </span></font></font><font size="3"><font size="3"><span style="font-family: monospace;"></span></font></font></li>
-
-
-
-
-
-
-
-
+argument by looking at the<a
+ href="#Glassfish_Installation_and_Configuration"> GlassFish
+Installation and Configuration</a> section, step 3. <br>
+    </font></font><font size="3"><font size="3"><span
+ style="font-family: monospace;"><br>
+    </span></font></font><font size="3"><font size="3"><span
+ style="font-family: monospace;"></span></font></font></li>
 </ol>
-
-
-
-
-
-
-
-
 <font size="3"><font size="3"><span style="font-family: monospace;"></span></font></font>
-<h2><font><font size="4">Testing the
-Application</font></font></h2>
-
-
-
-
-
-
-
-
+<h2><font><font size="4">Testing the Application</font></font></h2>
 <ol>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  <li>
     <p><font size="3">Check the home page (HomePage)
 http://&lt;web_server&gt;:8080/webapp/index.jsp. If there are
-no
-error messages and all images get loaded, that's a great start !</font></p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p><font size="3">Click on an event
-(EventDetail). Make sure the whole page looks OK. </font> </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p><font size="3">Click on an attendee
-(PersonDetail) to see a person's profile. </font> </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+no error messages and all images get loaded, that's a great start !</font></p>
+  </li>
+  <li>
+    <p><font size="3">Click on an event (EventDetail). Make sure the
+whole page looks OK. </font> </p>
+  </li>
+  <li>
+    <p><font size="3">Click on an attendee (PersonDetail) to see a
+person's profile. </font> </p>
+  </li>
+  <li>
     <p><font size="3">Go back to the home page and
 click on a tag in the tag cloud. Choose a big tag and check that we
 have good results and images get loaded OK. </font> </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p><font size="3">Click on the Register button on the top left of the home page. Fill
+  </li>
+  <li>
+    <p><font size="3">Click on the Register button on the top left of
+the home page. Fill
 in the form and create a user. Make sure you find some jpeg images to
-upload. If not, take them from $FABAN_HOME/benchmarks/JavaOlioDriver/resources. <br>
-
-
-
-
-
-
-
-
+upload. If not, take them from
+$FABAN_HOME/benchmarks/OlioDriver/resources. <br>
 Submit the form. Make sure the form goes through. This completes the
 AddPerson transaction. </font> </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
     <p><font size="3">Login using your new login
 name you just created. The top right of the screen should show that
 you're logged on. </font> </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
     <p><font size="3">Select an event, go back to
 the EventDetail page but this time as a logged on user. <br>
-
-
-
-
-
-
-
-
 Add yourself as an attendee. This is the EventDetail transaction with
 attendee added (about 8-9% of all EventDetail views). </font> </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
     <p><font size="3">Click on the add event tab and
 add an event. Make sure to include an image and some literature. You
 can also use the files from <br>
-
-
-
-
-
-
-
-
-$FABAN_HOME/benchmarks/JavaOlioDriver/resources. Fill in the form and submit.
+$FABAN_HOME/benchmarks/OlioDriver/resources. Fill in the form and
+submit.
 This is the AddEvent transaction. <br>
-
-
-
-
-
-
-
-
     <br>
-
-
-
-
-
-
-
-
     </font> </p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
+  </li>
 </ol>
-
-
-
-
-
-
-
-
-<h2><a name="startRun"></a><font size="4">Starting
-a benchmark run</font></h2>
-
-
-
-
-
-
-
-
-<p style="margin-bottom: 0in;">Now that we know that the
-web
+<h2><a name="startRun"></a><font size="4">Starting a benchmark run</font></h2>
+<p style="margin-bottom: 0in;">Now that we know that the web
 application is running and the faban harness is up, it is time to
 kick off a benchmark run. </p>
-
-
-
-
-
-
-
-
 <ol>
-
-
-
-
-
-
-
-
   <li>Kill memcached. Memcached is always started by the driver
 before the run to ensure a clean cache and will cause port conflicts if
 it is already running.</li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  <li>
     <p>Point your browser at http://<i>&lt;driver_machine&gt;</i>:9980</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p>Click on the <span style="font-style: normal;"><b>Schedule
-Run</b></span> link.</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
+    <p>Click on the <span style="font-style: normal;"><b>Schedule Run</b></span>
+link.</p>
+  </li>
+  <li>
     <p>Under the JAVA tab, set the JAVA_HOME. You can accept the
 default value for JVM options. <span style="font-weight: bold;">DO
 NOT</span> click on the OK button yet !</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
+  </li>
+  <li>
     <p>Select the Driver tab. </p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
     <p style="margin-bottom: 0in;">Enter a Description for
 the run (say 'First test run' for this case). In general, the
 Description field is very useful to get a quick idea of what a
 particular run is testing. </p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
     <p style="margin-bottom: 0in;">Enter the name of your
 driver(s) machine for Host (when using more than one machine, simply
 separate them by a space). </p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
     <p style="margin-bottom: 0in;">Enter 10 for
 'Concurrent Users' (we want to start small).</p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
     <p style="margin-bottom: 0in;">Enter 'vmstat 10' for
 Tools. This indicates the measurement tools that will be run on the
 driver machine. It's a good idea to keep an eye on the driver cpu
 utilization.</p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
-    <p style="margin-bottom: 0in;">Now enter 30, 30, 30
+    <p style="margin-bottom: 0in;">Now enter 30, 30, 10
 for the Ramp up, Steady State and Ramp down times. This is a very short
 test run. For normal runs, you may need a ramp up of 200 seconds and a
 steady state of at least 600 seconds during which measurements are made.</p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
     <p style="margin-bottom: 0in;">For current systems,
 the time between client startup of 200 milliseconds is good enough.
-Some web servers or slower systems may not be able to accept
+Some servers or slower systems may not be able to accept
 connections very frequently. In that case we may want to increase this
-value to 1000 milliseconds.</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p>Select the Web Server tab.<br>
-
-
-
-
-
-
-
-
+value to 1000 milliseconds. <br>
+    </p>
+  </li>
+</ol>
+<p style="margin-bottom: 0in;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+The number of Agents needs to be set based on the number of concurrent
+users - we start with 1 and add an agent for every 500 users.<br>
+</p>
+<ol start="6">
+  <li>
+    <p style="margin-bottom: 0in;">Select the Web Server tab.<br>
     <br>
-
-
-
-The number of Agents is best the same or multiple the number of driver
-machines - we start with 1. The Host:Port Pairs field takes the host
+The Host:Port Pairs field takes the host
 port pairs where the web applications are running. The host and port is
 separated by a colon. Each pair is separated by space. &nbsp;Note that
 you cannot use the string "localhost" - you must specify a valid
-hostname or IP number. <br>
-
-
-
-    <br>
-
-
-
-For the
-Webserver type field, enter either "GlassFish" dependent on which web
-server you're using, or leave the field blank if you're using servers
-other than these two. Only the GlassFish servers are supported at this
-time. Then provide the application server's bin, log, and config
-directories. &nbsp;<br>
-
-
-
+hostname or IP address.&nbsp; <br>
     <br>
-
-
-
-You can ignore the box for the directory
-containing
-the php.ini file in the respective fields - that field is for the PHP version of Olio. <br>
-
-
-
+In the tools box, enter the tools you
+want to run. Here are the
+tools we typically run : vmstat
+10; mpstat 10; nicstat 10; iostat -x 10.<br>
+    <br>
+For Application Server, select "GlassFish" or leave the field blank if
+you're using some other server. Only the GlassFish server is supported
+at this
+time - for other servers, you will have to manually start/stop the
+servers before and after a run. Then provide the application server's
+bin, log, and config
+directories. For Glassfish, faban will automatically capture the server
+config and log file and make it available via the 'Statistics' tab of a
+run. <br>
     <br>
-
-
-
-Next, choose the server type
-to be Java, if it is not already that way. Then, in the tools box, type
-the tools you want to run. Here are the tools we typically run : vmstat
-10; mpstat 10; iostat -x 10</p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
-    <p style="margin-bottom: 0in;">The manual start indicates whether
+The "restart" field indicates whether
 you want the Faban harness to automatically start and stop the
 GlassFish server before and after each run. &nbsp;By default, it is set
-to false which indicates that the Faban harness will restart the
+to true which indicates that the Faban harness will restart the
 GlassFish server, assuming that the path information for the server is
-entered correctly. &nbsp;If set to true, then the harness will not
-start the GlassFish server and assume that you have already started it
-before the run.<br>
-
-
-
+entered correctly.<br>
     <br>
-
-
-
-The number of Agents is
-the same as the number of driver machines &ndash; we start with 1.</p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
-    <p style="margin-bottom: 0in;">Enter the Host and Port
-where the web application is running. &nbsp; &nbsp;Note that you cannot
-use the string "localhost" - you must specify a valid hostname or IP
-number. <br>
-
-
-
- </p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
-    <p style="margin-bottom: 0in;">Here are the tools we
-typically run : vmstat 10; mpstat 10; iostat -xnmp 10</p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-
-
-
-
-
-  <li>
-    
-    
-    
-    
-    
-    
-    
-    <p style="margin-bottom: 0in;">Select the Data Servers
-tab.</p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
+    </p>
+  </li>
+  <li>
+    <p style="margin-bottom: 0in;">Select the Data Servers tab.</p>
     <p style="margin-bottom: 0in;">For the database
-server, enter the Host name. Edit the hostname part along of the JDBC
-Connection URL. &nbsp; &nbsp;Note that you cannot use the string "localhost" - you must specify a valid hostname or IP number. <br>
-
-
-
- This is used by the loader program to reload the
+server, enter the Host name. Edit the hostname part in the JDBC
+Connection URL.&nbsp; Note that you cannot use the string
+"localhost" - you must specify a valid hostname or IP number. <br>
+This is used by the loader program to reload the
 database before a run. Set the 'Loader for Concurrent Users' to 25
 (this is the minimum number of users we can load for and is good for up
 to 25 concurrent users). You can set the loader to run a larger number
 so that you don't have to edit this field every time. It is not
 absolutely necessary to reload the database and files every time, but
 you should do so for all performance runs. In that case, set the reload
-fields to true every time </p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
+fields to true every time.<br>
+    </p>
     <p style="margin-bottom: 0in;">Set the Data Storage
 server. For local storage this is the same host as the application
 server.&nbsp;</p>
-
-
-
-
-
-
-
-
-    
-    
-    
-    
-    
-    
-    
     <p style="margin-bottom: 0in;">Set the memcached
 server instances to the servers you've configured in web.xml of the web
 application. The driver harness will start the
 memcached server instances accordingly. Note that the memcached server
 instances are given as host:port pairs, separated by space. If a port
 is not given, the default memcached port of 11211 is assumed. &nbsp;<br>
-
-
-
-
-
-
-
-
-    <span style="font-weight: bold;">*NOTE - the memcache
-server information is not necessary in this release of Java Olio. &nbsp;You can leave these fields blank</span></p>
-
-
-
-
-
-
-
-
-  </li>
-
-
-
-

[... 57 lines stripped ...]