Bug 780492 (SOA-2923)

Summary: ODBC access to teiid does not scale concurrent connections
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: Pavel Macik <pmacik>
Component: EDSAssignee: Van Halbert <vhalbert>
Status: CLOSED WONTFIX QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.1.0.CR1CC: vhalbert
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-2923
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-10-07 08:38:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Pavel Macik 2011-02-16 17:13:55 UTC
project_key: SOA

To reproduce:

1.) unzip eds-qs.zip into ${SOA-P}/jboss-as/samples/quickstarts/ directory
2.) copy/move ${EDS-QS}/build.properties-example to ${EDS-QS}/build.properties
3.) the QS deploys a VDB with 2 Oracle10g datasources (you can configure (via build.properties) both to the same DB instance)
4.) copy ${EDS-QS}/lib/ojdbc14.jar to ${SOA-P}/server/${profile}/lib directory (Oracle JDBC driver)
5.) configure ${SOA-P}/server/${profile}/conf/props/teiid-security-users.properties:
   insert ${teiid-user}=${teiid-password} line (with particular teiid user and password values)
6.) configure ${SOA-P}/server/${profile}/deploy/teiid/teiid-jboss-beans.xml:
   RuntimeEngineDeployer->maxThreads=256
   JdbcSocketConfiguration->maxSocketThreads=256
   OdbcSocketConfiguration->maxSocketThreads=256
5.) start the server up
6.) using JDBC with following configuration send following SQL:

ODBC driver installed according to https://docspace.corp.redhat.com/docs/DOC-56222.
To access teiid use JDK's JDBC-ODBC bridge.

JDBC:
- URL: jdbc:odbc:DRIVER={PostgreSQL64};DATABASE=perf;SERVER=${soa-p bind address};PORT=35432;Uid=${teiid-user};Pwd=${teiid-password}
- driver: sun.jdbc.odbc.JdbcOdbcDriver
- username/password: none

SQL:
select * from perf.long.persons where person_id < 2000

Running with 1, 5, 50 and 200 concurrent connections the query processing speed is as follows:

1:   5.28 qps
5:   5.23 qps
50:  5.25 qps
200: 5.21 qps

Comment 1 Van Halbert 2011-02-16 18:57:12 UTC
The problem with using the JDBC-ODBC bridge is, it does not support concurrent access from different threads. The JDBC-ODBC Bridge uses synchronized method.


Comment 3 Van Halbert 2011-02-24 19:23:11 UTC
Labels: Added: ODBC