Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion...

30
Reality Check: Converting Oracle Applications to DB2 Session Number 2250 Serge Rielau, IBM Architect for Oracle Application Compatibilty [email protected]

Transcript of Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion...

Page 1: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

Reality Check:Converting Oracle

Applications to DB2Session Number 2250

Serge Rielau, IBMArchitect for

Oracle Application [email protected]

Page 2: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

2

Please Note:

IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion.

Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision.

The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.

Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.

Page 3: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

3

Agenda● Motivation

● Compatibility Primer

● Traction

● Experience

● Lessons

● Outlook

Page 4: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

4

Why migrate to DB2?

Provide value for money

Page 5: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

5

Why migrate to DB2?

Provide world class support

Page 6: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

6

Why migrate to DB2?

Treat partners well

Page 7: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

7

Application compatibility, vitalsOracle DB2

Concurrency Control Native support Oracle SQL dialect Native supportPL/SQL Native supportPL/SQL Packages Native supportBuilt-in package library Native supportOracle JDBC extensions Native supportOCI Native support (db2ci)Oracle Forms e.g. Wonderworks FusionPaaSSQL*Plus Scripts Native support (clpplus)RAC DB2 pureScale

Changes are the exception. Not the rule.

Page 8: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

8

• Syntax toleration Where no semantic conflicts exist

• Add infrastructureEliminate impedance mismatch

• Compatibility modesOvercome clashes between DB2 and other SQL dialects

• Near out of the box compatibility for your app– Client side– Server side

This is not an emulation!

Page 9: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

9

• Source level debugging and profiling

• Built-in

• Proven

Native PL/SQL support in DB2

PL/SQL executes at the same speed as SQL PL in DB2

DB2 Server

SQL PLCompiler

SQL Unified Runtime Engine

Debugger

Profiler

Data StudioEditor

Database

PL/SQLCompiler

Page 10: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

10

Steps of MigrationPOCAssessment Database

ConversionApplicationConversion Testing

AutoFix MEET Estimator

CAQ

• AutoFix Parse application code and replace unknown SQL API syntax by proper DB2 SQL API syntax. We use standard pattern based replacement of known repetitive code snippets

• MEET Analyzes SQL code for its compatibility with DB2 residing inside the database or within other programming languages

• Conversion Assessment Questionnaire (CAQ) Creation of electronic form which will prepare the collected information by clients for the estimation process

• Estimator calculates the conversion efforts based on MEET and CAQ findings

PackageVisualizer

• Package Visualizer depicts dependencies between PL/SQL objects to identify the right scope for a POC

IDMT

• IDMT Automatically deploys database structure and data from other vendor’s databases to DB2

Database conversion workbench

CoversionProject

Timeline

Optim Data Studio

AdditionalOracle

Packages

Page 11: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

11

Data Movement Tool – Drag, Drop, Patch

Page 12: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

IBM Confidential 12

Traction• The Clients have the choice, have spoken

• … and are getting bolder– Started off increasing DB2 participation incrementally – More and more requesting RFQ for “all-in” deals– often expand out from SAP/DB2 win

• Potash, Canada ● France Telecom, France● Faith Industries, Italy ● Colgate, USA● Wu Han Metro, China ● Indian Bank/TCS, India● Ministry Environmental Protection, China ● China Mobile, China● China Minsheng Bank, China ● TOTVS, Brazil● Canadian Blood Services (#1371) ● First Data Corp, USA● J. P. Morgan Chase, USA (Keynote) ● Subex, India (#3597)

Page 13: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

13

Deeper dive into one customer

• Packaged application in the “Travel Reservation” space– Server Oracle 10gR2

– Client API: OCI

– Programming language: Delphi

– 25MB of PL/SQL

– Expectation “One Source” outcome.

– Plan to deploy as SaaS

Page 14: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

14

DB2 9.7 MEET Report

Benefits• Rapid assessment of

application• Early confirmation of

compatibility• Lists details and source code

line number for exceptions

96.8% of statements immediately transferable to IBM DB2

● Less than 5% objects with issues● 6500 lines to investigate

Page 15: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

15

MEET DB2 Peeling the Onion

• Top 3 responsible for 89% of issues!

Feature Description Description #BOOLEAN IN ROW BOOLEAN field cannot be part of a record definition. 4103PRAGMA Some PRAGMA directives are not supported. 1600XMLDOM XMLDOM functionality is not supported. 244NESTED PROGRAMS Nested procedure and function definitions are not supported. 175UTL_RAW UTL_RAW package is not supported. 153COLLECTION OBJECTS Only Associative arrays are supported when declared in

packages.78

V$ VIEWS V$* or V_$* VIEWS are not supported. 74DBLINKS DbLinks syntax is not supported. 46NOWAIT NOWAIT functionality is not supported. 46DBMS_SQL changes Some DBMS_SQL procedures have different names in DB2. 36VARCHAR2 LIMIT EXCEEDED The varchar2 size for the DB2 should be limited to 32672. 33Misc (Everything else) 155

Page 16: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

16

MEET DB2 Top 3 Analysis

• Do not allow BOOLEAN types row attributes• Need to map to CHAR(1) or SMALLINT• Direct support provided in 9.7.5 (Oct 2011)

• DB2 supports similar concept (READ/MODIFIES SQL DATA)

• This is a defensive compiler option– Can be commented out without semantic impact

• An AS-IS version of XMLDOm is available upon request.

61%

24%

3%

Page 17: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

17

Application Compatibility Development Process

• Focus

– Customer driven

– Aggressive

– Continuous

• Balance

– Performance

– Road blocks

– Simplification

– Reach

Cost Compatibility

MEET

Development Plan

Develop

Dep

loy

Ana

lyze

MEETReports

Database

Page 18: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

18

Application Compatibility over Time

• Data is based on MEET DB2 reports in the database

– Actual number of reports run is unknown

• Compatibility is improved

– but improved MEET DB2 catches more problems

– More and more complex applications

• Most recent IBM led Proof of Concepts already use DB2 9.7.5

9.7.0 9.7.1 9.7.2 9.7.3 9.7.4 9.7.5 Vnext0

102030405060708090

100

% LOC unchangedNumber of reports

300

0

60

120

180

240

Page 19: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

19

38 (of 220) Applications analyzed

● Range of industries, solutions, countries

● Various sizes1006 to 114,502 Lines of Code

● Significant sample size:2,048,941 LOC total

● 83% - 99.9% of LOCimmediately transferable to DB2

MEET DB2 FP4 statistics

0102030405060708090100

Page 20: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

20

Average effort across large enterprise clients and ISVs

What impacts migration time

• Oracle Forms• Partition

handling• AQ• Pro*C

OR features 3rd party

dependencies• Replication• Text search• OCCI

ComplexMedium

• DBMS_STATS• PHP/PERL• Java• OCI

Easy

Determining Factors● Quantities of issues listed below ● Critical path● Team skills ● Dependencies of code

% DB2 9.7 Historic ReductionEasy 50 1PW-1PM 1PM-6PM

75%Medium 35 1PM-1PY 6PM-4PYComplex 15 >1PY >4PY

Page 21: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

21

Top 10 issues found in aggregate 1. DBMS_APPLICATION Package not provided2. Nested routines Pull out to package or global3. DBLINK usage Maps to federation4. DBMS_SQL Package exists, but small adjustments needed5. NUMBER precision NUMBER(38) → NUMBER(31)6. VARCHAR2 length VARCHAR2(32767) → VARCHAR2(32672)7. SYSTIMESTAMP Typically CURRENT TIMESTAMP works well8. Unique on NULL columns Often domain is not null or map index9. EXIT/GOTO in exceptions Easy rewrite

10. XMLDOM package As-is version available upon request

• Ordered by number of occurrences within and across applications

• .. but number of occurrences is a poor measure of complexity

Page 22: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

22

DB2 Development GamblesCursor Stability with CURRENTLY COMMITTED

– Simpler and faster than Statement Isolation with MVCC

– Sufficient in vast majority of cases

PL/SQL Functions– Did not expect that PL/SQL functions are that common

– PL/SQL functions share same capabilities as PL/SQL Procedures(Updates, Rollback, OUT parameters, Default, Named Args...)

Incrementally aligned capability over multiple 9.7 fixpacks

Page 23: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

23

DB2 Development Strategy

DB2

PHP

JDBC

Mart

OLTP

Pro*C

Forms

Warehouse

.Net

RAC

9.1 → 9.7 reduced Conversion effort by 90%9.7 → Vnext aim to reduce Conversion effort by 50% again

Fattening the PipeFurther simplify

conversions

Fattening the PipeFurther simplify

conversionsWidening the FunnelAccept more applications

● More APIs● *******● Forms● pureScale● *****************

Widening the FunnelAccept more applications

● More APIs● *******● Forms● pureScale● *****************

Page 24: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

24

9,7.1 OCI Extend reach ●

SUBSTRB, increase compatibility ●

INOUT UDF Parms Increase compatibility ●

Basic warehousing support Extend reach ●

Conditional Compilation ISV ●

Improve BOOLEAN, FORALL, BULK COLELCT Increase compatibility ●

9.7.2 Obfuscation ISV ●

NCHAR, NVARCHAR, NCLOB Extend reach ●

DEFAULT UDF Parameters Increase compatibility ●

9.7.3 NUMBER Performance Performance ●

Runtime “purity level” enforcement Increase compatibility ●

RATIO_TO_REPORT,RAISE_APPLICATION_ERROR Increase compatibility ●

Small LOB compare Increase compatibility ●

9.7.4 Multi action trigger, update in before triggers Increase compatibility ●

Autonomous Tx improvements Increase compatibility ●

LIKE improvements, LISTAGG Increase compatibility ●

ROW, ARRAY of ROW JDBC support Increase compatibility ●

9.7.5 Pro*C Extend Reach ●

Nested complex types Extend Reach ●

NVL2, REPLACE, SUBSTR2 Increase compatibility ●

******* ******************************************** Increase compatibility ●

***************************** Performance ●

*******... **************** Extend Reach ●

************************************* Extend Reach ●

********************** Performance ●

●Shipped●In Plan●Considered

Ongoing Focus – Customer driven

You are

here

You are

here

Page 25: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

25

Conclusion/Outlook

• DB2 compatibility with Oracle applications has rapidly matured

• Compatibility is implemented in DB2's core for native performance

• DB2 customers benefit from simplified skills transfer

• DB2 will continue to extend compatibility with Oracle applications to further drive down enablement cost.

Page 26: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

26

Related Sessions

1692 Save Money! New Tools and Their Usage to Convert From Oracle Faster1566 Migrating Large Databases with CDC3597 Powering Subex's Revenue Operations Centre with IBM DB21371 Migrating the Canadian Blood Services Data Warehouse From Oracle to

IBM DB2

1575 Coca-Cola Bottling Ongoing IBM DB2 Journey3566 FusionPaaS: Automated Migration of Oracle Forms Applications to Open

Cloud Platform on IBM DB2 & IBM WebSphere

3562 IBM DB2 Speaks Oracle: Technology Session3755 Enabling and Migrating Applications to IBM DB22706 Take Control of Oracle Licensing Costs

Page 27: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

27

Appendix• Wiki with technical and non technical resources

www.tinyurl.com/Oracle2DB2Wiki

• DB analysis tool (free for download and usage)www.tinyurl.com/MeetDB2

• DB movement tool (free for download and usage)www.tinyurl.com/Move2DB2

• Buzzwww.tinyurl.com/ServersForTruth-1www.tinyurl.com/ServersForTruth-2www.tinyurl.com/reTHINKmigration-1www.tinyurl.com/reTHINKmigration-2

Contact: [email protected]

Page 28: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

28

• On-line communities, User Groups, Technical Forums, Blogs, Social networks, and more

– Find the community that interests you…

• Information Management ibm.com/software/data/community

• Business Analytics ibm.com/software/analytics/community

• Enterprise Content Management ibm.com/software/data/content-management/usernet.html

• IBM Champions

– Recognizing individuals who have made the most outstanding contributions to Information Management, Business Analytics, and Enterprise Content Management communities

• ibm.com/champion

Communities

Page 29: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

29

Thank You!Your Feedback is Important to Us

• Access your personal session survey list and complete via SmartSite

– Your smart phone or web browser at: iodsmartsite.com

– Any SmartSite kiosk onsite

– Each completed session survey increases your chance to win an Apple iPod Touch with daily drawing sponsored by Alliance Tech

Page 30: Reality Check: Converting Oracle Applications to DB2 · Database Conversion Application Conversion Testing AutoFix MEET Estimator CAQ • AutoFix Parse application code and replace

30

Acknowledgements and Disclaimers:

© Copyright IBM Corporation 2011. All rights reserved.

– U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

IBM, the IBM logo, ibm.com, and DB2 are trademarks orb registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtmlOther company, product, or service names may be trademarks or service marks of others.

Availability. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates.

The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.

All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.