...
toptop Anchor
...
This article is a copy of the version for
...
SPECjAppServer2004 v1.05 and Geronimo v1.2. It
...
's now being updated for SPECjAppServer2004 v1.08 and Geronimo v2.0.2, but the updating process is not yet complete.
Running SPECjAppServer2004 benchmark on Geronimo
...
This article shows how to measure the performance of the Geronimo application server using the industry standard SPECjAppServer2004 benchmark.
...
...
Issues still exist that prevent SPECjAppServer2004 from running on Geronimo.
This article is not a success story, but a collection of notes on the progress that has been made in this direction.
Current issue that requires your help is: #Running the benchmark
...
...
Disclaimer: This article is created to write down the existing experience and to make it reproducible. It is not targeted to be a comprehensive guide on either product or on merging them together. It's not also a replacement to the products' documentation, but just a step-by-step guide on how to make things work in a simple configuration, as it worked for me. Make sure you at least look through the documentation on both products before you proceed.
...
SPECjAppServer is a trademark of the Standard Performance Evaluation Corp. (SPEC). The
...
official web site for SPECjAppServer2004 is located at http://www.spec.org/jAppServer2004/.
This article is written for SPECjAppServer2004 v1.05 and Geronimo v1.1. For other versions some stages may be different. Version of this article for Geronimo v1.0 is available here.
The described configuration uses as many Geronimo components as possible, including the built-in Derby database and the built-in Jetty or Tomcat servlet container. In fact, the configuration only uses Java, Geronimo, an external servlet container (e. g. Tomcat) and SPECjAppServer2004. To plug external components (most probably, a database), you have to change your configuration accordingly.
This configuration also assumes that all the components (except, possibly, the SPECjAppServer2004 Driver and the SPECjAppServer2004 Supplier Emulator and its servlet container) are run on the same machine. If you want to run the Distributed workload, your configuration will be different.
This configuration uses the Microsoft Windows XP Professional Service Pack 2 operating system, Cygwin shell, Sun Java SE 1.4.2 and Tomcat v5.0.30 to write this article. If you use another OS, Java or servlet container, some stages may be different.
This article uses forward slashes ( / ) for command lines, adjust to backslashes ( \ ) accordingly if you use Windows command prompt.
This article has the following structure:
- #General information
- #Obtaining products
- #Conventions and environment
- #Installing products
- #Configuring Geronimo
- #Configuring SPECjAppServer2004
- #Deploying components
- #Deploying the Supplier Emulator
- #Running the benchmark
- #Processing results
General information
About Geronimo
Geronimo is the Apache Software Foundation Java EE 1.4 certified application server. It is developed under Apache License and can be downloaded freely.
Apache site: http://apache.org
Product site: http://geronimo.apache.org
Documentation page: http://geronimo.apache.org/documentation.html
The best document available is "Apache Geronimo Development and Deployment" book by Aaron Mulder: http://chariotsolutions.com/geronimo/geronimo-html-one-page.html
The second necessary doc is the Wiki page: http://wiki.apache.org/geronimo/
About SPECjAppServer2004
SPECjAppServer2004 is a commercial benchmark for measuring the performance of Java EE application servers.
SPEC site: http://www.spec.org
Product site: http://www.spec.org/jAppServer2004/
FAQ: http://www.spec.org/jAppServer2004/docs/FAQ.html
User's Guide: http://www.spec.org/jAppServer2004/docs/UserGuide.html
Run and Reporting Rules: http://www.spec.org/jAppServer2004/docs/RunRules.html
Obtaining products
Obtaining Geronimo
The latest Geronimo version for now is 1.1.
General download page: http://geronimo.apache.org/downloads.html
...
SPECjAppServer2004 version 1.08 introduces a reduced workload called EAStress2004 that relaxes run and reporting rules, enabling informal results to be shared more easily in open-source research and development projects.
The EAStress2004 workload in SPECjAppServer2004 v1.08 can be used as a tool to optimize performance of products under development and to share results in public forums. Unlike SPECjAppServer2004 results, testing results from the EAStress2004 workload do not need to be reviewed by SPEC prior to being made public.
Results from the EAStress2004 workload cannot be used for marketing purposes, and comparisons to other SPECjAppServer2004 results are not permitted.
See full press release on SPECjAppServer2004/EAStress2004 v1.08 here: http://www.spec.org/jAppServer2004/jAppServer2004v108.html.
All logs, stacks and result files in this article are extracted from EAStress2004 v1.08 runs.
This article is written for SPECjAppServer2004 v1.08 and Geronimo v2.0.2. For other versions some stages may be different. Older versions of this article for SPECjAppServer2004 v1.05 and older versions of Geronimo can be found here: v1.0, v1.1, v1.2.
The described configuration uses as many Geronimo components as possible, including the built-in Derby database and the built-in Jetty or Tomcat servlet container. In fact, the configuration only uses Java, Geronimo, an external servlet container (e. g. Tomcat) and SPECjAppServer2004. To plug external components (most probably, a database), you have to change your configuration accordingly.
This configuration also assumes that all the components (except, possibly, the SPECjAppServer2004 Driver and the SPECjAppServer2004 Supplier Emulator and its servlet container) are run on the same machine. If you want to run the Distributed workload, your configuration will be different.
This configuration uses the Microsoft Windows XP Professional Service Pack 2 operating system, Cygwin shell, Sun Java SE 5.0 Update 11 and Tomcat v5.0.30 to write this article. If you use another OS, Java or servlet container, some stages may be different.
This article uses forward slashes ( / ) for command lines, adjust to backslashes ( \ ) accordingly if you use Windows command prompt.
...
This article has the following structure:
- #General information
- #Obtaining products
- #Conventions and environment
- #Installing products
- #Configuring Geronimo
- #Configuring SPECjAppServer2004
- #Deploying components
- #Deploying the Supplier Emulator
- #Running the benchmark
- #Processing results
General information
About Geronimo
Geronimo is the Apache Software Foundation Java EE 5 certified application server. It is developed under Apache License and can be downloaded freely.
Apache site: http://apache.org
Product site: Two builds of Geronimo exist, with Jetty or Tomcat servlet container enabled by default. You can download either one at http://geronimo.apache.org/downloads.html, they are slightly larger than 60 MB in size. This document was written primarily using Jetty version, but Tomcat version works fine also.
Obtaining SPECjAppServer2004
SPECjAppServer2004 costs $2000, you can order it online. See FAQ for details.
The latest version is 1.05 coming as the SPECjAppServer2004-Kit-v1.05-050425.jar
file, 12 MB in size.
Conventions and environment
This section contains important notions that mark the important hosts and directories.
Hosts
This article is written in terms of the following machines:
geronimo.host
– the machine where Geronimo is run, with SPECjAppServer2004 deployed.
emulator.host
– the machine where the SPECjAppServer2004 Supplier Emulator is deployed.
driver.host
– the machine where the SPECjAppServer2004 Driver is run. If you use configuration with multiple Drivers, you have to repeat all the operations for this host on all Driver hosts.
master.host
– the main, Masterdriver.host
in configurations with multiple Drivers.
The emulator.host
and the driver.host
may be the same machine.
The geronimo.host
and the emulator.host
may be the same machine, moreover, the SPECjAppServer2004 Supplier Emulator may be deployed into a Geronimo built-in servlet container (Jetty or Tomcat).
The geronimo.host
and the driver.host
may be the same machine, but you have to adjust the Geronimo configuration, as both Geronimo and the SPECjAppServer2004 Driver create RMI Registry on the default port (1099) and would conflict on that.
Info |
---|
Sharing |
Directories
This section lists important directories that are futher addressed in this article. They can be chosen arbitrary, but should not overlap.
<GERONIMO>
– directory at thegeronimo.host
where Geronimo is installed.
<SPEC>
– directory at thegeronimo.host
where SPECjAppServer2004 is installed.
<KIT>
– directory at thegeronimo.host
containing the files attached to this article.
<TOMCAT>
– directory at theemulator.host
where Tomcat is installed.
<DRIVER>
– directory at thedriver.host
that is a copy of the<SPEC>
directory.
<DRIVER_GERONIMO>
– directory at thedriver.host
that is a copy of the<GERONIMO>
directory.
<JAVA_HOME>
–JAVA_HOME
location at thedriver.host
.
<OUTPUT>
– directory at thedriver.host
where the SPECjAppServer2004 Driver will store its output.
<DUMP>
– directory at thedriver.host
where the SPECjAppServer2004 Driver will store its temporal files.
Note |
---|
It was reported that some components may work incorrectly if working paths are too long or contain spaces. So it's recommended that you avoid long paths and spaces in them. |
Installing products
First, save the files attached to this article to a local directory. This will be your <KIT>
directory.
Installing Geronimo
You can easily install Geronimo using the .zip
or .tar.gz
archive.
Extract the downloaded archive to a local directory. The geronimo-1.1
directory is created, that is your <GERONIMO>
directory.
Installing SPECjAppServer2004
Run:
Panel | ||
---|---|---|
| ||
|
Click Next, read and accept the license agreement, and type in the directory you want the SPECjAppServer2004 to be installed to. This directory will be your <SPEC>
directory.
Click Install.
Wait until the installation completes, then click Ready.
Configuring Geronimo
Adjusting configuration
Adjust the EJB configuration by adding the allowHosts
attribute to the <GERONIMO>/var/config/config.xml
file, as shown below.
This is necessary to allow the SPECjAppServer2004 Driver to remotely access the EJBs deployed in Geronimo.
...
<module name="geronimo/openejb/1.1/car">
<gbean name="EJBNetworkService">
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">4201</attribute>
<attribute name="allowHosts">0.0.0.0</attribute>
</gbean>
</module>
If your geronimo.host
and your driver.host
are the same machine, you have to adjust the port number of the Geronimo RMI Registry (to e. g. 1199), otherwise it would conflict with the SPECjAppServer2004 Driver that uses the default port of 1099:
...
<module name="geronimo/rmi-naming/1.1/car">
<gbean name="RMIRegistry">
<attribute name="port">1199</attribute>
</gbean>
<gbean name="NamingProperties">
<attribute name="namingProviderUrl">rmi://0.0.0.0:1199</attribute>
</gbean>
...
<gbean name="JMXService">
<attribute name="protocol">rmi</attribute>
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">9999</attribute>
<attribute name="urlPath">/jndi/rmi://0.0.0.0:1199/JMXConnector</attribute>
</gbean>
</module>
Latest version, 2.0.2: http://geronimo.apache.org/apache-geronimo-v202-release.html
Release notes: http://cwiki.apache.org/GMOxDOC20/release-notes-202txt.html
Documentation page: http://geronimo.apache.org/documentation.html
The best document available is "Apache Geronimo: J2EE Development and Deployment" book by Aaron Mulder: http://chariotsolutions.com/geronimo/
Other important resources are FAQ: http://cwiki.apache.org/GMOxKB and Wiki: http://cwiki.apache.org/geronimo
About SPECjAppServer2004/EAStress2004
SPECjAppServer2004 is a commercial benchmark for measuring the performance of Java EE application servers.
EAStress2004 is a reduced workload that is a part of SPECjAppServer2004 v1.08, it relaxes run and reporting rules, enabling informal results to be shared more easily in open-source research and development projects.
SPEC site: http://www.spec.org
Product site: http://www.spec.org/jAppServer2004/
Press release on v1.08 and EAStress2004: http://www.spec.org/jAppServer2004/jAppServer2004v108.html
FAQ: http://www.spec.org/jAppServer2004/docs/FAQ.html
User's Guide: http://www.spec.org/jAppServer2004/docs/UserGuide.html
Run and Reporting Rules: http://www.spec.org/jAppServer2004/docs/RunRules.html
Obtaining products
Obtaining Geronimo
The latest Geronimo version for now is 2.0.2.
General download page: http://geronimo.apache.org/downloads.html
Two builds of Geronimo exist, with Jetty or Tomcat servlet container enabled by default. You can download either one at http://geronimo.apache.org/downloads.html, they are around 55 MB in size each. This document was written primarily using Jetty version, but Tomcat version works fine also.
Obtaining SPECjAppServer2004
SPECjAppServer2004 costs $2000 ($250 for non-profit/educational purposes), you can order it online. See FAQ for details.
The latest version is 1.08, coming as the SPECjAppServer2004-Kit-v1.08.jar
file, 12 MB in size.
Conventions and environment
This section contains important notions that mark the important hosts and directories.
Hosts
This article is written in terms of the following machines:
geronimo.host
– the machine where Geronimo is run, with SPECjAppServer2004 deployed.
emulator.host
– the machine where the SPECjAppServer2004 Supplier Emulator is deployed.
driver.host
– the machine where the SPECjAppServer2004 Driver is run. If you use configuration with multiple Drivers, you have to repeat all the operations for this host on all Driver hosts.
master.host
– the main, Masterdriver.host
in configurations with multiple Drivers.
The emulator.host
and the driver.host
may be the same machine.
The geronimo.host
and the emulator.host
may be the same machine, moreover, the SPECjAppServer2004 Supplier Emulator may be deployed into a Geronimo built-in servlet container (Jetty or Tomcat).
The geronimo.host
and the driver.host
may be the same machine, but you have to adjust the Geronimo configuration, as both Geronimo and the SPECjAppServer2004 Driver create RMI Registry on the default port (1099) and would conflict on that.
...
Sharing geronimo.host
with emulator.host
or driver.host
is contradicting with the SPECjAppServer2004 documentation and would impact the performance severely and invalidate the benchmark results. However technically this is possible.
...
Directories
This section lists important directories that are further addressed in this article. They can be chosen arbitrary, but should not overlap.
<GERONIMO>
– directory at thegeronimo.host
where Geronimo is installed.
<SPEC>
– directory at thegeronimo.host
where SPECjAppServer2004 is installed.
<KIT>
– directory at thegeronimo.host
containing the files attached to this article.
<TOMCAT>
– directory at theemulator.host
where Tomcat is installed.
<DRIVER>
– directory at thedriver.host
that is a copy of the<SPEC>
directory.
<DRIVER_GERONIMO>
– directory at thedriver.host
that is a copy of the<GERONIMO>
directory.
<JAVA_HOME>
–JAVA_HOME
location at thedriver.host
.
<OUTPUT>
– directory at thedriver.host
where the SPECjAppServer2004 Driver will store its output.
<DUMP>
– directory at thedriver.host
where the SPECjAppServer2004 Driver will store its temporal files.
On Windows some components may work incorrectly if working paths are too long or contain spaces. So it's recommended that you avoid long paths and spaces in them.
Installing products
First, save the files attached to this article to a local directory. This will be your <KIT>
directory.
Installing Geronimo
You can easily install Geronimo using the .zip
or .tar.gz
archive.
Extract the downloaded archive to a local directory. The geronimo-jetty6-jee5-2.0.2
or geronimo-tomcat6-jee5-2.0.2
directory is created, that is your <GERONIMO>
directory.
Installing SPECjAppServer2004
Run:
...
java -jar SPECjAppServer2004-Kit-v1.08.jar
...
Click Next, read and accept the license agreement, and type in the directory you want the SPECjAppServer2004 to be installed to. This directory will be your <SPEC>
directory.
Click Install.
Wait until the installation completes, then click Ready.
Configuring Geronimo
Adjusting configuration
If your geronimo.host
and your driver.host
are the same machine, you have to adjust the port number of the Geronimo RMI Registry (to e. g. 1199), otherwise it would conflict with the SPECjAppServer2004 Driver that uses the default port of 1099. Edit the <GERONIMO>/var/config/config-substitutions.properties
file and change the NamingPort
variable value.
Starting Geronimo
Go to your <GERONIMO>
directory.
Start Geronimo by typing:
...
java -Djava.endorsed.dirs=lib/endorsed -javaagent:bin/jpa.jar -Dopenejb.jndiname.failoncollision=true -Dopenejb.jndiname.format={ejbName} -jar bin/server.jar
...
Please note the two OpenEJB settings, they're necessary to tune Geronimo to the simple format of EJB JNDI names SPECjAppServer2004 uses.
See details at http://cwiki.apache.org/GMOxDEV/client-jndi-names.html and http://cwiki.apache.org/OPENEJB/service-locator.html.
...
You may also use <GERONIMO>/bin/geronimo.sh
or <GERONIMO>/bin/geronimo.bat
scripts instead, after appropriate adjustments.
...
Geronimo v2.0.2 needs access to Internet for SPECjAppServer2004 application to be deployed – it tries to fetch XML schemas from http://java.sun.com site.
So if you're behind a firewall, add the appropriate -Dhttp.proxyHost=
and -Dhttp.proxyPort=
options to the Geronimo startup line.
This problem is caused by OPENEJB-700 bug which is already fixed and the fix should make it to the next version of Geronimo.
If your installation of Geronimo has no access to Internet at all, or your proxy requires authentication, you may use the following workarounds (thanks to Konstantin Malynkin for describing them). You may download the necessary DTDs to your local drive and specify the local path to them in your deployment descriptors (see <SPEC>/src/deploy/geronimo
directory). For example, you could use <!DOCTYPE ejb-jar SYSTEM "C:/DTD/ejb-jar_2_0.dtd">
instead of <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
. Another way is to omit verification at all by deleting or commenting out the references to DTDs in the deployment descriptors. Note that in both cases you would have to rebuild and redeploy the SPECjAppServer2004 application for the changes to take effect.
Starting Geronimo
Go to your <GERONIMO>
directory.
Start Geronimo by typing:
...
borderStyle | solid |
---|
...
It will take some time to start. After that, you will see:
blacksolid No Format
Booting Geronimo Kernel (in Java 1.4.2bgColor black borderStyle solid
If you get another result, particularly, if network errors show up, then something has gone wrong.
...
Sometimes, the startup fails because some local network addresses are inaccessible. This could happen, for example, if you have used a VPN interface that is disconnected now. By default, Geronimo uses the first local address it comes across to access its components, and may try to use a stale address,
...
causing startup errors.
You may try disabling and then re-enabling the unused network interfaces to resolve such issues.
Accessing the console
Open your web browser and connect to the Geronimo Console at http://geronimo.host:8080/console/
Log in using the user name and password (system and manager by default).
Now you may investigate the console if you wish.
Creating the database
Go to the Embedded DB - DB Manager in the Console Navigation.
Create the benchmark database by typing its name (SPECDB) in the Create DB field and clicking Create.
Locating the SQL files
To create database tables, you can use the default SQL scripts provided in the <SPEC>/schema/sql
directory. However, the directory includes five scripts, and they contain DROP TABLE
commands that would fail if you try to execute them in the console when tables are not yet created.
Instead, it is recommended that you use the allTablesNoDrop.sql file, if you are creating the tables from scratch, or allTables.sql file if you want to drop and recreate the tables. Both files were created from the <SPEC>/schema/sql
files by simple concatenation, allTablesNoDrop.sql also has DROP TABLE
commands removed.
Creating the tables
Make sure SPECDB is selected in Use DB field and then copy-paste the SQL code to SQL Command/s frame. Click Run SQL button above it.
After a short delay, the frame will clear and the Result field below it will say SQL command/s successful. If not – check what you did wrong and try again.
If you use multiple SQL scripts, repeat the operations above for each of them.
Configuring SPECjAppServer2004
Basic configuration
deploy
directory
Go to the <SPEC>/src/deploy
directory and copy the reference
subdirectory with its contents with the name geronimo
.
...
Edit the deployment plans in <SPEC>/src/geronimo
, remove all message-driven-destination
tags from mfg.xml
, orders.xml
and supplier.xml
– Geronimo v2.0.2 doesn't handle those tags correctly.
Instead of removing those tags, you also can replace them with <message-destination-type>javax.jms.Queue</message-destination-type>
.
This problem is caused by OPENEJB-701 bug and should disappear after that bug is fixed
You may try disabling and then re-enabling the unused network interfaces to resolve such issues.
Accessing the console
Open your web browser and connect to the Geronimo Console at http://geronimo.host:8080/console/
Log in using the user name and password you provided during the installation (system and manager by default).
Now you may investigate the console if you wish.
Creating the database
Go to the downmost link in the console, DB Manager.
Create the benchmark database by typing its name (SPECDB) in the Create DB field and clicking Create.
Locating the SQL files
To create database tables, you can use the default SQL scripts provided in the <SPEC>/schema/sql
directory. However, the directory includes five scripts, and they contain DROP TABLE
commands that would fail if you try to execute them in the console when tables are not yet created.
Instead, it is recommended that you use the allTablesNoDrop.sql file, if you are creating the tables from scratch, or allTables.sql file if you want to drop and recreate the tables. Both files were created from the <SPEC>/schema/sql
files by simple concatenation, allTablesNoDrop.sql also has DROP TABLE
commands removed.
Creating the tables
Make sure SPECDB is selected in Use DB field and then copy-paste the SQL code to SQL Command/s frame. Click Run SQL button above it.
After a short delay, the frame will clear and the Result field below it will say SQL command/s successful. If not – check what you did wrong and try again.
If you use multiple SQL scripts, repeat the operations above for each of them.
Configuring SPECjAppServer2004
Basic configuration
deploy
directory
...
.
geronimo.env
file
Go to the <SPEC>/config
directory.
...
JAS_HOME=<SPEC>
JAVA_HOME=<JAVA_HOME>
J2EE_HOME=<GERONIMO>
JAS_HOST=geronimo.host
EMULATOR_HOST=emulator.host
...
...
Use forward slashes ( / ) as directory separators!
...
You may leave the other variables intact.
...
Clean-up your installation:
...
...
ant/bin/ant clean
...
Build the application and configure it for Geronimo:
...
...
ant/bin/ant -Dappserver=geronimo
...
You will get the BUILD SUCCESSFUL diagnostic.
Make sure the files SPECjAppServer.ear
and Emulatoremulator.war
are created in the <SPEC>/jars
directory.
...
Go to the <SPEC>/config
directory. Replace the content of each of the *db.properties
files you find there with the contents of the attached db.properties template file. Make sure the pipeDir
variable there points to a valid temporary directory, adjust if necessary.
Loading the tables
Run:
...
...
ant/bin/ant -Dappserver=geronimo loaddb
...
After some time, you will get the BUILD SUCCESSFUL diagnostic.
...
At this stage you need to deploy the configured components to Geronimo.
...
Note that if your geronimo.host
and your driver.host
are the same machine, and you changed the port number of the Geronimo RMI Registry, you should specify that port number in all deployer commands, like this:
...
java -jar bin/deployer.jar -
...
port 1199 ...
Logging in
To avoid specifying login credentials on any call to deployer, you can login first:
...
java -jar bin/deployer.jar -u system -p manager login
...
Deploying database connector
To deploy a connector to the Derby SPECDB database you created earlier, go to the <GERONIMO>
directory and run:
...
...
java -jar bin/deployer.jar
...
deploy repository/org/tranql/tranql-connector-derby-embed-xa/1.
...
4/tranql-connector-derby-embed-xa-1.
...
4.rar <KIT>/sjas-db.xml
You will get the Deployed SPECSPECjAppServer2004/SPECjAppServerDBDB/1.0508/carrar diagnostic.
Deploying JMS connector
To deploy an ActiveMQ JMS connector for SPECjAppServer2004, go to the <GERONIMO>
directory and run:
...
...
java -jar bin/deployer.jar
...
deploy repository/org/apache/geronimo/
...
modules/geronimo-activemq-
...
ra/
...
2.0.
...
2/
...
geronimo-activemq-
...
ra-
...
2.0.
...
2.rar <KIT>/sjas-jms.xml
You will get the Deployed SPECSPECjAppServer2004/SPECjAppServerJMSJMS/1.0508/carrar diagnostic.
Deploying the main application
To deploy SPECjAppServer2004 on Geronimo, this configuration uses the deployment plan that was originally found in Geronimo sources at http://svn.apache.org, modified and updated for Geronimo version 12.0.12.
Go to the <GERONIMO>
directory and run:
...
...
java -jar bin/deployer.jar
...
deploy <SPEC>/jars/SPECjAppServer.ear <KIT>/
...
sjas-app.xml
You will get the Deployed SPECSPECjAppServer2004/SPECjAppServerApplication/1.0508/ear diagnostic.
Verifying the deployment
At this stage you may check that the deployment has been done correctly and that SPECjAppServer2004 is operational.
Atomicity tests
Open the deployed SPECjAppServer2004 page: http://geronimo.host:8080/SPECjAppServer/
In the left-hand menu, click the Atomicity Tests link.
You will see the results of three atomicity tests' runs. If all three of them are marked as PASSED, your deployment is correctthat the deployment has been done correctly and that SPECjAppServer2004 is operational.
Manual transactions
Open the deployed SPECjAppServer2004 page: http://geronimo.host:8080/SPECjAppServer/
...
You should see the program interface and be able to perform transactionstransactions.
Atomicity tests
Open the deployed SPECjAppServer2004 page: http://geronimo.host:8080/SPECjAppServer/
In the left-hand menu, click the Atomicity Tests link.
You will see the results of three atomicity tests' runs. If all three of them are marked as PASSED, your deployment is correct.
Deploying the Supplier Emulator
...
Note that SPECjAppServer2004 documentation requires that the Supplier Emulator servlet container should have the keep-alive
option turned off. You can ignore this requirement, but that would impact the performance severely.
...
Go to the <GERONIMO>
directory and run:
...
...
java -jar bin/deployer.jar
...
deploy <SPEC>/jars/Emulator.war <KIT>/sjas-emulator.xml
You will get the Deployed SPECSPECjAppServer2004/Emulator/1.0508/war @ http://geronimo.host:8080 /Emulator diagnostic.
Using a stand-alone servlet container
...
Do not bother editing <SPEC>/config/tomcat.env
file or running ant/bin/ant -f tomcat.xml
.
Both files are obsolete, they generate the Emulator.war
file, which has already been created at #Building the application phase.
...
bin/catalina run
...
Go to the page http://emulator.host:8080/Emulator/EmulatorServlet
. You should see a page with text like this:
...
...
Emulator Servlet seems to work OK
JAS_HOST : emulator.host
JAS_PORT : 8080
Servlet URL : Supplier/DeliveryServlet
Number of Transactions : 0
Servlet invoked without command specified
...
Running the benchmark
...
Go to the <DRIVER>
directory on the driver.host
and run:
...
...
bin/setenv.bat
...
This configures the environment to run the Driver.
To start the Driver itself, run:
...
...
bin/driver.bat
...
If you wish to run a distributed load with multiple Drivers, then after the Driver is started on the first host (the master.host
), start the Driver on other driver hosts like this:
...
...
bin/driver.bat master.host
...
After starting the Driver, you should see the output like this:
No Format
This means the Driver started normally.
...
You can interrupt the run at any
...
time with Ctrl-C
.
...
It's recommended to reload the database tables before each run, particularly if previous run was not finished correctly. Otherwise, errors like this may occur
...
:
...
black
...
solid
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
During the run, the following diagnostics may appear in the Driver window:
No Format
and in the same time, various TransactionRolledback
and other exceptions of the same kind are being printed in the Geronimo shell.
...
...
These diagnostics are probably caused by the fact that TranQL version 1.3 is used in Geronimo
...
v2.0.2 does not provide the necessary transaction isolation level. Hopefully, this problem will be fixed in TranQL version 1.3.1.
After the run has completed successfuly, you will see the output like this: bgColor No Format
black
The number of JOPS is a final benchmark metric.
...
For now these values for Geronimo are terribly low, and don't depend on the hardware being used. Probably this is due to some configuration issues that still exist or due to the TranQL issue mentioned above.
...
java -cp reporter.jar reporter Your_Submission.txt
...
Run the following command to generate a text-only benchmark report, it would be named Your_Submission.report.txt
:
...
...
java -cp reporter.jar reporter -a Your_Submission.txt
...
For the details on how yo submit your results, see SPECjAppServer2004 User's Guide :: Section 5.3 – Submitting the Results
...