Upload
ruteshm
View
228
Download
0
Embed Size (px)
Citation preview
7/28/2019 Presentation 110408103330 Phpapp01
1/55
Migrate to Oracle WebLogic Server 11g
Lukasz Romaszewski
ISV Migration Consultant
Oracle
7/28/2019 Presentation 110408103330 Phpapp01
2/55
ISV Migration Center Team
Who we Are ISV Migration Center Team is a team of senior technical consultantsbased in Eastern and Central Europe and represents Oracle's technical investment
for partners.
Mission Statement Enable partners to rapidly and successfully adopt andimplement Oracle latest technology
What do we Offer Whether you are selling Oracle technology, building business
solutions, including hosted Internet solutions or providing system integration andimplementation 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 asone2one 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
http://www.oracle.com/partners/en/most-popular-resources/027930http://www.oracle.com/partners/en/most-popular-resources/027930http://www.oracle.com/partners/en/most-popular-resources/0279307/28/2019 Presentation 110408103330 Phpapp01
3/55
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
7/28/2019 Presentation 110408103330 Phpapp01
4/55
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
7/28/2019 Presentation 110408103330 Phpapp01
5/55
Oracle Fusion Middleware
Application Server, TP Monitor, Java VM, Grid
7/28/2019 Presentation 110408103330 Phpapp01
6/55
Oracle Fusion MiddlewareRuns on the WebLogic Suite
Cost, Power,Hardware Efficient
Risk-free Scale-upand 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
EnterpriseManag
er
AdminandOperations
D
evelopmentTools
Jdeveloper/Eclipse
Java EE/ISVApps
SOA
Suite
WebCenterSuite
Content
ManagementSuite
Identity
ManagementSuite
Business
IntelligenceSuite
7/28/2019 Presentation 110408103330 Phpapp01
7/557
WebLogic ServerJava 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, ProductiveDevelopment Tools
Open Source CertifiedJava 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.1EJB 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
7/28/2019 Presentation 110408103330 Phpapp01
8/55
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
Connection
Pooling
Persistence
InfrastructureTransactions
Protocol
Handling
SecurityWorkload
Management
IdentityManagement
Suite
BusinessIntelligence
Suite
ContentManagement
Suite
SOASuite
WebCenterSuite
Java EE/ISVApps
7/28/2019 Presentation 110408103330 Phpapp01
9/55
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 JMSspecification
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 andforward 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
7/28/2019 Presentation 110408103330 Phpapp01
10/55
Running on the Worlds FastestJava 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 ofSeptember 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
SPECjbb2005bops
Sun JVM
JRockit JVM
Response times (DC1)
0
10
20
30
40
5060
70
80
90
100
110
120
130
140
0 200 400 600 800 1000 1200 1400
Time (s)
Responsetime(ms)
JRockit Sun
http://wws.spec.org/http://wws.spec.org/http://wws.spec.org/7/28/2019 Presentation 110408103330 Phpapp01
11/55
With Near Zero Application Pause TimesJRockit Real Time
Guaranteed maximumresponse times
Java EE applicationsconsistently under 100mspause times
Java SE tuned can be single-digit ms pause times
Deterministic QoS underheavy 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 msPause
7/28/2019 Presentation 110408103330 Phpapp01
12/55
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
7/28/2019 Presentation 110408103330 Phpapp01
13/55
WebLogic Server Diagnostics
WebLogic DiagnosticsFramework
Built into the server
Real time diagnostisics foradministrators
Generate diagnostics dumps whenthresholds exceeded
Rich client-side UI (JFC/Swing)
JRockit Mission Control JVM diagnostics for JRockit JVM
Targeted at production environmentsfor developers
Application Diagnostics for
Java Diagnostics for non-JRockit JVMs
Targeted at production environmentsfor developers and administrators
7/28/2019 Presentation 110408103330 Phpapp01
14/55
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 loadbalancing
Ensures that data capacity scales
with processing capacity
Data Services
MainframesDatabases
EnterpriseApplications
Real Time Clients
Web services
OracleCoherenceData Grid
Web services
7/28/2019 Presentation 110408103330 Phpapp01
15/55
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
7/28/2019 Presentation 110408103330 Phpapp01
16/55
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
7/28/2019 Presentation 110408103330 Phpapp01
17/55
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...
7/28/2019 Presentation 110408103330 Phpapp01
18/55
Oracle WebLogic Server 11g Topology
Admin Server
Managed Servers
config.xml
Admin Console
7/28/2019 Presentation 110408103330 Phpapp01
19/55
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
7/28/2019 Presentation 110408103330 Phpapp01
20/55
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
7/28/2019 Presentation 110408103330 Phpapp01
21/55
Oracle Strategy for custom Java EE
Applications
Comprehensive Documentation
OC4J to WLS Upgrade White PaperAvailable 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
http://ias.us.oracle.com/pls/portal/url/ITEM/63F4C02186F611D5E044080020E8C187http://ias.us.oracle.com/pls/portal/url/ITEM/63F4C02186F611D5E044080020E8C1877/28/2019 Presentation 110408103330 Phpapp01
22/55
OC4J Features available in WebLogicJava Required Files
Security Diagnostics MDS TopLink ADF JMX FramewrkJava 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
7/28/2019 Presentation 110408103330 Phpapp01
23/55
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
7/28/2019 Presentation 110408103330 Phpapp01
24/55
OC4J vs WebLogic - Topology Comparison
7/28/2019 Presentation 110408103330 Phpapp01
25/55
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
7/28/2019 Presentation 110408103330 Phpapp01
26/55
Application Artifacts
WebLogic SmartUpgrade Design
Container
Configuration
JDeveloper
Interface
- EnhancedFindings
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
7/28/2019 Presentation 110408103330 Phpapp01
27/55
WebLogic SmartUpgrade MethodologyApplication Level
1. (Re-) Runfindings report
2. Compare metricsagainst previous runs
track to project benchmarks
3. Analyzefindings
4. Archive
findings forcomparison afterchanges applied
6. Take action onnon-automated
findings andupdate project
5 Accept findingscode/PDD/script
generation
Iterative
upgrademethodology
managedby upgrade
metrics
OC4J Application& OC4J Container
Configuration
WebLogic Applicationand WebLogicConfiguration
7/28/2019 Presentation 110408103330 Phpapp01
28/55
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 targetedknowledge
7/28/2019 Presentation 110408103330 Phpapp01
29/55
SmartUpgrade JDeveloper Interface
7/28/2019 Presentation 110408103330 Phpapp01
30/55
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
7/28/2019 Presentation 110408103330 Phpapp01
31/55
SmartUpgrade Demo
7/28/2019 Presentation 110408103330 Phpapp01
32/55
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
7/28/2019 Presentation 110408103330 Phpapp01
33/55
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 deploymentdescriptors: weblogic.xml
weblogic-ejb-jar.xml
weblogic-ra.xml weblogic-application.xml
Try deploying your application...
7/28/2019 Presentation 110408103330 Phpapp01
34/55
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
7/28/2019 Presentation 110408103330 Phpapp01
35/55
Migrating JEE application to WebLogicthings to remember
Always make EAR archive you gain muchmore 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 yourapplication classes (solves most of the
ClassNotFoundException problems)
7/28/2019 Presentation 110408103330 Phpapp01
36/55
Migrating JEE application to WebLogicthings to remember cont.
If you encounter NullPointerException relatedto
getServletContext().getRealPath()
set the following option: .war
WEB-INF
weblogic.xml
true
7/28/2019 Presentation 110408103330 Phpapp01
37/55
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
7/28/2019 Presentation 110408103330 Phpapp01
38/55
How Java loads classes
Is Classloaded?
Ask ParentClassloader
Check myclasspath
7/28/2019 Presentation 110408103330 Phpapp01
39/55
Class Loading in JEE
Applications e.g. .ears 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
7/28/2019 Presentation 110408103330 Phpapp01
40/55
Example of classloader hierarchy in
WebLogic Server
System Class Loader
WebLogic Server
App1
myejb1.jarmyeb2.jar
mywar1.war
mywar2.war
App2
myejb3.jar
mywar3.wa
r
7/28/2019 Presentation 110408103330 Phpapp01
41/55
Module
Loader
Loads classes in EARsand 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 systemif they match the filter-list
Module
Loader
Module
Loader...
Application
(EAR application & EAR library classes )
Filtering(filter-list barrier)
7/28/2019 Presentation 110408103330 Phpapp01
42/55
JSPJSPJSP
WEB-INF/classes/**.class,
WEB-INF/lib/*.jar
MANIFEST Classpath
Each J SP is loaded in itsown classloader to enable
refresh
All tag files are loaded intheir own classloader toenable refresh
Web Application
(webapp & webapp-library classes )
Tag
(tag files WEB-INF/tags/*.tag etc.)
7/28/2019 Presentation 110408103330 Phpapp01
43/55
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 aframework already bundled with the server
(e.g. log4j, spring, xml parsers etc)
7/28/2019 Presentation 110408103330 Phpapp01
44/55
Filtering Classloader - configuration
.ear META-INF
application.xml
weblogic-application.xml:
org.apache.log4j.*
org.aspectj.*
org.springframework.*
org.apache.commons.*
antlr.*
7/28/2019 Presentation 110408103330 Phpapp01
45/55
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
7/28/2019 Presentation 110408103330 Phpapp01
46/55
Now for Some Complexity
Shared Libraries used extensively by OracleApplications
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
7/28/2019 Presentation 110408103330 Phpapp01
47/55
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
7/28/2019 Presentation 110408103330 Phpapp01
48/55
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
7/28/2019 Presentation 110408103330 Phpapp01
49/55
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.jarfoo.jsp
bar.jsp
a.jsp
b.html
webapp-1.war
Deploym
entview
Runti
meview
J lib i
7/28/2019 Presentation 110408103330 Phpapp01
50/55
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.
Sh d lib fi ti
7/28/2019 Presentation 110408103330 Phpapp01
51/55
Shared library - configuration
.ear META-INF
application.xml
weblogic-application.xml:
...
adf.oracle.domain
11.1.1.2
...
A d
7/28/2019 Presentation 110408103330 Phpapp01
52/55
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
O l FMW U d T lJDeveloper Upgrade
7/28/2019 Presentation 110408103330 Phpapp01
53/55
Oracle FMW Upgrade Tools
Upgrade Assistant forSOA, IDM, Forms,Reports, Discoverer,and Portal EnvironmentUpgrades
WebLogic SmartUpgradefor Upgrade of OC4J Java
Applications andEnvironments toWebLogic Server
JDeveloper UpgradeWizards forSOA, WebCenter, and ADFApplication Upgrades
7/28/2019 Presentation 110408103330 Phpapp01
54/55
Questions & Answers
7/28/2019 Presentation 110408103330 Phpapp01
55/55
Please dont hesitate to contact me
or Ruxandra Radulescu for any questions
regarding migration projects
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]