Saturday, May 14, 2011

SOA 10g to 11g Migration Best Practices

Oracle SOA Suite 11g was released couple of years ago and companies are using it to develop integration solutions since then. Those who have developed their integration solutions using SOA Suite 10g they have upgraded their infrastructure and code base to SOA Suite 11g or they are planning to upgrade it to 11g.

SOA Suite 11g has significant differences from SOA Suite 10g. In this post I am writing about the best practices for upgrading SOA 10g code base to SOA Suite 11g.

Pre Migration Best Practices

Ensure that 10g Projects are Up and Running on Latest SOA 10g Release

Before migrating a 10g project its better to verify that the project is up and running. If your project have dependencies on the external web services than make sure that all the external web service are up and running.

Install JDeveloper 11g:

Download latest JDeveloper 11g release and upgrade it with SOA composite editor extension.

Install latest SOA 11g Version:

Download and install latest SOA Suite 11g release (Latest SOA Suite 11g version now is 11.1.1.5 also named as SOA 11g PS4).

Start with One Business Case:

Don’t try to upgrade the complete 10g code base. Select one business case and start upgrading projects needed for the selected business case.

Configure Resources:

Configure all the resources you need to run your application on newly installed SOA 11g server (JMS Queues/Topics, DB Connection pools, Security Policies, Work Managers etc).

Use Scripts to Migrate 10g Projects:

If you are migrating just one project than using JDeveloper migration wizard is a clever choice. If you want to migrate all of your 10g projects into 11g format than using ant-sca-upgrade.xml is a better option. You can write a shell/ant script to upgrade all 10g projects leveraging ant-sca-upgrade.xml. In the next article I will provide an ant script to migrate 10g projects to 11g.

Post Migration Best Practices

Compile Migrated Projects and Fix Compilation Errors.

11g BPEL compiler is stricter than 10g. You might get compilation error for XPath functions or for XPath expressions. Check the compilation logs for errors and fix them. In 11g they changed namespace prefixes for some of the XPath functions, you need to correct the XPath function signature. For example ora:parsexml() is oraext:parsexml now. You can have a look on the 11g XPath functions definitions in <JDEVELOPER_HOME>/integration/seed/soa/configuration folder. This folder contains XPath function definitions for bpel, mediator, mapper etc.

Rearrange Artifacts Into Corresponding Folders.

For a BPEL project, JDeveloper 10g keeps all the artifacts inside bpel folder. JDeveloper 11g organizes artifacts in folders. For example it keeps .xsd files in xsd folder, .wsdl files in wsdl folder and so on. When you upgrade a 10g project to 11g project neither JDeveloper Migration Wizard nor ant-sca-upgrade.xml reorganizes the project artifacts in their corresponding folders. Copy artifacts into corresponding foder. It doesn’t make any difference in the functionality but it will make your 11g projects much cleaner and organized. Don’t forget to modify the path of xsd's, xslt's, wsdl's in the files referring these artifacts.

Create JDeveloper Applications and Projects

When you upgrade a 10g project using ant-sca-upgrade.xml script it won’t generate .jws and .jpr files in the upgraded projects. You need to create applications and projects in JDeveloper manually.

Run 11g Adapter Configuration Wizard to Verify the Adapters

Run 11g adapter configuration wizard for each adapter in an upgraded project to make sure that all the adapter configurations are correct and contains all the required properties. It will also validate the adapter connections to SOA 11g environment.

Update JCA adapter Header Variables

SOA 11g manages JCA adapter header variables in a different manner. JCA adapter header variables are invoke activity properties now. If you are using adapter header variables in SOA 10g projects you need to manually set these adapter header properties on the Properties tab of the Invoke activity dialog box. You can see all the available adapter header properties on the properties tab of the invoke activity. Recompile the modified project to ensure that everything is fine.

Create Configuration Plans for Deployment.

JDeveloper 11g migration wizard or 11g migration script doesn’t upgrade any SOA 10g deployment plan and build scripts. You need to manually create configuration plans for SOA 11g projects. Configuration plans help you to customize environment specific values (i.e. hostname, port, resource locations etc). Click here to find out how to generate and use deployment plans.

Manage Common Artifacts Using MDS

In Fusion Middleware 11g oracle introduces a new way of managing application meta data using MDS (Meta Data Service). MDS is a single unified repository to store all the shared artifacts. MDS provides a unified URL to access an artifact across all the environments. No local copies and no string replacements are required. For example, to access CommonObjects.xsd you need to use the following URL across all the environments:

oramds:/apps/common/xsd/CommonObjects.xsd

If you are accessing any file from bpel xmllib you need to change the URL to MDS URL. For example if you were accessing RuntimeFault.wsdl in 10g BPEL project using URL - http://localhost:80/orabpel/xmllib/RuntimeFault.wsdl you need to change it manually in your code to oramds:/soa/shared/bpel/RuntimeFault.wsdl.

Do the following to leverage MDS repository to efficiently manage your shared resources:
  • Remove local copies of shared artifacts (XSD, WSDL, DVM, XSLT etc)
  • Copy Common artifacts to local JDeveloper MDS repository. Local MDS repository location is <JDEVELOPER_HOME>/integration/seed
  • Change common artifacts URL to MDS URL in the files referring them.
  • Deploy shared artifacts to MDS repository on SOA 11g Server. Click here to learn to deploy and remove artifacts on MDS repository using ant.

Group Upgraded Projects in a Single Composite Application

When you upgrade SOA 10g projects to SOA 11g you will have one SOA composite per upgraded project. In other words you will have as many SCA Composites as many project you have. An SCA composite is used to assemble SCA components in logical groupings. You can not leverage SCA benefits by having many fine grained composites.

Grouping SCA components into an SCA composite is heavily depends on the business case and requirements you have but you can use the following as reference points:
  • Evaluate the functionality provided by the SCA components and then group the related SCA components in a single SCA composite.
  • Assemble a reusable component alone in an SCA composite. Expose the component as a service using service bindings so other SCA components/composites can reuse it.
  • Consider message size and complexity of the component implementation as well while assembling SCA Composite.

Create Partitions to Group Composites

In SOA 10g you have BPEL domains to logically organize BPEL processes and ESB System and Service Group for organizing ESB flows. In SOA 11g you need to create partitions to logically group SOA composites. Partitions are similar to the BPEL 10g domains. You can perform bulk life-cycle management operations on all SOA composites deployed on a partition. In SOA 11g you need to set the entire configuration (audit level, threading etc) at SOA infrastructure level so you can not perform any BPEL Engine specific configuration tasks on partitions. Click here for more details on creating and managing partitions.

Deploy SOA Projects to Server and Test

Deploy SOA composites and test them to verify that the upgraded code is working as expected.

Tune SOA 11g Infrastructure

After verifying that the migrated and modified code is working as expected you can start performance tuning SOA 11g infrastructure. Click here for details about BPEL Engine properties. I will write on SOA 11g Performance tuning best practices in my next posts.

SOA 10g to 11g migration requires lot more to do than simply executing migration script/wizard. You need to carefully plan your upgrade strategy. You can use these best practices as a reference. In next series of blog posts I will write about best practices of upgrading other SOA 10g projects (ESB, BAM, Business Rules etc).

References:

Oracle MDS White Paper

SOA Suite 11g Developer Guide

SOA Suite 11g Migration Guide

SOA Suite 11g Composite Deployment Guide


51 comments:

  1. Dharmendra -
    I have couple of questions on 11g SOA suite and adapters. Are you available to discussions?

    Can you respond to Rk8409@yahoo.com?

    ReplyDelete
  2. Hi Dharmendra,

    Great post.. I hope this will be useful for us in future :)

    Thanks,
    Bhavnesh.

    ReplyDelete
  3. Hi Dharmendra,

    I have couple of quetions about SOA 10 to SOA 11g migration.Can you please share your contact information at reenugs@gmail.com.

    Thanking you in anticipation.

    Regards,
    Reena

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Dharam,
    As a suggestion, You can add the point for Abstract WSDL reference instead of using concrete WSDL.
    btw, good work... keep it up....

    ReplyDelete
  6. Hi I am trying to compile a BPEL process in 11.1.1.5 , but it fails with xpath expressions and says some XML element is invalid as compiler error. THe same BPEL compiles fine 11.1.1.2 with same xsd. Is there anything that I can verify, there regarding the xpath expressions?

    ReplyDelete
  7. nice post.. i have a question regarding migrating esb to mediator

    but i am getting load of wsdl error and one more thing.. where can i see the log updates while migrating the code in jdeveloper 11g.

    ReplyDelete
  8. awesome post...

    Hi Dharmendra,


    As said in the post do you have an antscript to migrate multiple bpel process or esb process with ant-sca-upgrade.xml

    it would be very usefull if u would provide ... thanks in advance..my email id is saileshan007@gmail.com

    ReplyDelete
  9. awesome post...

    Hi Dharmendra,


    As said in the post do you have an antscript to migrate multiple bpel process or esb process with ant-sca-upgrade.xml

    it would be very usefull if u would provide ... thanks in advance..my email id is saileshan007@gmail.com

    ReplyDelete
  10. Admin,Your Info was very helpful.

    Oracle SOA online training by real time international experts in an easy way to learn way.

    http://hyderabadsys.com/oracle-soa-online-training/

    To know the info on Online Oracle SOA training contact below and get full info on Oracle SOA online training.

    Contact Us :

    India : +91 9030400777
    US : +1-347-606-2716
    Email: contact@Hyderabadsys.com

    ReplyDelete
  11. Hi,
    I am facing an error while creating new SOA Application in Jdeveloper in windows 7.
    Error is:" An error occrred creating the application.Check file system permissions"., and earlier created SOA App projects are also unable to open in Jdeveloper, please reply me how to rectify these errors.
    Thank you...

    ReplyDelete


  12. awesome Job oriented sharepoint training in Chennai is offered by our institue is mainly focused on real time and industry oriented. We provide training from beginner’s level to advanced level techniques thought by our experts.
    if you have more details visit this blog.
    SharePoint-training-in-chennai.html

    ReplyDelete
  13. This information is impressive..I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic..
    Rac Training In Chennai

    ReplyDelete
  14. GSSSB 2480 Revenue Talati Bharti Recruitment 2016

    I have visited this blog first time and i got a lot of informative data from here which is quiet helpful for me indeed.................

    ReplyDelete
  15. Latest Govt Jobs Notification 2016

    I like your site and content. thanks for sharing the information keep updating..................

    ReplyDelete
  16. Hi Dharmendra,

    We have to migrate multiple soa projects from SOA 11g to SOA 12c(12.1.3.0.0).Though JDeveloper is migrating automatically when we open ".jpr" file in "JDev12c" It is tough to open manually all the 500 composites. Can you please assist in providing ant-scripts or any other way where I can do a bulk migrate.

    Please kindly do the needful at the earliest as it is urgent!!. Appreciate your speedy response

    ReplyDelete
  17. hi,
    can any body help me to know the procedure followed by
    programmer/developer inorder to develop a project. what are
    the steps, how he/she get the SRS,technical document??how
    does he submit his wotk to TL/PM/Business Analyst?? How
    does these documents review?? how the developer starts
    coding? how does he deploy his coding in server? in which
    server he will deploy?? what are the important document a
    developer should have??? in realtime soa projects, pls provide these details my mail id janu.canna@gmail.com

    ReplyDelete
  18. You clearly explained how to migrate from oracle soa suite 11g to 12c thank you sir.The Lucidtechsystems providing quality Oracle SOA training and Oracle SOA administration training from Hyderabad.

    ReplyDelete
  19. Thanks for the info man, Helpful to know about the practical content here. I am too sharing something useful and trendy here,

    aws training in chennai with placement| aws authorized training partner in chennai|aws solution architect training in chennai

    ReplyDelete
  20. Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging.
    full stack developer training in annanagar

    full stack developer training in tambaram

    full stack developer training in velachery

    ReplyDelete
  21. I am really happy with your blog because your article is very unique and powerful for new reader.
    Click here:
    Selenium Training in Chennai | Selenium Training in Bangalore | Selenium Training in Pune | Selenium Training in Chennai

    ReplyDelete
  22. It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful to me...
    python training institute in chennai
    python training in Bangalore
    python training in pune

    ReplyDelete
  23. Wonderful bloggers like yourself who would positively reply encouraged me to be more open and engaging in commenting.So know it's helpful.
    Blueprism training in Chennai

    Blueprism training in Bangalore

    ReplyDelete
  24. I’ve got some recommendations for your blog you might be interested in hearing.
    safety course in chennai

    ReplyDelete
  25. We are a group of volunteers and starting a new initiative in a community. Your blog provided us valuable information to work on.You have done a marvellous job!

    angularjs Training in chennai
    angularjs Training in chennai

    angularjs-Training in tambaram

    angularjs-Training in sholinganallur

    angularjs-Training in velachery

    ReplyDelete
  26. Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.
    Java training in Chennai | Java training in Bangalore

    Java interview questions and answers | Core Java interview questions and answers

    ReplyDelete
  27. It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful to me...
    python interview questions and answers | python tutorialspython course institute in electronic city

    ReplyDelete
  28. Hmm, it seems like your site ate my first comment (it was extremely long) so I guess I’ll just sum it up what I had written and say, I’m thoroughly enjoying your blog. I as well as an aspiring blog writer, but I’m still new to the whole thing. Do you have any recommendations for newbie blog writers? I’d appreciate it.


    AWS Training in Bangalore | Amazon Web Services Training in bangalore , india

    AWS Training in pune | Amazon Web Services Training in Pune, india

    AWS Training in Chennai|Amazon Web Services Training in Chennai,India


    aws online training and certification | amazon web services online training ,india

    ReplyDelete
  29. Thank you for taking the time to provide us with your valuable information. We strive to provide our candidates with excellent care and we take your comments to heart.As always, we appreciate your confidence and trust in us
    angularjs Training in bangalore

    angularjs Training in bangalore

    angularjs Training in chennai

    automation anywhere online Training

    angularjs interview questions and answers

    ReplyDelete
  30. its really great information Thank you sir And keep it up More Post.

    natural oil
    pure herbal oil
    ayurvedic oil store in jaipur
    ayurvedic oil

    Fill the Form and Get up to 90% discount on All Products

    ReplyDelete
  31. Thanks for sharing this unique information with us. Your post is really awesome. Your blog is really helpful for me..
    organic oil
    organic oil in jaipur
    organic cold pressed oils
    ayurvedic oil store in jaipur

    ReplyDelete
  32. I am really happy with your blog because your article is very unique and powerful for new reader.

    eTechno Soft Solutions offers the industry recognized Job Oriented Training in Bangalore that combines corporate training, online training, and classroom training effectively to fulfill the educational demands of the students worldwide.

    ReplyDelete
  33. I have read your blog its very attractive and impressive. I like it your blog.Microsoft Training in Bangalore

    ReplyDelete

  34. Great post!I am actually getting ready to across this information,i am very happy to this commands.Also great blog here with all of the valuable information you have.Well done,its a great knowledge.Software Testing Training in Bangalore

    ReplyDelete
  35. Thanks for one marvelous posting! I enjoyed reading it; you are a great author. I will make sure to bookmark your blog and may come back someday. I want to encourage that you continue your great posts. sap training in bangalore

    ReplyDelete

  36. Thank you for your post. This is excellent information. It is amazing and wonderful to visit your site. Cloud Computing TrainingTraining in Bangalore

    ReplyDelete

  37. Great post!I am actually getting ready to across this information,i am very happy to this commands.Also great blog here with all of the valuable information you have.Well done,its a great knowledgez. ORACLE APPS training in bangalore

    ReplyDelete
  38. I found your blog while searching for the updates, I am happy to be here. Very useful content and also easily understandable providing.i really like this page.
    Ai & Artificial Intelligence Course in Chennai
    PHP Training in Chennai
    Ethical Hacking Course in Chennai Blue Prism Training in Chennai
    UiPath Training in Chennai

    ReplyDelete
  39. Awesome Blog!!! Thanks for sharing this data with us... oracle training in chennai

    ReplyDelete
  40. Infycle Technologies, the excellent software training institute in Chennai offers the best Big Data Training in Chennai for freshers, students, and tech professionals. Along with the Big Data training, other demanding courses such as Cyber Security, Artificial Intelligence, Oracle, Java, Hadoop, Selenium, Android, and iOS Development, Data Science will also be trained with 100% hands-on training. Once the completion of training, the students will be sent for placement interviews in the core MNC's. Dial 7504633633 to get more info and a free demo.Best Big Data Training Chennai | Infycle Technologies

    ReplyDelete
  41. Thank you ever so much for your article post. Keep writing.
    PHP Training
    RPA Training

    ReplyDelete