Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Copyright,2013,Oracle and/or its affiliates.All rights reserved.,*,Maximum Application Availability with Oracle Database 12c,Kuassi MensahDirector Product Management,The following is intended to outline our general product direction.It is intended for information purposes only,and may not be incorporated into any contract.It is not a commitment to deliver any material,code,or functionality,and should not be relied upon in making purchasing decisions.The development,release,and timing of any features or functionality described for Oracle,s products remains at the sole discretion of Oracle.,My Next Session,Oracle In-Database MapReduce:When Hadoop Meets Exadata,7/25/13,12:00 13:00,Room 431,Program Agenda,Problems to Solve,New Concepts,Transaction Guard,Application Continuity,Application Design Considerations,Problems to Solve,Upon Database Outage Four Problems Confront,Applications,Hang,Errors,Outcome of In-Flight Work,Resubmission of In-Flight Work,Hang,-,Fast Application Notification(FAN),Errors Handling?,Not formalized,In-Flight Work?,Lost!,Resubmission of In-Flight Work?,N/A!,Current Situation,Program Agenda,Problems to Solve,New Concepts,Transaction Guard,Application Continuity,Application Design Considerations,Recoverable Error,Formalized,OracleException.IsRecoverable,property,Applications No longer need to maintain own list of error codes (e.g.,ora-1033,ora-1034,ora-xxx),JDBC throws,S,QLRecoverableException,Database Request,Unit of Work,PoolDataSource pds=GetPoolDataSource();,Connection conn=getConnection(pds);,PreparedStatement pstmt=,SQL,PL/SQL,local calls,RPC,mit();,conn.close();,Request Begins,Request Body,Usually ends with,COMMIT,Request Ends,Program Agenda,Problems to Solve,New Concepts,Transaction Guard,Application Continuity,Application Design Considerations,Transaction Guard,Tool that supports known outcome for every transaction,Without Transaction Guard,retry can cause logical corruption,Used by Application Continuity,Can be used independently of Application Continuity,4.Enforce Outcome,Work,Request,2.DB,Calls,12c ORACLE Database,3.,Errors,4.Reliable Commit Outcome,Transaction Guard Typical Usage,Upon database instance crash,FAN aborts dead session,Application gets an error,Pool removes orphan connection from pool,If“,recoverable error”,then,Get last LTXID from dead session,Obtain new database session,Get transaction status,Transaction Guard In Action,getConnection(),Txn.Commit();,get Last LTXID,Commit outcome?,COMMIT/ROLLBACK,start transaction,assign LTXID,COMMIT,?,Return&Preserve COMMIT OUTCOME,Client/Mid-tier,Database,Time,Recoverable Error,COMMIT,Get Logical TX ID,SQL,PL/SQL,RPC,Results,TG in,Action,On Service,COMMIT_OUTCOME,Values TRUE and FALSE,Default FALSE,Applies to new sessions,RETENTION_TIMEOUT,Units seconds,Default 24 hours(86400),Maximum value 30 days(2592000),Transaction Guard,Configuration,Transaction Guard in Oracle database 12c,JDBC-thin,ODP.NET,OCI,OCCI,Commit Models,Local TXN,Auto-commit,Commit on Success,Commit embedded in PL/SQL,DDL,DCL,Parallel DDL,Remote,Distributed,Exclusions,XA,R/W DBLinks from Active Data Guard or Read Only,Program Agenda,Problems to Solve,New Concepts,Transaction Guard,Application Continuity,Design Considerations,Application Continuity,Mask Database Outage When Successful,Replays in-flight work on,recoverable errors,Masks many hardware,software,network,storage errors and outages when successful,Improves end user experience,5.Response,Work,Request,2.DB,Calls,12c ORACLE Database,4.Replay,3.Errors,Phases in Application Continuity,1-Capture,2-Reconnect,3-Replay,Demarcates database request,Holds original calls with binds&validation,Manages queues,Checks request has replay enabled,Handles timeouts,Creates a new connection,Validates target database,Uses Transaction Guard to enforce last,commit,Replays held calls,Continues replay,if user visible results match,based on validations,Continues request,Application Continuity In Action,Call 1,Application,Proxy 1,Proxy 2,RAC Database,Instance1,Instance2,Instance3,Call 2,Connection,Replay Context,Oracle JDBC Driver,DEMO,Solution Coverage,Application Continuity for Java,Client,JDBC-Thin driver,UCP,WebLogic Server,Database,SQL,PL/SQL,RPC,Select,ALTER SESSION,DML,DDL,COMMIT/ROLLBACK/SAVEPOINT,Transaction models:Local,Parallel,Remote,Distributed,Mutable function support,Hardware acceleration on current Intel&SPARC chips,Exclusions,Global,Request,Target Database,Do not use default database service,Excludes XA,For Java,deprecated concrete classes,Restricted calls,Alter System,Alter Database,Not supported for Active Data Guard with read/write database links,Does not support:,Logical Standby,Golden Gate,Restrictions,When Does Replay Not Occur?,Normal Runtime,Reconnect,Replay,Any call in same request,after,successful commit in dynamic mode,(default),a r,estricted call,disableReplay API,Error is not recoverable,Reconnection