Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This article is written for SPECjAppServer2004 v1.08 and Geronimo v2.1. 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, v2.0.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.

...

Note

Geronimo v2.1 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 v2.1.1.

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.

...

Edit the <SPEC>/config/run.properties file. Note that it will be used on the driver.host and make sure the following variables have correct values:

researchMode = true (turns EAStress mode on)
Url = http://geronimo.host:8080/SPECjAppServer/app?
outDir = <OUTPUT>
dumpDir = <DUMP>

...

At this stage you may check that the deployment has been done correctly and that SPECjAppServer2004 is operational.

Manual transactions

Delivery servlet

Go to the page Open the deployed SPECjAppServer2004 page: http://geronimo.host:8080/SPECjAppServer/

In the left-hand menu, click the Go Trade Autos! or Go Build Cars! link.

Log in with the default credentials (1) by clicking Log in.

You should see the program interface and be able to perform transactions.

Atomicity tests

Supplier/. It should load normally and contain a single directory, dtd, with two files inside, delivery.dtd and po.dtd.

Go to the page http://geronimo.host:8080/Supplier/DeliveryServlet. You should see a page with text like this:

Panel
bgColorwhite
borderStylesolid

Servlet seems to work OK
Number of Transactions : 0
Servlet invoked without command specified

Manual transactions

Open the deployed SPECjAppServer2004 page: http://geronimo.host:8080/SPECjAppServer/

In the left-hand menu, click the Atomicity Tests Go Trade Autos! or Go Build Cars! link.

Log in with the default credentials (1) by clicking Log in.

You should see the program interface and be able to perform transactions.

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 You will see the results of three atomicity tests' runs. If all three of them are marked as PASSED, your deployment is correct.

...

No Format
bgColorblack
borderStylesolid
The following environment settings are in effect for SPECjAppServer2004:
* ========================= *
   JAVA_HOME=<JAVA_HOME>
    JAS_HOME=<DRIVER>
  CONFIG_DIR=<DRIVER>\config
  APPSSERVER=geronimo
     ENVFILE=<DRIVER>\config\geronimo.env
* ========================= *
Driver Host: <driver.host>
Binding controller to //<driver.host>/Controller
DriverDebug: DealerAgent <propsFile> <agentName> <masterMachine>
Controller: Registering M1 on machine <driver.host IP address>
Controller: Registering O1 on machine <driver.host IP address>
Controller: Registering L1 on machine <driver.host IP address>
Calling switchLog as master
RunID for this run is : 75
Output directory for this run is : <OUTPUT>\75
TTF1 = 93
ttf = 93
Configuring 1 DealerAgent(s)...
DealerAgent O1, Thread 0 started
DealerAgent O1, Thread 1 started
DealerAgent O1, Thread 2 started
DealerAgent O1, Thread 3 started
DealerAgent O1, Thread 4 started
DealerAgent O1, Thread 5 started
DealerAgent O1, Thread 6 started
DealerAgent O1, Thread 7 started
DealerAgent O1, Thread 8 started
DealerAgent O1, Thread 9 started
Configuring 1 MfgAgent(s)...
MfgAgent M1, Thread 0 started
MfgAgent M1, Thread 1 started
MfgAgent M1, Thread 2 started
Configuring 1 LargeOLAgent(s)...


MfgAgent L1, Thread 0 started
Rampup      = Fri May 12 20:49:51 MSD 2006
SteadyState = Fri May 12 20:59:51 MSD 2006
Rampdown    = Fri May 12 21:59:51 MSD 2006
Finish      = Fri May 12 
This result was created using EAStress2004, a research workload
utilizing a subset of the SPECjAppServer2004 benchmark with a unique
metric. It is provided only as a tool for research testing and
experimentation in situations where the benchmark run rules cannot be
met due to technical reasons (e. g., usage of projects under development,
usage of experimental platforms). EAStress2004 results are not reviewed
by SPEC and can in no way be compared with SPECjAppServer2004 results.
Because EAStress results are not compliant with the benchmark run rules,
the use of EAStress results in competitive comparisons between vendors
is prohibited.

Public use of SPECjAppServer2004 benchmark results, including the
EAStress workload, are bound by the SPEC OSSC Fair Use Guidelines
and the SPECjAppServer2004 specific Run and Reporting Rules. All
publications must clearly state that these results have not been
reviewed or accepted by SPEC using text equivalent to this:

   SPECjAppServer is a trademark of the Standard Performance Evaluation
   Corp. (SPEC). The EAStress workload results or findings in this
   publication have not been reviewed or accepted by SPEC, therefore no
   comparison nor performance inference can be made against any published
   SPEC result. The official web site for SPECjAppServer2004 is located at
   http://www.spec.org/osg/jAppServer2004.

Binding controller to //<driver.host>/Controller
DriverDebug: DealerAgent <propsFile> <agentName> <masterMachine>
Controller: Registering M1 on machine <driver.host IP address>
Controller: Registering O1 on machine <driver.host IP address>
Controller: Registering L1 on machine <driver.host IP address>
Calling switchLog as master
RunID for this run is : 75
Output directory for this run is : <OUTPUT>\75
TTF1 = 93
ttf = 93
Configuring 1 DealerAgent(s)...
DealerAgent O1, Thread 0 started
DealerAgent O1, Thread 1 started
DealerAgent O1, Thread 2 started
DealerAgent O1, Thread 3 started
DealerAgent O1, Thread 4 started
DealerAgent O1, Thread 5 started
DealerAgent O1, Thread 6 started
DealerAgent O1, Thread 7 started
DealerAgent O1, Thread 8 started
DealerAgent O1, Thread 9 started
Configuring 1 MfgAgent(s)...
MfgAgent M1, Thread 0 started
MfgAgent M1, Thread 1 started
MfgAgent M1, Thread 2 started
Configuring 1 LargeOLAgent(s)...


MfgAgent L1, Thread 0 started
Rampup      = Fri May 12 20:49:51 MSD 2006
SteadyState = Fri May 12 20:59:51 MSD 2006
Rampdown    = Fri May 12 21:59:51 MSD 2006
Finish      = Fri May 12 22:04:51 MSD 2006

sleeptime is 28417 note this is time in excess needed for trigger
Starting Ramp Up...

...

Note

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:

No Format
bgColorblack
borderStylesolid
java.rmi.RemoteException: Failure in calling validateInitialValues() java.rmi.RemoteException: Invalid initial Order DB State.RemoteException: Invalid initial Order DB State
        at org.spec.jappserver.driver.Auditor.validateInitialValues(Auditor.java:201)
        at org.spec.jappserver.driver.Driver.configure(Driver.java:330)
        at org.spec.jappserver.driver.AuditorDriver.validateInitialValues<init>(AuditorDriver.java:201160)
        at org.spec.jappserver.driver.Driver.configuremain(Driver.java:330)
        at org.spec.jappserver.driver.Driver.<init>(Driver.java:160)
        at org.spec.jappserver.driver.Driver.main(Driver.java:1137)

During the run, the following diagnostics may appear in the Driver window:

No Format
bgColorblack
borderStylesolid

AbstractSJASLoad> Application error has already been cancelled

1137)

During the run, the diagnostics like these may appear in the Geronimo shell:

No Format
bgColorblack
borderStylesolid

javax.ejb.EJBException: The transaction has been marked rollback only because the bean encountered a non-application exception:
org.apache.openejb.core.transaction.TransactionRolledbackException: The transaction has been marked rollback only because the bean encountered a non-application exception:
org.apache.openjpa.persistence.PersistenceException : A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
and in the same time, various TransactionRolledback and other exceptions of the same kind are being printed in the Geronimo shell.

Warning

These diagnostics are probably caused by the fact that TranQL version 1.3 is used in Geronimo v2.1 does not provide the necessary transaction isolation level. Hopefully, this problem will be fixed in TranQL version 1.3.1.future versions.

After the run has completed successfuly, you will see the output like this:

No Format
bgColorblack
borderStylesolid
Gathering DealerStats ...
Gathering MfgStats ...
summary file is <OUTPUT>\75\SPECjAppServer.summary
SPECjAppServer2004 v1.08 Results
JOPS: ***
Dealer Response Times
     Purchase...0.4
     Manage.....1.5
     Browse.....0.4
Manufacturing Response Times
     Mfg........0.0
Calling getLog as master

...