1
<Insert Picture Here> Upgrading from Oracle Application Server to Oracle WebLogic Server Frances Zhao Oracle WebLogic 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. 3
Agenda Oracle Fusion Middleware Product Upgrade Strategy Discussion of upgrade to Oracle Fusion Middleware 11 Upgrade ias/oc4j Java EE WebLogic SmartUpgrade Overview WebLogic SmartUpgrade Feature Update Upgrade Best Practice for OracleAS to WebLogic Server 10.3 Demos Q&A 4
Oracle Fusion Middleware 5
Enterprise Manager Admin and Operations WebLogic Suite and Fusion Middleware Upgrade, Migration and Interoperability Support Domain Upgrade WebLogic Domains SmartUpgrade OC4J/JEE Apps Upgrade Assistant OHS, Forms, Reports.. JDeveloper Migrator ADF, SOA, WebCenter.. WebLogic Suite WebLogic Server Java EE: Reliability, Availability, Scalability & Performance Coherence High Performance, Reliable, Scale Out for Java, C++ and.net JRockit Real Time High Performance JVM with Extreme Low Latency Jdeveloper/Eclipse Development Tools Proven to Outperform Lowest Operational Cost Best Foundation for the Oracle Portfolio 6
Upgrade Paths at a Glance 7
10g Upgrade Starting Points and Tools 11gR1 Product Oracle Discoverer, Reports, and Forms Oracle Portal Oracle IdM Oracle HTTP Server and WebCache Oracle Enterprise Content Management Oracle Business Intelligence Oracle Data Integration Oracle Business Activity Monitoring Oracle B2B Integration Starting Point Version Required 10.1.2.x 10.1.2.x or 10.1.4.x 10.1.2.x or 10.1.4.x 10.1.2.x or 10.1.3.x 10.1.3.x 10.1.3.x 10.1.3.x 10.1.3.x 10.1.2.x Upgrade Tool FMW Upgrade Assistant Oracle WebCenter and BPEL PM 10.1.3.x JDeveloper Migrator Oracle ADF Applications 10.1.2.x or 10.1.3.x Wizard OC4J Custom Java EE Apps 10.1.2.x or 10.1.3.x WebLogic SmartUpgrade 8
Oracle IDM 10g to 11gR1 Product Mapping 10g IDM Product 11gR1 Product Tool Oracle Internet Directory Oracle Internet Directory Oracle Virtual Directory Oracle Virtual Directory Upgrade Assistant Oracle Single Sign On Oracle Access Manager 9
SmartUpgrade 10
Upgrade OracleAS EE to WLS Suite Upgrade Support JEE Upgrades Upgrade Guide for Java EE WebLogic SmartUpgrade Systematic upgrade of OC4J JEE apps to WLS Advisory reports and automated generation Meta-data Repository and Environment Upgrades Upgrade Assistant automation Available for Oracle Portal, Forms, Reports, Discoverer, OHS, WebCache, OID/DIP, OVD, OIF, B2B, and BAM ADF Application Upgrades JDeveloper Migrators Available for ADF applications, Oracle SOA Suite, WebCenter Professional Services Offerings Oracle Consulting and Partners SmartUpgrade OC4J/JEE Apps Upgrade Assistant OHS, Forms, Reports.. JDeveloper Migrator ADF, SOA, WebCenter.. 11
<Insert Picture Here> Migrate Four J2EE 1.4 applications deployed to OC4J 10.1.3.x to run on Weblogic 10.3.2 Using Struts, EJB2.1. Web and EJB Layer is not collocated Migration phase 4 Weeks Customer Case Study UK Government Company Additional effort for discovery, OID 11g migration, builds automation, testing Migration estimates driven by Oracle WebLogic SmartUpgrade tool 12
<Insert Picture Here> Used SmartUpgrade on a large scale, to migrate hundreds of their OracleAS based IT systems to Weblogic Mission-critical applications External portal that services millions of users. Over 10,000 employees will be using the weblogic-based IT systems. 310 Weblogic processors Customer Case Study France Government Company 13
SmartUpgrade 14
Cover All Aspects of Custom Java EE Application Upgrade Project Planning Project Development Project Verification and Rollout Understand OC4J and WebLogic Server Conceptual Differences Upgrade Application Create Target Quality Assurance Environment Assess Required Adjustments to Administrative Processes Create Target Development Environment Upgrade Application Clients Create Target Staging and Production Environments Oracle Documentation WebLogic SmartUpgrade 15
WebLogic SmartUpgrade Design Application Artifacts JDev Project Input To JDeveloper Interface - Enhanced Findings Management Command Line Interface Generates Report - Findings - Scoping Metrics JAR, WAR, or EAR PDD Analysis Code Analysis - JSP - Java Container Config. Analysis Generates Source Directory Analysis Engine Uses WebLogic Auto Generation Container Configuration OC4J JEE Instances PDD Rules Knowledge Base Code Rules Container Config. Rules 16
WebLogic SmartUpgrade Features Reporting OC4J 10.1.3 and 10.1.2 rules Multi-application analysis Archive, Directory, and JDeveloper Projects Single instance environment analysis Rules categorization and metrics summary Multi-format reports Text, HTML, and JDev User Finding Management Ant Integration Auto Generation Web Services Applications EJB Applications Web Applications Data Source Configurations Deployment Descriptors JCA Configurations 17
WebLogic SmartUpgrade Roadmap Milestone 1 Limited Alpha Release Multi-application and single instance analysis 2 Release 1 PDD Generation, limited 3 Release 1.1 Web Services, Web App, Data Sources Availability May 2009 1-2 HY09 2HY9 4 Release 1.2 EJB, JCA, Web App, Web Services 2HY10 Shipped 18
SmartUpgrade 19
Runtime Java EE and Java SE WebLogic Server Oracle Application Server Java EE APIs Support Java EE APIs Support Java SE 6.0 Java SE 6.0 Java EE 5.0 Java EE 1.4/5.0 JSP 2.1 JSP 2.0 JSF 1.2 JSF 1.1 Servlet 2.5 Servlet 2.4/2.5 EJB 3.0 EJB 3.0 JAX-WS 2.1 JAX-RPC 1.1 JMS 1.1 JMS 1.1 JNDI 1.2 JNDI 1.2 JCA 1.5 JCA 1.5 JTA 1.1 JTA 1.01 JMX 1.2 JMX 1.2 Java EE Deployment 1.2 Java EE Deployment 1.1 Java EE Management 1.1 Java EE Management 1.0 JDBC 3.0 JDBC 3.0 20
OC4J Data Sources Oracle Application Server Standard data source connectivity Connection pooling with max, min Retry, keep alive, polling For RAC, fast connection failover capability OC4J connection pool wired to RAC cluster via Oracle Notification Service and RAC events RAC integration transparent to application OC4J Instance Data Source RAC Node 1-2 Connection Pool OC4J Group OC4J Instance Data Source RAC Node 1-2 Connection Pool Oracle Process Manager and Notification Oracle Notification Service RAC Node 1 Shared Storage RAC Node 2 Oracle Database 21
WebLogic Data Sources Standard data source connectivity Connection pooling with min, max Death detection, retry, keep alive, polling For RAC, multi data source capability An abstraction over multiple data sources for each RAC node Applications use the multi data source versus the underlying data source transparent to applications WebLogic load balances and handles RAC node failure with XA support WebLogic Domain Managed Server1 Data Source RAC Node 1 Connection Pool RAC Node 1 Node Manager WebLogic Cluster Multi Data Source Shared Storage Managed Server2 Data Source RAC Node 2 Connection Pool Oracle Notification Service RAC Node 2 Oracle Database 22
Upgrade Strategy Data Sources Native Data Source No support of native/unmanaged data sources in WebLoigc Server Create a new WebLogic JDBC Data Source Redefine as Managed Data Source, then re-run the upgrade Modify the app to programmatically instantiate a third party data source and register it in JNDI during application initialization. instantiate a third party data source and register it in JNDI during using a Oracle WebLogic Server Startup Class. Oracle RAC Integration Fast Connection Failover is not supported by current WebLogic 10.3.x releases Multi Data Source is recommended Manual Steps are needed 23
<Insert Picture Here> The customer data source migrated from 10.1.2 to 10.1.3 and then to WebLogic Server Still using 10.1.2 datasource.xml syntax Customer Case Study UK Government Company Applications inadvertently using emulated 2 phase commit rather than true 2PC XA Favour XA where > 1 resource involved to maintain distributed transactional integrity Single phase commit where single resource involved may be more performant 24
OC4J JMS Infrastructure Java Java EE Applications Oracle Enterprise Messaging Service (JMS 1.1) Oracle Containers for Java EE JMS Router JMS Connector In Memory Provider File Provider Database Provider Routing Connector Memory File Oracle AQ Pluggable JMS Providers Queue 1 WebSphereMQ Tibco Sonic SeeBeyond WebLogic 25
WebLogic JMS Message Infrastructure Java EE/ISV Apps SOA Suite Applications C,.NET Clients WebLogic Server JMS WebLogic Server File Persistence Bridging Database Persistence Oracle AQ Integration File Bridge Database AQ Queue 1 WebSphereMQ Tibco Sonic OC4J JMS 1.1 Compliant 26
Upgrade Strategy JMS JMS Server config in OC4J jms.xml, zero or one per OC4J instance One persistent file for server state and one persistent file for each destination JMS - Server Activated Check, six default connection factories Distributed destination Each of them have separate host/port, the message could be re-direct between clustered servers; Consumers and producers can only communicate with a physical member that is hosted on the same OC4J JMS migrating a distributed topic Configure a unique non-distributed topic for each JMS server with same topic name, use local JNDI names Don t cluster the WebLogic Server XA/Connection Factory, XA/QueueConnectionFactory, XA/TopicConnectionFactory Create a new Connection Factory with WLS and bound to JNDI location Tunnel attribute: HTTP tunneling for remote client access through a firewall Host/port, SSL JMS Connector and Router no migration path available 27
<Insert Picture Here> Migrate Four J2EE 1.4 applications deployed to OC4J 10.1.3.x to run on Weblogic 10.3.2 WebLogic's foreign JMS server for AQ Works as advertised! Configuration at the server level (via a JMS module) rather than in deployment descriptors XA data source recommended Customer Case Study UK Government Compary 28
Upgrade Strategy JMS Interop scenarios to WLS OC4J JMS client to WLS destination Support basic JMS access upgrade with local transaction. No MDB 3.0, no XA, no Java2, SSO and subject propagation WLS JMS client to OC4J destination Support basic JMS access using OC4J-JMS running within WLS via MDB 2.1, MDB 3.0, JMS Bridge and Foreign JMS Server Support XA with CMT, BMT No SSL (not supported in OC4J JMS provider) No SSO and subject propagation OC4J JMS client to WLS destination via Generic JMS Resource Adapter Simple enqueues and dequeues with local txns No SSO and subject propagation No XA (WLS JMS client does not support foreign TMs) OC4J MDB to WLS destinations via Generic JMS Resource Adapter EJB 2.0 and 3.0 style MDBs with local transactions. No SSO and subject propagation No XA (WLS JMS client doesnot support foreign TMs) 29
Upgrade Strategy - EJB OC4J Version CMP Provider Migration Target 9.0.3, 9.0.4 Native (Orion) WLS CMP 10.1.2 Native (Orion) WLS CMP Notes Not supported by SmartUpgrade 10.1.2 is supported by SmartUpgrade 10.1.3 Native (Orion) WLS CMP Supported by SmartUpgrade TopLink EJB 2.1 TopLink JPA TopLink POJO-ORM TopLink BMP Same XML mapping file or JPA annotations and XML Customer must migrate application logic Same XML mapping file or JPA annotations and XML Customer must migrate application logic Same XML mapping file Minor Entity Bean changes with no application code changes TopLink CMP Not supported by SmartUpgrade 30
Upgrade Strategy JNDI OC4J models each deployed application as a separate context; WLS models it s JNDI context as a global context possible namespace collision when upgrade to WLS from OC4J using the Global JNDI feature in OC4J should not experience any problems Java client using ApplicationClientInitialContextFactory Not supported in WLS Customers will need to modify the code to run in a full app client container OC4J allows launching application clients within a running server, no upgrade path 31
Upgrade Strategy RMI/JNDI Interop scenarios to WLS OC4J Server remote connection to OC4J and WLS, Configure a remote JNDI context to use the WLS JNDI implementation. Set flag in OC4J s server.xml config file in order to support having the multiple JNDI implementations in the same VM. (<environmentnaming-url-factory-enabled="true" />) OC4J Remote client making remote connections to OC4J and WLS, Config a remote JNDI context to use the WLS JNDI implementation. Set flag in JNDI environment properties for OC4J JNDI context, allows both JNDI implementations to co-exist in the same VM instance.(env.put(context.provider_url,"protocol://remote_host: port/app ) Upgrade Limitations No transaction propagation No security Context propagation (security subjects/identities cannot be shared across OC4J and WLS). 32
Administrative Operations (JMX) Oracle Application Server Transaction Management Java Clients Java EE Applications Spring Ships OC4J TX Integration Transaction Coordinator Transaction Recovery Manager Global Transaction Local Transactions Transaction Interoperability Protocol Event Notification (JMX) Recoverable Last Resource Commit Transaction Manager (JTA) Oracle Containers for Java EE Logging (Presume Nothing Presume Abort) Tx Log (File or DB) DB Resource Manager (Global, Local Tx) 3 rd Party (JMS, DB ) Resource Manager (Global, Local Tx ) Other OC4J Instances (Global, Local & Tx Propagation) 33
Administrative Operations (JMX) WebLogic Transaction Management Java Clients Java EE Applications SCA Applications Spring Ships WLS TX Integration Transaction Coordinator Transaction Recovery Manager Global Transaction Local Transactions Transaction HA Service/Server Migration Inter Domain Transactions Server Interposed Transaction Manager WebLogic Transaction Service (JTA/JTS) WebLogic Server Logging Last Resource Transaction Tx Log (Shared Storage) DB Resource Manager (Global, Local Tx) 3 rd Party (JMS, DB ) Resource Manager (Global, Local Tx ) 3 rd Party (Vitria BW ) Transaction Manager (JTS Tx Interoperability ) Other WLS Instances (Global, Local & Tx Propagation) 34
OC4J Web Services Infrastructure Web Services Management ASControl HTTP SOAP HTTP REST Web Services Development With JDeveloper Service Infrastructure (SCA) WS- Security WS- Reliability Agent Auditing Logging JAX-RPC Declarative QoS - Web Services Interoperability Infrastructure (WS-*) Attachment (MTOM/SwA) Web Services Metadata WSIF Oracle Containers for Java EE JAX-B Data Binding Web Services Java Programming Model Java EE JAX-R 35
WebLogic Web Services Infrastructure Web Services Management & Web Services Manager HTTP SOAP HTTP REST JMS SOAP Web Services Development With JDeveloper & Eclipse WS- Security SAML WS- Reliable Messaging Conversational Web Services Buffered Web Services Asynchronous Web Services Declarative QoS - Web Services Interoperability Infrastructure (WS-*) Built In JAX-WS JAX-RPC Attachment (MTOM/SwA) XML Catalog WSIF Web Services Java Programming Model Java EE WebLogic Server JAX-B Data Binding JAX-R 36
SmartUpgrade Web Services Migration Pojo based web services, including Bottom-up and Top-down EJB based web services EJB2, EJB21, EJB30 Stateful Webservices SOAP Handlers SOAP Attachments WS- Security WSS-UNT MTOM Stub-based web service clients 37
SmartUpgrade 38
Demo 39
Q & A 40
<Insert Picture Here> Upgrading from Oracle Application Server to Oracle WebLogic Server Frances Zhao Oracle WebLogic Product Management