JBoss SPECjAppServer2002 Setup Instructions
This document will guide you through the SPECjAppServer2002 setup process for JBoss-3.2.x server. For JBoss-4.0 when executing the script to create specj configuration just use jboss40.xml instead of jboss32.xml, correct JAVAX_JAR path to servlet classes in jboss32.env (see the comment in jboss32.env) and datasource deployment descriptor.
Install the standard SPECjAppServer2002
JBoss SPECjAppServer2002 Kit
Setup the database
Adjust environment variables
Create specj server and deploy the benchmark
Build the driver
Load the data into the database
Start the JBoss and run the benchmark
Install the standard SPECjAppServer2002
Install the SPECjAppServer2002 kit to create a SPECjAppServer2002 directory. FAQ, user's guide and design information can be found on the SPECjAppServer2002 site.
JBoss SPECjAppServer2002 Kit
The JBoss SPECjAppServer2002 kit contains JBoss-specific configuration files and scripts that help you to setup the benchmark to run in the JBoss server. The kit is available for
downloaded from the JBoss CVS at sourceforge.net.
Use the following CVS command to check out the kit:
$ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/jboss co specj
This will create specj directory under which you'll find SPECjAppServer2002 directory with JBoss-specific configuration and script files.
The specj/SPECjAppServer2002 contains
config | jboss32.env | defines various environment variables |
jboss32-log4j.xml | contains logging configuration and will be copied to JBOSS_HOME/server/specj/conf as log4j.xml | |
jbossXX-service.xml | defines various services that should be available to run the benchmark and will be copied to JBOSS_HOME/server/specj/conf as jboss-service.xml. XX is a JBoss version, i.e. 32 or 40 | |
jboss32-standardjboss.xml | defines standard EJB containers for the benchmark and will be copied to JBOSS_HOME/server/specj/conf as standardjboss.xml | |
corpdb.properties, mfgdb.properties, ordsdb.properties, suppdb.properties | are identical to those that are distributed with the standard SPECjAppServer2002 kit but add properties for MySql | |
jbossXX-mysql-ds.xml, jbossXX-oracle-ds.xml | datasource configurations for the benchmark, one of them will be copied to JBOSS_HOME/server/specj/deploy. XX is a JBoss version, i.e. 32 or 40 | |
cachelisteners-service.xml | configures cache listeners for entity beans, this is used for profiling and will not be copied to JBOSS_HOME/server/specj/deploy by default | |
schema | mysql | DDL files for MySql |
src | deploy/jboss32 | contains JBoss-specific deployment descriptors |
org | Java source files that will be copied to the src directory to the standard SPECjAppServer2002/src directory | |
jbossXX.xml | creates specj JBoss server configuration and deploys the benchmark. XX is a JBoss version, i.e. 32 or 40. |
Copy the contents of JBoss kit specj/SPECjAppServer2002 to the standard SPECjAppServer2002 directory adding/replacing files.
Setup The Database
Go to SPECjAppServer2002/schema directory and use the database product-specific setup scripts to create the database schema.
Adjust Environment Variables
Go to SPECjAppServer2002 directory.
config/appserver
instead of ri.1.3.1 write jboss32
config/jboss32.env
JAS_HOME should point to the directory SPECjAppServer2002 was installed in
JAVA_HOME should point to the JDK directory
J2EE_HOME is the directory the JBoss server was installed in
JDBC_CLASSPATH should include the JDBC driver, this is used to load initial data to the database before running the benchmark
datasource is a JNDI name of the DataSource for entity beans, the default is java:/DefaultDS and should not normally be changed
datasource-mapping is a type-mapping name defined in standardjbosscmp-jdbc.xml, default is Oracle9i, so, change it if you are using a different database
ds.xml is a name of one of the datasource configuration -ds.xml files in the SPECjAppServer2002/config directory that will be copied to the $J2EE_HOME/server/specj/deploy
Change other properties such as JAS_HOST, JAS_PORT, JAS_PREFIX, EMULATOR_HOST, EMULATOR_PORT, EMULATOR_PREFIX as appropriate (see SPECjAppServer2002 documentation).
bin/setenv.bat
Set APPSSERVER to jboss32 and JAVA_HOME and JAS_HOME as appropriate.
bin/driver.bat
Set APPSSERVER to jboss32 and JAVA_HOME and JAS_HOME as appropriate.
Create specj Server And Deploy The Benchmark
Go to SPECjAppServer2002 directory and execute
$ANT_HOME/bin/ant -buildfile jboss32.xml deploy-all
For JBoss-4.0 execute the following
$ANT_HOME/bin/ant -buildfile jboss40.xml deploy-all
This will create a specj server configuration in $J2EE_HOME/server/specj directory and deploy the benchmark (emulator.ear and SPECjAppServer.ear).
Note 1: there is one thing you should do yourself, i.e. copy the JDBC driver to the $J2EE_HOME/server/specj/lib directory.
Note 2: I had to use a newer ANT version than the one that is distributed with the SPECjAppServer2002.
Build The Driver
Execute
$ANT_HOME/bin/ant -Dappserver=jboss32 driver
to compile the benchmark driver.
Load Initial Data Into The Database
Execute
$ANT_HOME/bin/ant -Dappserver=jboss32 loaddb
Start JBoss And Run The Benchmark
To start JBoss go to $J2EE_HOME/bin and execute
run -c specj
To run the benchmark go to SPECjAppServer2002/bin and execute
driver
Oh! And, please, don't forget to let us know your experience!
Known issues
Oracle: Invalid type conversion error
Running the benchmark you might see exceptions about invalid type conversion for field qty. This field is of type short. The problem is the JDBC/SQL type mapping. Open standardjbosscmp-jdbc.xml file and find mapping for java.lang.Short in Oracle9i type-mapping. There are two variants of jdbc-type mapping: NUMERIC and SMALLINT. If one does not work for you then try the other one.
In my experience, NUMERIC works for Oracle9i and SMALLINT for Oracle 10g. But it, probably, depends on the driver you use.
Unix: Cannot load the driver
If you are using Linux/Unix, make sure that jboss32.env has : instead of ; in the definition of the Classpath. The error message displayed is fuzzy and could make you confused.
Related
-
You might want to edit the run.properties files under $JAS_HOME to set the output directory for the run. It defaults to /SPECjAppserver2002/output; which probably doesn't exist (or isn't writable) on your unix system!
Livin Stephen --Wednesday_March-29-2006_IST
-
Comments