partner webcast - migration to weblogic server 11g
TRANSCRIPT
Migrate to Oracle WebLogic Server 11g
Lukasz Romaszewski
ISV Migration Consultant
Oracle
ISV Migration Center Team
• Who we Are ISV Migration Center Team is a team of senior technical consultants
based in Eastern and Central Europe and represents Oracle's technical investment
for partners.
• Mission Statement Enable partners to rapidly and successfully adopt and
implement Oracle latest technology
• What do we Offer Whether you are selling Oracle technology, building business
solutions, including hosted Internet solutions or providing system integration and
implementation services for Oracle technology, IMC Team can help you succeed.
• How can we assist We offer a wide range of free services for partners such as
one2one assistance, webinars, seminars and hands-on workshops.
For more information, visit the IMC website.
Contact: Ruxandra Radulescu, [email protected]
ISV Migration Center Manager, Eastern & Central Europe and CIS
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
Oracle Fusion Middleware
Application Server, TP – Monitor, Java VM, Grid
Oracle Fusion MiddlewareRuns on the WebLogic Suite
Cost, Power, Hardware Efficient
Risk-free Scale-up and Scale-out
Higher performance and reliability
Coherence EE
JRockit Real Time
WebLogic Server
Java EE: Reliability, Availability, Scalability & Performance
High Performance, Reliable, Scale Out for Java, C++ and .NET
High Performance JVM with Extreme Low Latency
WebLogic Suite
En
terp
ris
e M
an
ag
er
Ad
min
an
d O
pe
rati
on
s
De
ve
lop
me
nt T
oo
ls
Jd
eve
lop
er/E
clip
se
Java EE/ISVApps
SOA
Suite
WebCenterSuite
Content
Management
Suite
Identity
Management
Suite
Business
Intelligence
Suite
7
WebLogic Server Java EE 5.0 and Java SE 6.0
• Standards Compliant• Certified JEE 5.0 Compatible
• Latest version: JPA 2.0 & JSF 2.0 compliant
• High Performance
• Advanced Security
• Enterprise Messaging
• Web Services
• Integrated Operations & Administration
• Integrated, Productive Development Tools
• Open Source Certified√Java EE Management 1.1
√Java EE Deployment 1.2
√JMX 1.2
√JTA 1.1
√JCA 1.5
√JNDI 1.2
√JMS 1.1
√JAX-WS 2.1
√EJB 3.0
√Servlet 2.5
√JSF 1.2, 2.0
√JSP 2.1
√JDBC 4.0 √
5.0Java EE
6.0Java SE
Java Standard Support
8
WebLogic Server InfrastructureJava EE 5, Persistence, Messaging and Web Services
Middleware Administration Server
WebLogic Kernel – Reliability, Availability, Scalability, Performance
WebLogic Server
Oracle Fusion Middleware and Oracle Applications
EJBBusiness
LogicPOJO
JSF/ServletWeb 2.0
JMSMessaging
JCA
Connectivity
WebServices
ConnectionPooling
PersistenceInfrastructureTransactions
Protocol
HandlingSecurity
WorkloadManagement
IdentityManagement
Suite
BusinessIntelligence
Suite
ContentManagement
Suite
SOASuite
WebCenterSuite
Java EE/ISVApps
WebLogic JMS ExtensionsDesigned to Scale to the Most Complex SOA Integrations
• Unit of Order• Messages tagged with same Unit of Order
(UOO) are processed in order
• Stronger ordering semantics than the JMS specification
• Unit of Work• Messages are grouped with a group
identifier
• Messages at final destination become available only when entire group arrives
• Store and Forward Messaging
• Store messages on local server and forward to remote server when available
• Store and forward for clients to server and server to server
• Distributed Destinations• All queues and topics in a cluster appear
as a single logical destination to clients
• Provides high availability and scalability; parallel processing and load balancing
1 2 3 4 5 6 7 8 9
MDB 1 MDB 2 MDB 3
Messages red and grey have separate UOO
Message 3/4 not processed until 1/2 processed
Producer 2
1
3 MDB 2
MDB 1
MDB 323 1
WebLogicForward when
Target Available
WebLogic
JMS ServerJMS Server
WebLogic Cluster
JMS Server JMS Server
JMS Server JMS Server
Client
Logical
Destination
Running on the World’s Fastest
Java VM
• Complete implementation of Java
• 100% compatible with the Java
SE and ”bug compatible” with the
Sun Java implementation
• Underpins Oracle Fusion
Middleware product stack
• One-stop shop for support issues
• Optimized stack
• Architected and optimized for
server-side Java
• High Performance
• Typical benefit is ~20% over Sun
Java VM based on benchmarking
• Customer feedback & surveys
* Oracle JRockit has been used for all world record SPECjbb2005 publications since Q2 2006. Best results based on Sun, JRockit and IBM as of September 8, 2008 are (bops/bops per JVM): Sun Fire E25K (2105264/29240), SGI Altix 4700 (5180451/80945), IBM Power 595 (3435485/107359).
For full details see http://wws.spec.org. SPEC and SPECjbb2005 are trademarks of Standard Performance Evaluation Corporation.
0
50000
100000
150000
200000
250000
2P Opteron 2220 4P Opteron 885 2P Intel X5355
SP
EC
jbb
2005 b
op
s
Sun JVM
JRockit JVM
Response times (DC1)
0
10
20
30
40
50
60
70
80
90
100
110
120
130
140
0 200 400 600 800 1000 1200 1400
Time (s)R
esp
on
se t
ime (
ms)
JRockit Sun
With Near Zero Application Pause TimesJRockit Real Time
• Guaranteed maximum response times
• Java EE applications consistently under 100ms pause times
• Java SE tuned can be single-digit ms pause times
• Deterministic QoS under heavy load
• No code re-writes
• Remove weeks of tuning with simple declarative setting
• Deterministic setting
• Pause time target
Traditional Java VM – Stop the World Pauses
JRockit - < 10 ms Pause
Application Development FrameworkMVC Development Framework
• Device & Browser
Adaptation
• JSF Components
• Ajax & DHTML
• Flash
• JSF Page Flow
• JSR 227 Data Binding
• O-R Mapping
• EJB 3, JPA
Device View Controller Model
WebLogic Server Diagnostics
• WebLogic Diagnostics Framework
• Built into the server
• Real time diagnostisics for administrators
• Generate diagnostics dumps when thresholds exceeded
• Rich client-side UI (JFC/Swing)
• JRockit Mission Control• JVM diagnostics for JRockit JVM
• Targeted at production environments for developers
• Application Diagnostics for Java
• Diagnostics for non-JRockit JVMs
• Targeted at production environments for developers and administrators
Oracle Coherence Data Grid
• Provides a reliable data tier with a
single, consistent view of data
• Independent of yet integrated with
database and application server
• Enables dynamic data capacity
including fault tolerance and load
balancing
• Ensures that data capacity scales
with processing capacity
Data Services
MainframesDatabases
Enterprise Applications
Real Time Clients
Web services
Oracle CoherenceData Grid
Web services
Scaling WebLogic with CoherenceArbritrary Clients – Java, .NET, C++
• C++, .NET, Word, Excel, Visual Basic …
Coherence (Java)
Named Cache
Coherence (Java)
Named Cache
Coherence (Java)
Named Cache
Coherence (Java)
Named Cache
WebLogic Machines
WebLogic Cluster
Managed WLS
Application
Coherence Client
Managed WLS
Application
Coherence Client
App Machines
Java Applications
Java/JEE Container
Application
Coherence Client
Cache Store Cache Store Cache Store Cache Store
App Machines
Applications
.NET, C++
Application
Coherence Extend
Synchronous/AsynchronousSynchronous/Asynchronous
Coherence (Java)
Named Cache
Cluster Service
Cache Store
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
Migration To Oracle WebLogic Server 11g
• First make sure you understand the WebLogic
Server architecture and topology
• Analyze your current installation and create
target WebLogic environment (domain(s),
instances, clusters, datasources etc.)
• Migrate your application
• Deploy the application on WebLogic Server
• Test, tune, make necessary adjustments...
Oracle WebLogic Server 11g Topology
Admin Server
Managed Servers
config.xml
Admin Console
Some important facts about WebLogic
topology...
• A Weblogic Server instance is always part of a Weblogic Server
Domain (no standalone instances)
• A Weblogic Server Domain is managed, configured, and
monitored by an Administration Server
• A Weblogic Server installation can be used to configure multiple
domains
• A Weblogic Server instance always runs as a single Java VM
process
• A Weblogic Server instance by default uses only one single port
(7001) for all type of requests
• A Weblogic Server instance does not support AJP, only pure
HTTP
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
Oracle Strategy for custom Java EE
Applications
• Comprehensive Documentation
• OC4J to WLS Upgrade White Paper – Available under NDA
• Upgrade Guide for Java EE – With OFM 11gR1 release
• WebLogic SmartUpgrade
• Enables OC4J customers to systematically upgrade their
custom Java EE applications to WebLogic Server
• Professional Services Offerings
• ISV Migration Center
• Oracle Consulting
• Oracle Partners
OC4J Features available in WebLogicJava Required Files
Security Diagnostics MDS TopLink ADF JMX Framewrk…
Java Required Files
WebLogic Server/WebSphere/JBoss
Oracle Fusion Middleware and Oracle Applications
Identity
Management
Suite
Business
Intelligence
Suite
Content
Management
Suite
SOA
Suite
WebCenterSuite
Java EE/ISVApps
Understand OC4J and
WebLogic Server
Conceptual Differences
Project Planning Project Development Project Verification and
Rollout
Assess Required
Adjustments to
Administrative Processes
Upgrade Application
Create Target Development
Environment
Upgrade Application Clients
Create Target Quality
Assurance Environment
Create Target Staging and
Production Environments
Custom Java EE Application Upgrade
Oracle Documentation
WebLogic SmartUpgrade
OC4J vs WebLogic - Topology Comparison
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
Application Artifacts
WebLogic SmartUpgrade Design
Container
Configuration
JDeveloper
Interface
- Enhanced
Findings
Management
Analysis Engine
Input To
Uses
PDD
Analysis
Code
Analysis
- JSP
- Java
Container
Config.
Analysis
Generates
PDD
Rules
Code
Rules
Container
Config.
Rules
Knowledge Base
WebLogic PDDs
Generates
JDev
Project
Command
Line Interface
Report
- Findings
- Scoping Metrics
JDev
Project
JAR, WAR,
or EAR
Source
Directory
OC4J JEE
Instances
WebLogic SmartUpgrade MethodologyApplication Level
1. (Re-) Run findings report
2. Compare metrics against previous runs
track to project benchmarks
3. Analyze findings
4. Archive findings for
comparison afterchanges applied
6. Take action onnon-automated
findings andupdate project
5 Accept findingscode/PDD/script
generation
Iterativeupgrade
methodologymanaged
by upgrademetrics
OC4J Application & OC4J Container
Configuration
WebLogic Applicationand WebLogic Configuration
WebLogic SmartUpgrade Knowledge
Base - Categories
• api
– Application code is importing APIs which fall within any
of the following categories
• Public Oracle APIs
• Private Oracle APIs
• Known 3rd Party APIs
• classloading, cluster, data-source, ejb, jca, jms,
jmx, jndi, jsp, jta, rmi, security, web, web-services
– Application and OC4J instance configuration targeted
knowledge
SmartUpgrade JDeveloper Interface
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
SmartUpgrade Demo
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
Migrating JEE application to WebLogic
• Analize your application• uses EJBs, what version?
• uses JMS, MDBs?
• uses third-party libraries (e.g. Hibernate, Spring, etc.)?
• uses vendor-specific APIs (e.g. JBoss Cache)?
• Create WebLogic-specific deployment
descriptors:• weblogic.xml
• weblogic-ejb-jar.xml
• weblogic-ra.xml
• weblogic-application.xml
• Try deploying your application...
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
Migrating JEE application to WebLogicthings to remember
• Always make EAR archive – you gain much
more configuration options
• Identify any third-party libraries and package
them into the EAR archive (/lib or /APP-
INF/lib)...
• ... or deploy them as shared libraries and
reference from your application
• Set filtering classloader to isolate your
application classes (solves most of the
ClassNotFoundException problems)
Migrating JEE application to WebLogicthings to remember cont.
• If you encounter NullPointerException related
to getServletContext().getRealPath(<resource>)
set the following option:• <Web module>.war
• WEB-INF
• weblogic.xml
<container-descriptor>
<show-archived-real-path-enabled>true</show-archived-real-path-enabled>
</container-descriptor>
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
How Java loads classes
Is Class loaded?
Ask ParentClassloader
Check my classpath
Class Loading in JEE
• Applications e.g. .ear’s run each have their own Class
Loaders which are usually children of the System
Class Loaders
• Closely related to deployment architecture
• Why? Among the many reasons:
• Needed to support dynamic redeployment
• Application isolation e.g. different version of Log4J in
app1.ear and app2.ear
Example of classloader hierarchy in
WebLogic Server
System Class Loader
WebLogic Server
App1
myejb1.jar myeb2.jar
mywar1.war
mywar2.war
App2
myejb3.jar
mywar3.war
Module
Loader
Loads classes in EARs and any libraries
referenced by the EAR
lib/*.jar,
APP-INF/classes/**.class,
APP-INF/lib/*.jar
MANIFEST classpath
Does not load classes. Prevents classes from
being loaded from system if they match the filter-list
Module
Loader
Module
Loader ...
Application
(EAR application & EAR library classes )
Filtering
(filter-list barrier)
JSP JSP JSP
WEB-INF/classes/**.class,
WEB-INF/lib/*.jar
MANIFEST Classpath
Each JSP is loaded in its own classloader to enable
refresh
All tag files are loaded in their own classloader to
enable refresh
Web Application
(webapp & webapp-library classes )
Tag
(tag files – WEB-INF/tags/*.tag etc.)
Filtering Classloader
• Load classes from application first (changes
the delegation)
• Works as a barrier.
• Does not load classes itself.
• prefer-application-packages can be
configured at the application level.
• Can be used in scenarios where application
needs to use a different version of a
framework already bundled with the server
(e.g. log4j, spring, xml parsers etc)
Filtering Classloader - configuration
• <Application archive>.ear• META-INF
• application.xml
• weblogic-application.xml:
<prefer-application-packages>
<package-name>org.apache.log4j.*</package-name>
<package-name>org.aspectj.*</package-name>
<package-name>org.springframework.*</package-name>
<package-name>org.apache.commons.*</package-name>
<package-name>antlr.*</package-name>
</prefer-application-packages>
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
Now for Some Complexity…
• Shared Libraries used extensively by Oracle
Applications
• JRF, ADF, APPLCORE, etc
• Reuse Classpath definitions and jar files
• Includes a version scheme
• E.g. Log4J 1.0.4
• Applications explicitly declare a dependency on shared
libraries
• Understanding Shared Libraries is critical to avoiding
Class Loader related issues
Major Differences Between WLS and
OC4J Shared Libraries
• WLS does not offer a hierarchical deployment model
• OC4J Shared Libraries run in their OWN Class Loaders
• Reduced footprint
• Only JARs supported
• Classes in Shared Libraries resolved via search policy
• WLS Shared Libraries EXPORTS the classpath to the
importing application
• Supports .ear, .wars and .jars
• Merges Deployment Descriptors into the importing
application
• Scope is controlled by the scope of the reference
• weblogic-application.xml vs weblogic.xml
Application shared libraries
my-web-1.war
my-ejb-1.jar
my-web-3.war
App-1.ear
my-web-2.war
my-ejb-2.jar
App-2.ear
my-web-1.war
my-ejb-1.jar
App-1.ear
my-web-3.war
my-web-2.war
my-ejb-2.jar
App-2.ear
my-web-3.war
App-lib.ear
Deployment view
Runtime view
Webapp shared libraries
WEB-INF/web.xml
WEB-INF/lib/x.jar
foo.jsp
bar.jsp
webapp-1.war
WEB-INF/web.xml
WEB-INF/lib/y.jar
a.jsp
b.html
webapp-lib.war
WEB-INF/web.xml*
WEB-INF/lib/x.jar
WEB-INF/lib/y.jar
foo.jsp
bar.jsp
a.jsp
b.html
webapp-1.war
De
plo
ym
en
t vie
w
Ru
nti
me
vie
w
Jar libraries
my-web-1.war
my-ejb-1.jar
library.jar
App-1.ear
my-web-2.war
• Jar files and Jar libraries can be referenced from
applications (EAR, WAR, JAR) via MANIFEST classpath or
descriptors.
Shared library - configuration
• <Application archive>.ear• META-INF
• application.xml
• weblogic-application.xml:
...<library-ref>
<library-name>adf.oracle.domain</library-name>
<specification-version>11.1.1.2</specification-version>
</library-ref>
...
Agenda
• Introduction to the Oracle WebLogic Server 11g
• Migration Process overview
• Migrating from iAS 10g• SmartUpgrade utility introduction
• SmartUpgrade Demo
• Migrating from other JEE application servers• Understanding potential caveats
• Using WebLogic classloader mechanism to isolate application
• Shared libraries overview
• Migrating Oracle Fusion Middleware components (Forms&Reports,
ADF, SOA etc)
• Summary
• Q&A
Oracle FMW Upgrade Tools
Upgrade Assistant forSOA, IDM, Forms, Reports, Discoverer, and Portal Environment Upgrades
WebLogic SmartUpgradefor Upgrade of OC4J Java Applications and Environments to WebLogic Server
JDeveloper Upgrade Wizards forSOA, WebCenter, and ADF Application Upgrades
Questions & Answers
Please don’t hesitate to contact me
or Ruxandra Radulescu for any questions
regarding migration projects