SPECjAppServer-JOnAS

Aus SDQ-Wiki

Deutsch: Dieses HowTo / Tutorial beschreibt, wie ein JOnAS Application Server zusammen mit einer PostgreSQL- oder Oracle Express-Datenbank für eine SPEC jAppServer2004 Benchmark verwendet werden kann. Dabei wird vor allem auf die notwendigen Ergänzungen eingegangen, die gegenüber dem Standard-Tutorial (siehe unten) notwendig sind.

English: This HowTo / Tutorial describes how to run the SPECjAppServer2004 Benchmark on a JOnAS Application Server in conjunction with a PostgreSQL or Oracle Express Database. This HowTo / Tutorial is available in German, only. Google translation

Nutzung von JOnAS mit PostgreSQL/Oracle Express für SPEC jAppServer

Settings:

  • Windows 2003 Server
  • SPECjAppServer2004 (SPECjAppServer2004 KIT v1.08 20070209) in C:\SPEC\jAppServ2004\,
  • JOnAS 4.8.6 in C:\JOnAS-4.8.6
  • Datenbank:
    • Postgresql 8.2.5 auf localhost, Port 5432, Datenbank für spec: specdb, Datenbankbenutzer: spec, PW: spec
    • Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product Oracle auf localhost, SQL GUI, Datenbankbenutzer: spec, PW: spec Datenbank für spec: XE, Port 1521
  • SUN Java JDK 1.6.0_03

Hinweise: PostgreSQL scheint die von SPEC benötigten SQL nicht zu unterstützen. Von einer Verwendung wird daher abgeraten. Verwenden Sie stattdessen besser Oracle 10g Express Edition Oracle.

  • Die Verwendung von PostgreSQL 8.0, 8.1, 8.2 bereitet Probleme und führt zu Fehlern. Getestet mit PostgreSQL 8.0.14 / postgresql-8.0-321.jdbc3.jar, Postgresql 8.1.10 / postgresql-8.1-410.jdbc3.jar, Postgresql 8.2.5 / postgresql-8.2-507.jdbc3.jar.
    • Grund: ERROR: SELECT FOR UPDATE/SHARE cannot be applied to the nullable side of an outer join
    • Dieser SQL-Befehl wird von PostgreSQL grundsätzlich nicht unterstützt. In seltenen Zwischenversionen existieren aber offenbar Patches für diesen Fehler.
  • Java JDK 1.5 funktioniert nicht

Hauptleitfaden

In diesem Tutorial / HowTo finden sich ein paar Ergänzungen zum Schritt "Configuring JOnAS" aus diesem Tutorial, das als Hauptquelle fungiert: SPEC JOnAS Wiki Tutorial

(Backup), Allgemeiner Leitfaden von SPEC

Ergänzende Schritte

1. jonas.properties-Datei anpassen

$JONAS_BASE/conf/jonas.properties anpassen: ("Using the old service jms and the old service dbm")

jonas.services registry,jmx,jtm,dbm,jms,security,ejb,ws,web,ear

(siehe auch #Änderungen in jonas.properties)

2. Resource Adapter konfigurieren

nach "2.6.3.2. PostgreSQL JDBC resource adapter (Driver)" in http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#config.ra

rars\autoload\JOnAS_jdbcDM.rar\META-INF\jonas-ra.xml und ra.xml ändern

(siehe Abschnitt #Änderungen an ra.xml (in rars/autolaod/JOnAS_jdbcDM.rar))

JOnAS_jdbcDM.rar beibehalten Umbenennen: JOnAS_jdbcCP.rar, JOnAS_jdbcDS.rar, JOnAS_jdbcXA.rar bspw. in _JOnAS_jdbcXA.rar_

3. Deploy-Verzeichnis anlegen

SPEC\jAppServ2004\src\deploy\jonas anlegen

4. Richtigen JNDI-Mapper-Name verwenden

SPEC\jAppServ2004\src\deploy\jonas\jonas-*.xml referenziert jdbc_RC: jdbc_RC durch jdbc_1 ersetzen in:

jonas-corp.xml
jonas-mfg.xml
jonas-orders.xml
jonas-supplier.xml
jonas-util.xml
jonas-supplier.xml

(Die Originaldateien stammen von JOnAs SPEC Wiki und müssen angepasst werden.)

Statt jdbc_1 kann jdbc_RC verwendet werden; wichtig ist, dass die Einträge in der JOnAS-Konfiguration mit der in den SPEC-Deployment-Dateien übereinstimmt.

5. JDBC-Treiber einbinden

Externe Bibliotheken / JARs unter JOnAS-4.8.6\lib\ext\ ablegen. Dazu gehört auch der JDBC-Treiber. Benötigt wird ein JDBC3-Treiber für PostgreSQL 8.2, bspw. postgresql-8.2-507.jdbc3.jar (siehe JDBC-Seite von PostgreSQL, Treiber-JAR für 8.2) bzw. ojdbc14.jar (aus oraclexe\app\oracle\product\10.2.0\server\jdbc\lib) für Oracle

Datenbank einrichten

Unter Oracle 10g Expresse Edition.

Einfache Variante: Benutzer spec anlegen und für diesen Benutzer die im Verzeichnis des allgemeinen SQL liegenden SQL-Befehle zum Anlegen der Tabellen nutzen. Dazu als Nutzer "spec" an der DB anmelden

  • Aus den SQL-Statements jeweils das DROPTABLE Statement (für den ersten Durchlauf) entfernen.
  • DB für Benutzer spec zugreifbar machen.

Komplexere Variante

  • eigene Tablespaces anlegen entsprechend der SPEC\jAppServ2004\schema\9i\sql\*.sql-Dateien
  • n/a

JDBC-Treiber für Oracle: oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar

Driver/Treiber konfigurieren

Entsprechend des Abschnitts "Running the bench">"Scenario 1: driver + SUT on the same host (localhost)" aus JOnAS Wiki müssen die Konfigurationen übernommen werden. Notwendige Aufweichungen werden im Folgenden gelistet:

Port des Application Servers anpassen

Im oben angegebenen Tutorial wird nicht der Standard-HTTP-Port von JOnAS verwendet (9000); dieser ist zu setzen.

Datei: jAppServer2004\config\jonas.env

..
EMULATOR_PORT=9000
..
JAS_PORT=9000
..

Indikator für Fehler dieses Falls:

Calling switchLog as master
java.net.ConnectException: Connection refused: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)

JNDI class setzen

Datei: jAppServer2004\config\jonas.env

#NAMING_PROVIDER= #orig
NAMING_PROVIDER=rmi://localhost:1097
#JNDI_CLASS= #orig
JNDI_CLASS=com.sun.jndi.rmi.registry.RegistryContextFactory

Indikator für Fehler dieses Falls:

Exception in thread "main" java.rmi.RemoteException: InitialContext failed. java
x.naming.NoInitialContextException: Cannot instantiate class: maybe.some.class.name.Here
[Root exception is java.lang.ClassNotFoundException: ]
        at org.spec.jappserver.driver.Auditor.getAuditBeans(Auditor.java:121)
        at org.spec.jappserver.driver.Auditor.validateInitialValues(Auditor.java
..

Pointer: Apache Geronimo mit jAppServer

Daten für den Zugriff auf die Datenbank

Dateien: SPEC\jAppServ2004\config\[prefix]db.properties mit [prefix] aus {corp,mfg,ords,supp,util}

Das Verzeichnis c:\tmp\ anlegen.

Es sollten die folgenden Einstellungen gesetzt sein. (Alles läuft auf localhost.)

PostgreSQL:

# default is /tmp
pipeDir = c:\tmp\

# Delimiter used by loader when loading in flat files, default is '|'
loadDelimiter = |

# Uncomment the lines for your specific Database
dbUser = spec
dbPassword = spec

dbURL = jdbc:postgresql://localhost:5432/specdb
dbDriver = org.postgresql.Driver
jdbcVersion = 3
..

Oracle:

# default is /tmp
pipeDir = c:\tmp\

# Delimiter used by loader when loading in flat files, default is '|'
loadDelimiter = |

# Uncomment the lines for your specific Database
dbUser = spec
dbPassword = spec

dbURL = jdbc:oracle:thin:@localhost:1521:XE
dbDriver = oracle.jdbc.driver.OracleDriver
jdbcVersion = 2
..

Client.jar

Copy JOnAS-4.8.6\lib\client.jar into client classpath (or SPEC\jAppServ2004\jars)

Client.jar im Classpath des Driver ergänzen

in jonas.env den Classpath ergänzen:

..
CLASSPATH=..[other classpath elements]..${FS}${JAS_HOME}/jars/client.jar${FS}
..

Fehlerindikator, dass die JARs für den Client nicht gefunden werden konnten:

Output directory for this run is : C:\SPEC\jAppServ2004\output\[number]
Exception in thread "main" java.lang.NoClassDefFoundError: javax/ejb/EJBHome
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)

Fehler beim Schreiben der Ausgaben

Datei: SPEC\jAppServer2004\config\run.properties

Für Windows-Systeme muss das Ausgabeverzeichnis angepasst werden:

# Name of  directory in which output of runs go                                     #
#                                                                                   #
# --------------------------------------------------------------------------------- #
# outDir = /SPECjAppServer2004/output #orig
outDir = C:\\SPEC\\jAppServ2004\\output

Indikator für Fehler dieses Falls:

Calling switchLog as master
RunID for this run is : 5
Exception in thread "main" java.lang.Exception: Could not create the new Run Dir
ectory: /SPECjAppServer2004/output\5java.lang.Exception: Could not create the
new Run Directory: /SPECjAppServer2004/output\5
        at org.spec.jappserver.driver.Driver.<init>(Driver.java:158)

Temp-Verzeichnis in run.properties setzen

in SPEC\jAppServer2004\config\run.properties ergänzen:

..
#dumpDir = /tmp
dumpDir = c:\\tmp
..

Zugriffspunkt für den Treiber in run.properties setzen

in SPEC\jAppServer2004\config\run.properties ergänzen:

..
# Url is the url of the SPECjAppServer2004 web application.
#Url=http://<hostname>:<port>/SPECjAppServer/app?
Url=http://localhost:9000/SPECjAppServer/app?
..

Fehlerindikator bei falscher URL:

Error: Connection: IOException: java.net.ConnectException: Connection refused: connect
Error: Connection: IOException: java.net.ConnectException: Connection refused: connect
Error: Connection: IOException: java.net.ConnectException: Connection refused: connect
Error: Connection: IOException: java.net.ConnectException: Connection refused: connect
Exception in thread "main" java.lang.NullPointerException
        at org.spec.jappserver.driver.http.HttpDealer.cacheTest(HttpDealer.java:720)
        at org.spec.jappserver.driver.Auditor.cacheTest(Auditor.java:435)

RMI-Einstellungen von JOnas und Driver: Konflikt auflösen

Es gibt mit den Standardeinstellungen einen RMI-Port-Konflikt für Port 1099 zwischen JOnAs und Driver.

Unter JOnAS-4.8.6\conf\carol.properties den Port für jrmp ändern:

..
# jonas rmi activation (iiop, irmi, jrmp, jeremie, cmi)
carol.protocols=jrmp

# RMI IRMI URL
carol.irmi.url=rmi://localhost:1098

# RMI JRMP URL
#carol.jrmp.url=rmi://localhost:1099 # orig
carol.jrmp.url=rmi://localhost:1097 # CHANGED PORT

# RMI JEREMIE URL
carol.jeremie.url=jrmi://localhost:2000

# RMI IIOP URL
carol.iiop.url=iiop://localhost:2001
..

Ports für RMI in Client und Server

In jonas.env (im jAppServer) muss NAMING_PROVIDER=rmi://localhost:1097 mit carol.jrmp.url=rmi://localhost:1097 in carol.properties (im JOnAS) übereinstimmen.

siehe auch: http://mail-archive.ow2.org/jonas/2005-05/msg00259.html

load DB

ant -f build.xml loaddb wirft einen Fehler

loaddb:
     [java] INFO : IR supplied : 1
     [java] INFO : stepped IR  : 1
     [java] WARNING : pipeDir not set or does not exist
     [java] WARNING : using default /tmp
     [java] java.lang.ClassNotFoundException: org.postgresql.Driver
     [java]     at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
     [java]     at java.security.AccessController.doPrivileged(Native Method)

Abhilfe: jars/postgresql-8.2-507.jdbc3.jar in SPEC\jAppServer2004\build.xml im Classpath ergänzen (Eine Kopie von postgresql-8.2-507.jdbc3.jar muss in SPEC\jAppServer2004\jars liegen; analog für Oracle):

  <target name="loaddb" depends="load">
    <property name="LoadPkg" value="org.spec.jappserver.load"/>
    <java classname="${LoadPkg}.LoadAll" fork="true">
      <jvmarg value="-Dspecjappserver.home=${JAS_HOME}"/>
      <arg value="${SCALE}"/>
      <arg value="${THREADS}"/>
      <arg value="${FLATFILES}"/>
      <classpath>
        <pathelement path="${JDBC_CLASSPATH}"/>
        <pathelement path="${CLASSPATH}"/>
	<pathelement path="jars/postgresql-8.2-507.jdbc3.jar"/> <!-- ### NEW LINE ### -->
	<pathelement location="jars/load.jar"/>
      </classpath>
    </java>
  </target>

DB

Fehlerindikator:

Exception in thread "main" java.rmi.RemoteException: Failure in calling validate
InitialValues() java.rmi.RemoteException: Invalid initial Order DB State
        at org.spec.jappserver.driver.Auditor.validateInitialValues(Auditor.java:205)
        at org.spec.jappserver.driver.Driver.configure(Driver.java:337)

Lösung: loaddb.bat / ant -f build.xml loaddb ausführen

loaddb.bat modifizieren

SPEC\jAppServer2004\bin\loaddb.bat kann alternativ zu ant -f build.xml loaddb verwendet werden.

Postgresql- / Oracle-Treiber berücksichtigen; im JDBC-Classpath ergänzen:

PostgreSQL:

..
set JDBC_CLASSPATH=[..];%JAS_HOME%\jars\postgresql-8.2-507.jdbc3.jar;
..

Oracle:

..
set JDBC_CLASSPATH=[..];%JAS_HOME%\jars\ojdbc14.jar;
..

Fehlerindikator:

java.lang.ClassNotFoundException: org.postgresql.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

driver.bat modifizieren

Postgresql- / Oracle-Treiber berücksichtigen; im Classpath ergänzen:

PostgreSQL:

%JAVA_HOME%\bin\java -classpath [..];%JAS_HOME%\jars\postgresql-8.2-507.jdbc3.jar; -Djava.co[..]

Oracle:

%JAVA_HOME%\bin\java -classpath [..];%JAS_HOME%\jars\ojdbc14.jar; -Djava.co[..]

Deployment prüfen

http://localhost:9000/Emulator/EmulatorServlet

Sonstiges

Fehler:

SEVERE : RMI TCP Connection(15)-.. : Logger.log :    Jorm could not load bean instance
SEVERE : RMI TCP Connection(17)-.. : Logger.log :    runtime exception: 
javax.ejb.EJBException: org.postgresql.util.PSQLException:
  ERROR: SELECT FOR UPDATE/SHARE cannot be applied to the nullable side of an outer join
	at org.objectweb.jonas_gen.org.spec.jappserver.mfg.assemblyent.ejb.
          JOnASAssemblyEnt_1477861142Bean.ejbLoad(JOnASAssemblyEnt_1477861142Bean.java:1249)
	at org.objectweb.jonas_ejb.container.JEntityContext.activate(JEntityContext.java:649)
..

--> PostgreSQL scheint diese SQL-Anfragen grundsätzlich NICHT zu unterstützen. Mailinglisten-Archiv

Mögliche Lösungen:

  • Einige wenige PostgreSQL-Versionen unterstützen den SQL-Befehl doch. Versuchen Sie eine passende Version zu finden.
  • Verwenden Sie eine alternative Datenbank wie die hier angeführte Oracle Express 10g DB.

JOnAS-Modus für Treiber-Interaktion

Start JOnAS (BackGround)

Modifizierte Versionen von SPEC ausführen

Damit beim Ausführen modifizierter Versionen von SPEC keine Fehler auftreten, muss SPEC\jAppServer2004\config\run.properties verändert werden:

..
#doAudit = 1 #orig
doAudit = 0
..

Problem-Helfer

Treiber/Driver build

in SPEC\jAppServer: ant -f build.xml clean-driver (alten Treiber löschen)

    <target name="driver" depends="compile">
    <rmic base="./classes" includes="**/driver/*Impl.class,**/driver/*Agent.class" excludes="**/driver/Agent.class"/> 
    <jar jarfile="jars/driver.jar">
	<!-- <fileset dir="classes" includes="**/driver/*.class,**/driver/http/*.class"/> ORIG -->
	<!-- EXTENDED by ../eastress/.. : -->	
	<fileset dir="classes" includes="**/driver/*.class,**/driver/http/*.class,**/org/eastress/*.class"/>
    </jar>    
    <jar jarfile="jars/launcher.jar">
        <fileset dir="classes" includes="**/launcher/*.class"/>
    </jar></target>

ant -f build.xml driver (Treiber neu bauen)

Zu viele gleichzeitige Zugriffe auf die Oracle-Express Datenbank

Fehlerindikator:

java.sql.SQLException: Listener refused the connection with the following error:

ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used by the client was:
localhost:1521:XE
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)

Abhilfe:

  • SQL: ALTER SYSTEM SET PROCESSES=150 SCOPE=SPFILE; and then restart the db Quelle: Oracle Forum
  • u. U. reicht es bereits Managementkonsolen etc. zu schließen

Weitere

Speicherproblem (Heap Space)

siehe JOnAS Memory Configuration

Dateien / Datei-Änderungen

Änderungen in jonas.properties

..
#  Set the list of the services launched in the JOnAS Server.
#  Possible services are: registry,jmx,thread,security,jtm,db,mail,dbm,resource,jms,ejb,ws,web,ear,ha,discovery
#  registry,jmx,jtm,ejb are mandatory
#  (registry and jmx are automatically started even if not present in the list)
#  Order in the list is important (see 'Configuring JOnAS services' in JOnAS documentation)
#
# jonas.services    registry,jmx,jtm,db,dbm,security,resource,ejb,ws,web,ear # orig
jonas.services registry,jmx,jtm,dbm,jms,security,ejb,ws,web,ear 
..
..
#  Set the jonas DataSources. This enables the JOnAS server to load
#  the data dources, to load related jdbc drivers, and to register the data
#  sources into JNDI.
#  This property is set with a coma-separated list of Datasource properties
#  file names (without the '.properties' suffix).
#  Ex: Oracle1,InstantDB1 (while the Datasources properties file names are
#                          Oracle1.properties and InstantDB1.properties)
#jonas.service.dbm.datasources    HSQL1
jonas.service.dbm.datasources    PostgreSQL1
# jonas.service.dbm.datasources    Oracle1 # for oracle
..

Änderungen an ra.xml (in rars/autolaod/JOnAS_jdbcDM.rar)

PostgreSQL:

..
       <config-property>    
            <config-property-name>dsClass</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>org.postgresql.Driver</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>URL</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>jdbc:postgresql:/localhost:5432/spec</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>user</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>spec</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>password</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>spec</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>loginTimeout</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>0</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>isolationLevel</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value></config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>mapperName</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>rdb.postgres</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>logTopic</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value></config-property-value>
        </config-property>
..

Oracle:

..
       <config-property>    
            <config-property-name>dsClass</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>oracle.jdbc.driver.OracleDriver</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>URL</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>jdbc:oracle:thin:@localhost:1521:XE</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>user</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>spec</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>password</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>spec</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>loginTimeout</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>0</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>isolationLevel</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value></config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>mapperName</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>rdb.oracle</config-property-value>
        </config-property>
        <config-property>    
            <config-property-name>logTopic</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value></config-property-value>
        </config-property>
..

Änderungen an jonas-ra.xml (in rars/autolaod/JOnAS_jdbcDM.rar)

Änderungen müssen zu ra.xml konsistent sein

PostgreSQL:

..
 <jonas-config-property>
    <jonas-config-property-name>URL</jonas-config-property-name>
    <jonas-config-property-value>jdbc:postgresql:/localhost:5432/spec</jonas-config-property-value>
  </jonas-config-property>

  <jonas-config-property>
    <jonas-config-property-name>dsClass</jonas-config-property-name>
    <jonas-config-property-value>org.postgresql.Driver</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>user</jonas-config-property-name>
    <jonas-config-property-value>spec</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>password</jonas-config-property-name>
    <jonas-config-property-value>spec</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>databaseName</jonas-config-property-name>
    <jonas-config-property-value>specdb</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>description</jonas-config-property-name>
    <jonas-config-property-value></jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>portNumber</jonas-config-property-name>
    <jonas-config-property-value>5432</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>serverName</jonas-config-property-name>
    <jonas-config-property-value>localhost</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>loginTimeout</jonas-config-property-name>
    <jonas-config-property-value></jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>dbSpecificMethods</jonas-config-property-name>
    <jonas-config-property-value></jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>isolationLevel</jonas-config-property-name>
    <jonas-config-property-value></jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>mapperName</jonas-config-property-name>
    <jonas-config-property-value>rdb.postgres</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>logTopic</jonas-config-property-name>
    <jonas-config-property-value></jonas-config-property-value>
  </jonas-config-property>
..

Oracle:

..
 <jonas-config-property>
    <jonas-config-property-name>URL</jonas-config-property-name>
    <jonas-config-property-value>jdbc:oracle:thin:@localhost:1521:XE</jonas-config-property-value>
  </jonas-config-property>

  <jonas-config-property>
    <jonas-config-property-name>dsClass</jonas-config-property-name>
    <jonas-config-property-value>oracle.jdbc.driver.OracleDriver</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>user</jonas-config-property-name>
    <jonas-config-property-value>spec</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>password</jonas-config-property-name>
    <jonas-config-property-value>spec</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>databaseName</jonas-config-property-name>
    <jonas-config-property-value>XE</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>description</jonas-config-property-name>
    <jonas-config-property-value></jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>portNumber</jonas-config-property-name>
    <jonas-config-property-value>1521</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>serverName</jonas-config-property-name>
    <jonas-config-property-value>localhost</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>loginTimeout</jonas-config-property-name>
    <jonas-config-property-value></jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>dbSpecificMethods</jonas-config-property-name>
    <jonas-config-property-value></jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>isolationLevel</jonas-config-property-name>
    <jonas-config-property-value></jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>mapperName</jonas-config-property-name>
    <jonas-config-property-value>rdb.oracle</jonas-config-property-value>
  </jonas-config-property>
  <jonas-config-property>
    <jonas-config-property-name>logTopic</jonas-config-property-name>
    <jonas-config-property-value></jonas-config-property-value>
  </jonas-config-property>
..

PostgreSQL1.properties-Datei

..
datasource.name         jdbc_1
datasource.url          jdbc:postgresql://localhost:5432/specdb
datasource.classname    org.postgresql.Driver
datasource.username     spec
datasource.password     spec
datasource.mapper	rdb.postgres
..

Oracle1.properties-Datei

..
datasource.name		jdbc_1
datasource.url		jdbc:oracle:thin:@localhost:1521:XE
datasource.classname	oracle.jdbc.driver.OracleDriver
datasource.username	spec
datasource.password	spec
datasource.mapper	rdb.oracle
..

setenv.bat

SPEC\jAppServer2004\bin\setenv.bat:

..
set JAVA_HOME=C:\Programme\Java\jdk1.6.0_03
set JAS_HOME=C:\SPEC\jAppServ2004
set CONFIG_DIR=%JAS_HOME%\config
set APPSSERVER=jonas
set ENVFILE=%CONFIG_DIR%\%APPSSERVER%.env
..

Konsolen-Output des Driver

Eine ordentliche Konsolen-Ausgabe sollte wie hier dargestellt aussehen.

siehe auch Running the benchmark: Console Output

C:\SPEC\jAppServ2004\bin>driver.bat
The following environment settings are in effect:
* ========================= *
   JAVA_HOME=C:\Programme\Java\jdk1.6.0_03
    JAS_HOME=C:\SPEC\jAppServ2004
  CONFIG_DIR=C:\SPEC\jAppServ2004\config
  APPSSERVER=jonas
     ENVFILE=C:\SPEC\jAppServ2004\config\jonas.env
* ========================= *
Driver Host: I43PC21
Binding controller to //i43pc21/Controller
DriverDebug: DealerAgent <propsFile> <agentName> <masterMachine> [-researchMode]

Controller: Registering M1 on machine 141.3.52.21
Controller: Registering L1 on machine 141.3.52.21
Controller: Registering O1 on machine 141.3.52.21
Calling switchLog as master
RunID for this run is : 80
Output directory for this run is : C:\SPEC\jAppServ2004\output\80
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      = Tue Dec 04 10:42:52 CET 2007
SteadyState = Tue Dec 04 10:52:52 CET 2007
Rampdown    = Tue Dec 04 11:52:52 CET 2007
Finish      = Tue Dec 04 11:57:52 CET 2007

sleeptime is 28625 note this is time in excess needed for trigger
Starting Ramp Up...
..
Keywords: Benchmark, SPEC, jAppServer2004, HowTo, Anleitung, JOnAS, PostgreSQL, Oracle Express