SPEC Seal of Reviewal SPECjAppServer®2004 Result
Copyright © 2004 Standard Performance Evaluation Corporation
Sybase Enterprise Application Server 6.0.2 Advanced Edition
652.95 SPECjAppServer2004 JOPS@Standard
Submitter:
Sybase Inc.
SPEC license # 82 Test date:
Jun-2007
Software Products
Sybase Enterprise Application Server 6.0.2 Advanced Edition
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03) 64-bit
BEA JRockit(R)5.0JDK(R27.1.0-109)(64-bit)
iAnywhere JDBC Driver 10.0.1
SQLAnywhere 10.0.1 x32
Software Configurations
J2EE Application Server
Emulator SW Config
Database SW Config
Driver SW Config
Hardware Systems
J2EE AppServer HW
Database Server HW
Load Driver HW

System Configuration Diagram

Benchmark
Modifications
Configuration
Bill of Materials
Other Info
General Notes
Full Disclosure Archive

SUT Configuration
J2EE Server Nodes: 1   DB Server Nodes: 1
J2EE Server CPUs: 4 cores, 2 chips   DB Server CPUs: 4 cores, 2 chips
J2EE Instances: 1   DB Instances: 1
Other SUT Components:
   PowerConnect 5324 Managed Switch

Benchmark Settings
Dealer Injection Rate: 395   Ramp Up Time: 600 seconds
# of Dealer Agents: 1   Ramp Down Time: 300 seconds
# of Manufacturing Agents: 1   Steady State Time: 3,600 seconds
DB Load Injection Rate: 400   Trigger Time: 600 seconds

Detailed Results
Dealer Transaction Mix Count Tx. Mix
Purchase 350,896 24.97%
Manage 351,575 25.02%
Browse 702,898 50.02%
Total # Dealer Transactions 1,405,369
Total # Manufacturing Transactions 945,236
Response Times Average Maximum 90th% Reqd
Purchase 0.55 30.10 1.10 2.00
Manage 0.42 86.64 0.60 2.00
Browse 0.75 29.23 1.60 2.00
Manufacturing 1.14 93.44 1.50 5.00
Reproducibility Run (SPECjAppServer2004 JOPS) 695.73

Sybase Enterprise Application Server 6.0.2 Advanced Edition
Vendor: Sybase Inc. Availability: Jun-2007
CTS Version: 1.4 Date Passed CTS: Aug-2006
OS Name: Windows Server 2003 (64-bit) Standard Edition
EJB Protocol: RMI/IIOP

Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03) 64-bit
Vendor: Sun Availability: Nov-2006
OS Name: Windows Server 2003 (64-bit) Standard Edition

BEA JRockit(R)5.0JDK(R27.1.0-109)(64-bit)
Vendor: BEA Systems Availability: Nov-2006
OS Name: Windows Server 2003 (64-bit) Standard Edition x64

iAnywhere JDBC Driver 10.0.1
Vendor: iAnywhere Availability: Apr-2007
OS Name: Windows Server 2003 (64-bit) Standard Edition x64

SQLAnywhere 10.0.1 x32
Vendor: iAnywhere Availability: Apr-2007
OS Name: Windows Server 2003 (64-bit) Standard Edition

J2EE Application Server
J2EE Product: Sybase Enterprise Application Server 6.0.2 Advanced Edition
JVM Product: Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03) 64-bit
JDBC Product: iAnywhere JDBC Driver 10.0.1
Hardware: J2EE AppServer HW
# of Instances: 1
Interfaces:
Web Interface for the Dealer Domain
Web Interface for the Supplier Domain
EJB Interface for the Dealer Domain
EJB Interface for the Manufacturing Domain
EJB Interface for the Supplier Domain
Notes / Tuning Information
JVM Flags:
 -server –XX:CompileThreshold=500 –XX:+PrintCompilation –XX:+UseParallelGC
 –XX:ParallelGCThreads=4 –XX:+UseParallelOldGC –Xms5000m –Xmx5000m
 –XX:NewSize=2500m –XX:MaxPermSize=128m –verbose:gc
 –XX:+PrintGCDetails –XX:+UseLargePages

Refer to attached documents for additional configuration details
set following environment variable before starting Application Server
set DJC_USER_JVM_ARGS=-Ddjc.disableExUtil.printStack=true


Emulator SW Config
J2EE Product: Sybase Enterprise Application Server 6.0.2 Advanced Edition
JVM Product: Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03) 64-bit
Hardware: Load Driver HW
# of Instances: 1
Notes / Tuning Information
JVM Flags:
-Xms4M -Xmx512M -XX:+UseLargePages

Database SW Config
DB Product: SQLAnywhere 10.0.1 x32
Hardware: Database Server HW
# of Instances: 1
Notes / Tuning Information
DB startup command:
dbsrv10.exe -c3500m -ch3500m -gm300 -gn150 -gr120 specdb.db

Driver SW Config
JVM Product: BEA JRockit(R)5.0JDK(R27.1.0-109)(64-bit)
Hardware: Load Driver HW
# of Instances: 1
Notes / Tuning Information
-Xms4096M -Xmx4096M

org.specj.jappserver.driver.http.HttpResponseParser.class was modified in the driver.
Modification was to handle uppercase hex digits (A-F) in chunked encoding
Please refer to attached source code and updated driver jar file

J2EE AppServer HW (SUT hardware)
Hardware Vendor: Dell OS Vendor: Microsoft Inc.
Model Name: PowerEdge 2900 OS Name: Windows Server 2003 (64-bit) Standard Edition
Processor: Intel Xeon processor 5160 Filesystem: NTFS
MHz: 3000 Disks: 1x73GB
# of CPUs: 4 cores, 2 chips, 2 cores/chip Network Interface: (2) 1000BaseT Ethernet
Memory (MB): 16384 Other Hardware:
L1 Cache: 32KB(I)+32KB(D) on chip, per core # of Systems: 1
L2 Cache: 4MB on chip, shared H/W Available: Jul-2006
Other Cache: OS Available: Mar-2005
Notes / Tuning Information
Using regedit.exe modify Registery contents:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

property: MaxUserPort
type: reg_dword
value: 65534
value type: decimal

property: TcpTimedWaitDelay
type: reg_dword
value: 30
value type: decimal

Using Control Panel/System/Advanced setup:
- Processor scheduling optimized for Programs
- Memory usage optimized for Programs
- Virtual page file of 24GB

Using Local Area Connection Properties for Network Adapter set:
Maximize data throughput for network applications

Start ODBCManager using command odbcad32.exe
On User DSN page select Add button
On ODBC tab put the "DataSource name" as specdb
On Database tab put "Server Name" and "Database Name" as specdb
On Network tab Select TCP/IP and configure parameter "HOST=

To support Large Pages on Windows make following config changes
1.	select Control Panel -> Administrative Tools -> Local Security Policy
2.	select Local Policies -> User Rights Assignment
3.	double click "Lock pages in memory", add users and/or groups
4.	reboot the machine


Database Server HW (SUT hardware)
Hardware Vendor: Dell OS Vendor: Microsoft
Model Name: PowerEdge 2900 OS Name: Windows Server 2003 (64-bit) Standard Edition x64
Processor: Intel Xeon processor 5160 Filesystem: NTFS
MHz: 3000 Disks: 8x146GB SAS 15K
# of CPUs: 4 cores, 2 chips, 2 cores/chip Network Interface: (2) 1000 BaseT Ethernet
Memory (MB): 16384 Other Hardware:
L1 Cache: 32KB(I)+32KB(D) on chip, per core # of Systems: 1
L2 Cache: 4MB on chip, shared H/W Available: Jul-2006
Other Cache: OS Available: Mar-2005
Notes / Tuning Information
Using regedit.exe modify Registery contents:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

property: MaxUserPort
type: reg_dword
value: 65534
value type: decimal

property: TcpTimedWaitDelay
type: reg_dword
value: 30
value type: decimal

Using Control Panel/System/Advanced setup:
- Processor scheduling optimized for Programs
- Memory usage optimized for Programs
- Virtual page file of 24GB

Using Local Area Connection Properties for Network Adapter set:
Maximize data throughput for network applications

To support Large Pages on Windows make following config changes
1.	select Control Panel -> Administrative Tools -> Local Security Policy
2.	select Local Policies -> User Rights Assignment
3.	double click "Lock pages in memory", add users and/or groups
4.	reboot the machine


Load Driver HW (non-SUT hardware)
Hardware Vendor: Dell OS Vendor: Microsoft
Model Name: PowerEdge 6850 OS Name: Windows Server 2003 (64-bit) Standard Edition
Processor: Dual Core Intel Xeon 7041 (4 HW threads/chip) Filesystem: NTFS
MHz: 3072 Disks: 1x73GB
# of CPUs: 4 cores, 2 chips, 2 cores/chip Network Interface: 2x(2)1000BaseT
Memory (MB): 16384 Other Hardware:
L1 Cache: 12KB(I)+16KB(D) on chip, per core # of Systems: 1
L2 Cache: 2048KB(I+D) on chip, per core H/W Available: Feb-2005
Other Cache: OS Available: Mar-2005
Notes / Tuning Information
Using regedit.exe modify Registery contents:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

property: MaxUserPort
type: reg_dword
value: 65534
value type: decimal

property: TcpTimedWaitDelay
type: reg_dword
value: 30
value type: decimal

Using Control Panel/System/Advanced setup:
- Processor scheduling optimized for Programs
- Memory usage optimized for Programs
- Virtual page file of 24GB

Using Local Area Connection Properties for Network Adapter set:
Maximize data throughput for network applications

Start ODBCManager using command odbcad32.exe
On User DSN page select Add button
On ODBC tab put the "DataSource name" as specdb
On Database tab put "Server Name" and "Database Name" as specdb
On Network tab Select TCP/IP and configure parameter "HOST=

To support Large Pages on Windows make following config changes
1.	select Control Panel -> Administrative Tools -> Local Security Policy
2.	select Local Policies -> User Rights Assignment
3.	double click "Lock pages in memory", add users and/or groups
4.	reboot the machine


Benchmark Modifications
Schema Modifications:
  1) Additional table ref_tv table was created
     to support the use of tableVersion for "reference" table
  
  2) Column order of primary key for S_purchase table was modified to
     (pol_po_id, pol_number) to avoid table scan. This change does
     not affect the index semantics or index node storage size.
  
  3) Column order of primary key for M_bom table was modified to
     put b_line_no before b_comp_id. This would be the Sybase
      recommended schema for such an index (to avoid inefficient
     index scans for cases where you want to find the BOM rows
     for a particular b_assembly_id and b_line_no). Due to the fact
     that this table is cached in this submission, this change is 100%
     performance neutral (for the submitted results). This change does
     not affect the index semantics or index node storage size.
  
  4) Explicit "null" and "not null" indicators added where they were absent
     (as the default for Sybase ASE databases is "not null" whereas the
     DB load script assumes columns can be "null" by default).
  
     The automated tool that was used for this also reordered the columns
     effectively randomly (due to Java HashMap distribution of column names
     in the internal data structures used by the schema generation tool).
  
  5) Added two extra indexes on M_largeorder to avoid inefficient queries.
  
  6) version column added to all tables for optimistic concurrency.
  
  7) o_version column added to C_customer to support parent versioning.
  
  8) for_update column added to some tables for exclusive locking.
  
  9) Database triggers were added for versioning and cache invalidation
     (these triggers are not active when the application server accesses
     the database, they are to ensure that ad-hoc database updates from
     other applications will retain database integrity).
  
  10) Added to schema to set max_cursor_count and max_statement_count to 0
  
  Please refer to attached Schema for details.
Load Program Modifications:
  No modifications done

Benchmark Configuration Information
Isolation Requirement Info:
  For full documentation of configuration properties, see Config/docs/com.sybase.djc.ant.SetPropertiesTask.html.
  CustomerEnt
      isolationLevel is RepeatableReadWithCache
      using versionColumn for optimistic concurrency
      also using allowVerifyWithCache (this relies on database trigger)
  
  CustomerInventoryEnt
      isolationLevel is RepeatableReadWithCache
      using parentVersion and versionColumn for optimistic concurrency
  
  AssemblyEnt
      isolationLevel is ReadCommittedWithCache
      using tableVersion for optimistic concurrency
  
  BomEnt
      isolationLevel is ReadCommittedWithCache
      using tableVersion for optimistic concurrency
  
  ComponentEnt
      isolationLevel is ReadCommittedWithCache
      using tableVersion for optimistic concurrency
  
  InventoryEnt
      isolationLevel is RepeatableReadWithCache
      using versionColumn for optimistic concurrency
      also using allowVerifyWithCache (this relies on database trigger)
  
  LargeOrderEnt
      isolationLevel is ReadCommitted
  
  PartEnt
      isolationLevel is ReadCommitted
  
  WorkOrderEnt
      isolationLevel is RepeatableReadWithCache
      using versionColumn for optimistic concurrency
  
  ItemEnt
      isolationLevel is ReadCache
      using cacheTimeout for cache invalidation
  
  OrderEnt
      isolationLevel is RepeatableReadWithCache
      using parentVersion and versionColumn for optimistic concurrency
      also using allowVerifyWithCache (this relies on database trigger)
  
  OrderLineEnt
      isolationLevel is RepeatableReadWithCache
      using parentVersion and versionColumn for optimistic concurrency
  
  POEnt
      isolationLevel is RepeatableReadWithCache
      using versionColumn for optimistic concurrency
  
  POLineEnt
      isolationLevel is RepeatableReadWithCache
      using versionColumn for optimistic concurrency
  
  SComponentEnt
      isolationLevel is RepeatableReadWithCache
      using versionColumn for optimistic concurrency
      also using allowVerifyWithCache (this relies on database trigger)
  
  SupplierCompEnt
      isolationLevel is ReadCommittedWithCache
      using tableVersion for optimistic concurrency
  
  SupplierEnt
      isolationLevel is ReadCommittedWithCache
      using tableVersion for optimistic concurrency
  
  SequenceEnt
      isolationLevel is RepeatableRead
      using selectWithUpdateLock for pessimistic lock
  
  PartEnt
      isolationLevel is ReadCommitted
      using tableVersion for optimistic concurrency
Durability Requirement Info:
  Database Server Hardware is configured as Dual Raid array and redo logs are duplicated on on both raid array disks.
  J2EE Application Server does not have any such requirement (JMS messages are stored in the database)
Storage Requirement Info:
  A 60 minute run at Injection rate of 420
  increased Storage by 1105.63 MB.
  Extrapolating for 24 hours we need
  26535 MB. System is configured with
  584GB of hard drive.
Argument Passing Semantics:
  Sybase Enterprise Application Server 6.0.2 uses Pass-by-value as required by the EJB Specifications

Bill of Materials

Supplier    Description                                   Product #         Qty
--------  -------------------------------------------   ----------------    ---
Sybase      Enterprise Application Server v6.0.2          60872              1
            Enterprise Support:
            3 Years 24x7 Support with Response time of
            less then 30 minutes
iAnywhere   SQLAnywhere 10.0.1                            19861              1
            Enterprise Support:
            3 Years 24x7 Support with Response time of
            less then 30 minutes
Dell        Dual Core Xeon Processor 5160 4MB Cache,      222-3395           2 
            3.00GHz, 1333MHz FSB, PE 2900
Dell        Dual Core Xeon 2nd Processor 5160,            311-6232           2
            4MB Cache, 3.00GHz 1333MHz FSB, PE 2900 
Dell        16GB 533MHz (8x2GB), Dual Ranked DIMMs        311-5735           2
Dell        Broadcom TCP/IP Offload EngineNot Enabled     430-1765           2
Dell        146GB, SAS, 3.5-inch 15K RPM Hard Drive       341-3031           8
Dell        73GB, SAS, 3.5-inch 15K RPM Hard Drive        341-3029           1
Dell        PERC 5/i, Integrated Controller Card          341-3018           2
Dell        Intel PRO 1000PT Cu, Dual PortPCIe, NIC       430-0959           2
Dell        6X DVD-ROM for PowerEdge 2900                 313-4312           2
Dell        Bezel for Rack Configuration PE 2900          313-3914           2
Dell        Electronic Documentation and                  310-7402           2
            OpenManage CD Kit, PE2900
Dell        Integrated SAS/SATA RAID                      341-3000           1
            10 PERC 5/i Integrated
Dell        73GB, SAS, 3.5-inch 15K RPM Hard Drive        341-3029           1
Dell        Integrated SAS/SATA RAID 1 PERC 5/i           341-2998           1
            Integrated
Dell        Rack Chassis with Sliding Rapid/Versa         310-7488           2
            Rails, Universal for PowerEdge 2900
Dell        GOLD Enterprise Support:                      960-9252           2
            7x24 Escalation Manager, 
            Hw/Sw Tech Phone Support, 
            Enterprise Command Center, 3Yr 
Dell        GOLD Enterprise Support:                      970-4770           2
            4 Hour 7x24 Onsite Service with
            Emergency Dispatch, Init  YR
Dell        Dell Hardware Warranty Plus Onsite            984-1467           2
            Service Initial YR
Dell        GOLD Enterprise Support:                      960-9002           2
            4 Hour 7x24 Onsite Service with 
            Emergency Dispatch, 2YR Ext
Dell        SHIPPING AND HANDLING,                        009-4364           2
            WORKSTATIONS,OPTIPLEX,
            LATITUDEand SERVERS
Dell        Redundant Power Supply with Y-Cord            310-7405           2
            for PowerEdge 2900
Dell        Dell Hardware Warranty, Extended 3 YR         984-1469           1
Microsoft   Windows Server 2003 Standard Edition          P73-01418          2
            (64-bit), With 3 years Software 
            Assurance included



Other Benchmark Information
  This submission uses Xerces implementation 2.8.0 which is provided with Sybase Enterprise Application Server 6.0.2

General Notes
The errors in the driver log files were those that are
normally generated by this benchmark, optimistic concurrency rollback,
and communication failures

SQLAnywhere is configured to run checkpoints to ensure
that no updates remained unflushed longer then allowed time.
Enterprise Application Server is configured to cache data into memory.
Triggers are provided from DB to reflect any change of data on the DB.
Cache size is configured using configuration files. The configuration
files are attached with the results

Errors in loline.err and plannedline.err and emulator.err
due to first read on a newly opened socket sometimes (under
high load) returning -1, even though the server hasn't
closed the socket. Also on client, socket write errors and
connections reset by peer due to server's first read on newly
opened socket failing (resulting in server closing the socket
because it thinks the client has gone). Our best explanation
of this is the JVM or Windows OS being unable to handle the
occasional new socket connection within some time period when
the server is particularly heavily loaded (during ramp-up
in particular).

Errors in dealer.err due to optimistic concurrency failure.
(transaction rolled back as a result of version conflict).
Some transaction rollbacks can result in NullPointerExceptions
in the driver, due to it not expecting the rollbacks.


For questions about this result, please contact the submitter: Sybase Inc.
For other inquiries, please contact webmaster@spec.org

Copyright © 2004 Standard Performance Evaluation Corporation

First published at SPEC.org on 18-Jul-2007