Presentation is loading. Please wait.

Presentation is loading. Please wait.

Kuassi Mensah Rajkumar Irudayaraj Java Products Group Oracle Corporation.

Similar presentations


Presentation on theme: "Kuassi Mensah Rajkumar Irudayaraj Java Products Group Oracle Corporation."— Presentation transcript:

1

2 Kuassi Mensah Rajkumar Irudayaraj Java Products Group Oracle Corporation

3 Oracle Database 10g JDBC Best-of-Breed Drivers for Java, J2EE, Web Services and GRID

4 Agenda  Oracle Database 10g JDBC Overview  Implicit Connection Cache  Fast Connection Fail-Over

5 Agenda  Oracle Database 10g JDBC Overview Re-Architecture Groundwork Database Connectivity for Java, J2EE, Web Services and GRID Tighter Integration with the Oracle Database Feature Consistency across Type-2 and Type-4 Drivers Miscellaneous Enhancements  Implicit Connection Cache  Fast Connection Fail-Over

6 Re-Architecture Ground Work  Reduce functional gap between drivers  Faster JDBC Application Execution – Reduced Code Path – Reduced Java intermediate and Temporary Objects – Caching and Reusing – Optimized Conversion Operations Fastest JDBC Drivers, Best SPECJApp2002 results

7 Comprehensive Support for JDBC 3.0  Oracle Database 9i R2 JDBC – Transaction Savepoint – Toggling between Local and Global transactions – Reuse of PreparedStatement – JDK 1.4.x support for JDBC Clients  Oracle Database 10g JDBC – Named Parameters – DataLink URL – New Ref interface – J2EE Connector Architecture Resource Adapter – Web Rowset (JSR-114 Public Draft)

8 Database Connectivity for Web Services  Web Services Support – JDBC 3.0 Web RowSet (JSR-114 Public Draft) – Database Web Services Call-in  GRID Computing Support – Dynamic Load-balancing across RAC/GRID – Transparent Session Migration for GRID (Future)

9 JSR-114 JDBC RowSet JDBCRowSet CachedRowSet FilteredRowSet WebRowSet EJB Servlet Web Services

10 JDBC WebRowSet - Definition  An implementation of JSR-114, extends java.sql.ResultSet capabilities – Enables reading and writing result sets from/into XML format – Serializable/Distributable – Disconnected, decoupled from Data Source – Extensible to non-tabular data – Can be shipped over Internet using HTTP/XML protocols

11 JDBC WebRowSet - Example //create a resultSet to populate RowSet stmt = conn.createStatement(); rs = stmt.executeQuery("select..."); OracleWebRowSet wrs = new OracleWebRowSet(); // populate the RowSet wrs.populate(rs); // close the connection conn.close(); // RowSet still contains values... wrs.next(); Object col1 = wrs.getObject(1); // write the RowSet out as XML wrs.writeXML(out);

12 Database as Web Services Provider SOAP J2EE (Business Logic) Oracle9iAS Web Services Framework WebServiceClient Data Data Logic AQ/Streams SQL/Query SQL/DML JavaPL/SQL OracleApplicationServer 10 g JDBC Oracle Database 10 g

13 Database Connectivity for RAC/GRID  Dynamic Load-balancing across RAC/GRID – Fast Connection Fail-Over  Transparent Session Migration for GRID – Migrate Sessions across instances of the same database (Future)

14 Tighter Integration with the Oracle Database  Manageability/Ease of Use – End-to-End Tracing support – Enhanced Datum support – Easy Type-2 Driver Install  New and Enhanced Data Types – Native IEEE DOUBLE and FLOAT – INTERVAL-DAY-TO-SECOND – Enhanced VARRY – LONG-to-LOB Conversion – Unlimited LOB size

15 Feature Consistency across Type-2 and Type-4 Drivers  “Thin” Reducing the gap with “OCI” – PL/SQL Index-By table support – New Encryption algorithms: 3DES112 & 3DES168 – Direct XA: performance optimizations for XA operations – Proxy Authentication – RAC/HA support: Fast Connection Fail-Over – Starting/Stopping the Database

16 Miscellaneous  System Properties to set CHAR/NCHAR behavior  Stop shipping classes111 and zip files  NLS Repackaging

17 Agenda Oracle Database 10g JDBC Overview  Implicit Connection Cache Connection Caching: 9i R2 versus 10g Transparent Access to the Cache Connection Retrieval based on User-Defined Attributes Handling Abandoned Connections Connection Cache Manager Advanced Features  Fast Connection Fail-Over

18 Connection Caching: 9i R2 versus 10g Connection Connection Caching 9i R2 10g Transparent Cache Access No Yes Refresh Stale Connections No Yes Attributes based Conn. Retrieval No Yes Reclaim/Reuse Abandoned Conn. No Yes Heterogeneous User/Password No Yes Centralized Cache Management No Yes Connection Caching 9i R2 10g Transparent Cache Access No Yes Refresh Stale Connections No Yes Attributes based Conn. Retrieval No Yes Reclaim/Reuse Abandoned Conn. No Yes Heterogeneous User/Password No Yes Centralized Cache Management No Yes

19 Transparent Access to the Connection Cache  Standard DataSource getConnection() APIs retrieve cached Connections Example: ods.setUSer(“scott”); ods.setConnectionCachingEnabled(true); ctx.bind(“MyDS”, ods); … ds = (OracleDataSource) ctx.lookup(“MyDS”); conn.getConnection(); // transparent cache creation and access … conn.close(); // return connection to the cache … ds.close(); // finally, close cache enabled DataSource

20 Connection Attributes Support  Request connection from cache based on user-defined attributes – getConnection(java.util.Properties connAttr)  Support to associate user-defined attributes on a connection for future retrieval – applyConnectionAttributes(java.util.Properties connAttr) – close(java.util.Properties connAttr)  Get unmatched attributes on the retrieved connection – java.util.Properties getUnMatchedConnectionAttributes()

21 Connection Attributes Support… Example: // Multiple attributes may be specified connAttr.setProperty(“NLS_LANG”, “ISO-LATIN-1”); connAttr.setProperty(“TRANSACTION_ISOLATION”, “SERIALIZABLE”); … conn = getConnection(connAttr); // retrieve connection … // get UnMatched attributes from the retrieved connection // May need to initialize the required attributes that did not match java.util.Properties unMatchedAttr = conn.getUnMatchedConnectionAttributes(); … conn.close(connAttr); // close the connection

22 Abandoned Connection Timeout Support  Helps reclaim abandoned or orphaned connections checked out from the cache  Support enabled by setting AbandonedConnectionTimeout property on the cache  JDBC monitors heart beat based on activity to the database, such as stmt.execute().  Connection is reclaimed and returned to the cache, if connection is inactive for the specified period

23 Connection Cache Manager Cache Manager Oracle JDBC Driver... Session 1.1 Session n.1.... Cache# 1 Session 1.m.... Cache# n Session n.m mid-tier Node

24 Connection Cache Manager…  Centralized Connection Cache Management  Handles cache management from creation until death.  Allows dynamic cache reconfiguration.  Supports retrieval of number of checked out or available connections  Supports and manages multiple caches

25 Advanced Features  Connection Attributes support based on weights – Allows assignment of weights to attributes for selective retrieval of connections from cache.  Support for new Cache property – to assign weights to connection Attributes: java.util.Properties CacheAttributeWeights  Support for Connection Cache Callbacks – for AbandonedConnectionCallback and ReleaseConnectionCallback

26 Agenda Oracle Database 10g JDBC Overview Implicit Connection Caching  Fast Connection Fail-Over

27 Fast Connection Fail-over – Resilient connections – Rapid detection and cleanup of invalid connections in the cache – This is achieved by handling RAC Service/Host DOWN events – Load Balancing of connections for Service UP events Failed Database ConnectionsNew Database Connections Fast Connection Failover

28 Fail-over Scenario Pre Fail-over Post Fail-Over Instance#1 ERP Java/J2EE Inst 1Inst 2Inst 3Inst 4

29 Fast Connection Fail-over Processing ONS Daemon Failover Event HandlerThread Subscribe Publish Connection Cache Manager Start/Stop Connection cache objects.. Connection objects Threads process events, one per cache 2 1 3 4 5 handleEvent()

30 Fast Connection Fail-over Processing…  New DataSource property: ConnectionFailoverEnabled must be set to true  Works in conjunction with Implicit Connection Caching, to process connections efficiently  Each connection is mapped to its Instance Name and Host Name.  Processes Service UP/DOWN and Host DOWN events.  Process events one at a time – guaranteed processing.

31 Fast Connection Fail-over Processing…  One Worker thread per Connection Cache handles event processing – more efficient  First pass – Connections are marked as down first, to efficiently disable bad connections  Second pass – Cleans up connections that are marked as bad  Applications in the middle of a Transaction are thrown a SQL Exception, and the Transaction is rolled back  Service UP event initiates connections to be Load Balanced to all active RAC instances

32 Fast Connection Fail-over (FCF) vs. TAF  Connection Retries: - FCF allows retry at the Application level, whereas TAF retries occur at the OCI/Net layer. Application layer (Example: EJB Container) fully controls retries  Integrated with the Connection Cache: - Unlike TAF, FCF works in conjunction with the Implicit Connection Cache, and has complete control over connections managed by the cache  RAC Events Based: - FCF is a RAC event based mechanism. This is much more efficient than detecting failures of network calls  Load Balancing Support: - FCF supports UP event Load Balancing of connections across active RAC instances

33 JDBC Summary  Best performing JDBC drivers  Hassle- Free Install and Upgrade  Faster Development – Best Database Connectivity for Java, J2EE, Web Services and GRID  Tighter Integration with the Oracle Database  Feature Rich Implicit Connection Cache  RAC Events based Fast Connection Fail-Over  Feature consistency across type-2 and type-4 JDBC drivers – Allows the flexibility of using different flavor of JDBC drivers for development and deployment

34 More on TheServerSide.com J2EE Community  News  Articles  Design Patterns  Benchmarks  Case Studies  Free PDFs of popular books

35 A Q & Q U E S T I O N S A N S W E R S

36


Download ppt "Kuassi Mensah Rajkumar Irudayaraj Java Products Group Oracle Corporation."

Similar presentations


Ads by Google