资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Maximum Application Availability with Oracle Database 12c,Kuassi Mensah Director 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 Oracles 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 SQLRecoverableException,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,Get Logical TX ID,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,Application Continuity In Action,Call 1,Application,Call 2,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,Restrictions When Does Replay Not Occur?,Program Agenda,Problems to Solve New Concepts Transaction Guard Application Continuity Application Design Considerations,Application Assessment,Side Effects,When Replay is enabled, some calls may be repeated. Apps may need to use disableReplay() API to prevent this: Autonomous transactions UTL_HTTP , UTL_URL UTL_FILE, UTL_FILE_TRANSFER - files operations UTL_SMPT, UTL_TCP, UTL_MAIL - sending messages DBMS_PIPE, RPCs - to external sources DBMS_ALERT - email or other notifications,Configure JDBC Replay Driver Set replay data source in property file datasource=oracle.jdbc.replay.OracleDataSourceImpl Enable Application Continuity on Service Set FAILOVER_TYPE = TRANSACTION Review settings for: REPLAY_INITIATION_TIMEOUT = 1800 FAILOVER_DELAY = 3 seconds FAILOVER_RETRIES = 60 retries SESSION_STATE_CONSISTENCY = DYNAMIC COMMIT_OUTCOME = TRUE,Configuration,GRANT KEEP DATE TIME | KEEP SYSGUID to USER REVOKE KEEP DATE TIME | KEEP SYSGUIDfrom USER GRANT KEEP SEQ
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号