Friday, October 8, 2010

Converting DVMs from Oracle SOA Suite 10g to 11g

DVMs (Domain Value Maps) in Oracle SOA Suite 10g take the following format:
<?xml version = '1.0' encoding = 'UTF-8'?>
<dvm name="Country_Code" isNew="true">
  <description>Maps country codes</description>
  <columns>
    <column name="shortname"/>
    <column name="longname"/>
  </columns>
  <rows>
    <row>
      <cell>US</cell>
      <cell>United States</cell>
    </row>
  </rows>
</dvm>
The same DVM in Oracle Fusion Middleware 11g looks as follows:
<?xml version = '1.0' encoding = 'UTF-8'?>
<dvm name="Country_Code" xmlns="http://xmlns.oracle.com/dvm">
  <description>Maps country codes</description>
  <columns>
    <column name="shortname"/>
    <column name="longname"/>
  </columns>
  <rows>
    <row>
      <cell>US</cell>
      <cell>United States</cell>
    </row>
  </rows>
</dvm>
There are several approaches to migrating your Oracle SOA Suite 10g DVMs to Oracle Fusion Middleware 11g, two of which are described below.

Approach #1 - Automated migration, using Oracle's utilities

This approach is ideal if you want to migrate all your 10g DVMs as a composite DVM that Oracle defaults to XrefDvmFiles10g_rev1.0.

1. Log on to your Oracle SOA Suite 10g server, and set your environment.

2. Navigate to the appropriate directory:
cd $ORACLE_HOME/integration/esb/bin
3. Run the export.sh script to export the entire ESB metadata:
./export.sh metadata10g.zip
4. The output should be similar to the following:
Setting Protocol = http
Sep 14, 2010 9:42:26 AM oracle.tip.esb.lifecycle.HttpHandler logInfo
INFO: Exporting metadata from the server [host=oradev,port=7777,user=oc4jadmin] to file "/u01/app/oracle/product/OracleAS_1/integration/esb/bin/metadata10g.zip"
Sep 14, 2010 9:44:13 AM oracle.tip.esb.lifecycle.HttpHandler main
INFO: Export completed successfully!!!
5. Copy the metadata10g.zip file to your Oracle Fusion Middleware 11g server.

6. Log on to your Oracle Fusion Middleware 11g server.

7. Set your environment. For example:
export OFM_HOME=/u01/app/oracle/middleware/home_11g
export ORACLE_HOME=$OFM_HOME/Oracle_SOA1
export JAVA_HOME=$OFM_HOME/jdk160_18
export PATH=$OFM_HOME/modules/org.apache.ant_1.7.1/bin:$JAVA_HOME/bin:/usr/local/bin:$ORACLE_HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin:.
8. Navigate to the appropriate directory:
cd $ORACLE_HOME/bin
9. Run the provided ant script to convert the 10g metadata repository export:
ant -f ant-sca-upgrade.xml upgrade-xrefdvm -Dsource=/tmp/metadata10g.zip -Dtarget=/tmp
10. The output should be similar to the following:
Buildfile: ant-sca-upgrade.xml

upgrade-xrefdvm:
[echo] Upgrading XRef and DVM files...
[upgrade] Sep 9, 2010 1:05:57 AM oracle.viewgen.plugin.xrefdvm.XRefDVMMetadataUpgrader main
[upgrade] INFO: UPGBPEL-02024: Source Zip File: "/tmp/metadata10g.zip"
[upgrade] Sep 9, 2010 1:05:58 AM oracle.viewgen.plugin.xrefdvm.XRefDVMMetadataUpgrader main
[upgrade] INFO: UPGBPEL-02025: Target Dir for Jarfile : "/tmp"
[upgrade] Extracting: auxiliary.zip
[upgrade] Extracting: dvm/COUNTRY95CODE.xml
[upgrade] Sep 9, 2010 1:06:00 AM oracle.viewgen.plugin.xrefdvm.XRefDVMMetadataUpgrader migrateToNewFormatXRef
[upgrade] INFO: UPGBPEL-02027: No "XREF" files found in source zip file.
[upgrade] The upgrade log is written to /u01/app/middleware/home_11g/Oracle_SOA1/upgrade/logs/xrefdvm-2010-09-09-01-05-57AM.log
[upgrade] Sep 9, 2010 1:06:15 AM oracle.viewgen.plugin.xrefdvm.XRefDVMMetadataUpgrader addToProject
[upgrade] INFO: UPGBPEL-02026: Sucessfully Completed Upgrade. The Jar file(SOA Archive) : "sca_XrefDvmFiles10g_rev1.0.jar" has been written to the target directory

BUILD SUCCESSFUL
Total time: 1 minute 12 seconds
11. The sca_XrefDvmFiles10g_rev1.0.jar file now has all your converted DVMs, ready for import.

12. In a future blog post, we'll describe how to easily deploy this to the server.

Approach #2 - Manual migration, provides better degree of control

This approach is ideal if you want to control whether you want to lay out your new DVM paths and whether you want to deploy them as composite or shared DVMs.

1. Add the ESB slide (which is an http link) to your Windows Network Places on your desktop.
Example of slide URL: http://oradev:7777/esb/slide/
2. Navigate to the ~/dvm subfolder (through Network Places), and manually copy all DVMs to your desktop.

3. Edit all DVMs and replace the strings in each file as shown:
OLD:  isNew="null"
NEW: xmlns="http://xmlns.oracle.com/dvm"

OLD:  isNew="true"
NEW: xmlns="http://xmlns.oracle.com/dvm"
4. Rename the file extension of all the DVMs from .xml to .dvm

5. Remove underscores from the DVM file names.

6. In a future blog, we'll describe how to use these DVM files in your project, how best to organize them, and how to deploy them.

No comments: