SPECjAppServer-JOnAS
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:
- 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
- "Impossible to instanciate the entity factory: null // Unable to retrieve mapperName for jdbc_RC"
siehe: https://wiki.objectweb.org/jonas/Wiki.jsp?page=FAQ#ref-FAQ-8 und http://mail-archive.ow2.org/jonas-bugs/2004-10/msg00086.html - Beschreibungsdateien für Resourcen verändern/generieren:
http://cvs.forge.objectweb.org/cgi-bin/viewcvs.cgi/jonas-doc/jonas-doc-de/doc/Tools.html?rev=1.14#Tools-raconfig - JOnAS RMI-Configuration / jndi.properties:
http://jonas.objectweb.org/doc/tutorial_old/html/sec_configfiles.html
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... ..