Oracle® Fusion Middleware Oracle SOA Suite、WebCenter PortalおよびADFアップグレード・ガイド 11g リリース1 (11.1.1.8.0) B55926-08 |
|
![]() 前 |
![]() 次 |
この章では、Oracle SOAアプリケーションをOracle Fusion Middleware 11gにアップグレードする際に重要な追加情報について説明します。
Oracle SOA Suite、WebCenterおよびADFの各アプリケーションのアップグレード時に必要となる主なタスクは、第8章「Oracle SOA Suite、WebCenterおよびADFアプリケーションのアップグレードの概要」で説明しています。
ここでは、Oracle SOAアプリケーションのアップグレードのみに該当するタスクについて説明します。
Oracle SOA Suiteアプリケーションを11gにアップグレードする前に、外部パートナが(リモートWebサービスの形態で)稼働していて使用可能であることを確認する必要があります。
Oracle JDeveloper 11gがこれらの外部パートナにアクセスでき、Oracle BPEL Process Managerと、10gにデプロイされているOracle Enterprise Service Busの各サービスにアクセスできることが必要です。アクセスできない場合、アプリケーション内のプロジェクトを11gに正しく移行できません。
必要なWebサービスが使用可能であることを確認するには、11gへの移行前にOracle SOA Suiteアプリケーションの各プロジェクトを調査する必要があります。たとえば、各プロジェクトのOracle BPEL Process Manager構成ファイルを確認し、これらの構成ファイルから参照されているWebサービスのURIが有効で稼働していることを確認します。
Oracle JDeveloper 11gでOracle Application Server 10g Oracle SOA Suiteアプリケーションを開くと、Oracle JDeveloper移行ウィザードによって、Oracle Fusion Middleware 11gへの自動アップグレードが試行されます。
ただし、Oracle JDeveloper移行ウィザードで自動的に実行できるタスクには制限があります。移行ウィザードの使用前または使用後にOracle SOA Suiteアプリケーションで必要となる可能性のある手動タスクのタイプについては、この章の該当する項を参照してください。
最新のパッチ・セットの適用
最もよい結果を得るために、11gにアップグレードする前に、Oracle SOA Suite環境に最新のパッチ・セットを適用し、最新のOracle JDeveloper 10g リリース3 (10.1.3)を使用することをお薦めします。
Oracle JDeveloperとOracle SOA Suiteのバージョン・レベルの統一
原則として、 Oracle SOA SuiteとOracle JDeveloperは常に同時にインストールを更新して、これらのOracle製品を同じバージョンで実行するようにしてください。
Oracle JDeveloperに必要なSOAコンポジット・エディタ拡張機能がインストールされていることの確認
Oracle SOA Suiteアプリケーションを11gにアップグレードするには、Oracle JDeveloper 11gに対応するOracle SOAコンポジット・エディタ拡張機能がインストールされている必要があります。
この拡張機能がインストールされていることを確認するには、Oracle JDeveloperの「ヘルプ」メニューから「バージョン情報」を選択し、「バージョン」タブをクリックします。コンポーネントのリストに「SOAコンポジット・エディタ」
というエントリが表示されます。
「バージョン情報」ダイアログ・ボックスの「バージョン」タブにこのコンポーネントが表示されない場合は、「バージョン情報」ダイアログを閉じて、「ヘルプ」メニューから「更新の確認」を選択します。更新の確認ウィザードを使用して、最新バージョンの「SOAコンポジット・エディタ」拡張機能を検索し、インストールします。
Oracle SOA Suiteアプリケーションをアップグレードする前に、『Oracle Fusion Middleware Java EEアップグレード・ガイド』を参照してください。このガイドには、標準Java EEアプリケーションのOracle WebLogic Serverへのアップグレードに関する情報が記載されています。
アプリケーションにカスタムJavaコードが含まれている場合は、『Oracle Fusion Middleware Java EEアップグレード・ガイド』に記載されている手順と推奨事項に従ってJavaコードを確認してください。
Oracle SOA SuiteアプリケーションをOracle Fusion Middleware 11gにアップグレードする際には、次の説明を参照してください。
表9-1は、Oracle SOA Suiteアプリケーションで使用できるAPIを示しています。この表には、Oracle Application Server 10gの各APIについて、Oracle Fusion Middleware 11gにおける変更のサマリーと、各APIを使用するアプリケーションのアップグレードに関する詳細の参照先が記載されています。
表9-1 Oracle Fusion Middleware 11gにおけるOracle SOA Suite APIの変更のサマリー
10gのAPI | 11gに対するアクション | 11gのJava関連ドキュメント |
---|---|---|
Oracle Application Server Integration B2B Callouts Java API |
Oracle Fusion Middleware 11g用に更新されましたが、新しい11gバージョンは10gと下位互換性があります。 |
Oracle Fusion Middleware B2BコールアウトJava APIリファレンス |
Oracle BPEL Process Manager Workflow Services API |
Oracle Fusion Middleware 11g用に更新されましたが、新しい11gバージョンは10gと下位互換性があります。 |
Oracle Fusion Middleware Oracle SOA Suiteワークフロー・サービスJava APIリファレンス |
Oracle Business Rules Java API |
第9.4.1.1項「Oracle Business Rules用のOracle Fusion Middleware Java APIへのアップグレード」を参照してください。 |
Oracle Fusion Middleware Oracle Business RulesのJava APIリファレンス |
Oracle BPEL Process Manager Client Java API |
第9.4.1.2項「Oracle SOA Suite用のOracle Fusion Middleware Infrastructure Management Java APIへのアップグレード」を参照してください。 |
第9.4.1.2項「Oracle SOA Suite用のOracle Fusion Middleware Infrastructure Management Java APIへのアップグレード」を参照してください。 |
Oracle BPEL Process Manager Sensor API |
Oracle Fusion Middleware 11g用に更新されましたが、新しい11gバージョンは10gと下位互換性があり、新しいInfrastructure Management Java APIの一部です。 |
『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のOracle BPEL Process Managerセンサーの使用に関する項 |
次の項では、Oracle Business Rules 11gのSDKとAPIの概要を示し、Oracle Business Rules APIへのアップグレードに関する手順を説明します。
Oracle Fusion Middleware11gでは、Oracle Business RulesのSDKとAPIが大幅に改善されています。
Oracle Application Server 10gでは、開発者は、リポジトリへのアクセスとRuleSession
インスタンスの作成および使用を手動で管理する必要がありました。Oracle Fusion Middleware 11gでは、Decision Point APIとデジション関数機能により、ルールの定義と実行を容易にするインタフェースと実装が提供されます。
Oracle Business Rules 11gにアップグレードする際には、最初に『Oracle Fusion Middleware Oracle Business Rulesユーザーズ・ガイド』を参照してこれらの新機能の使用方法を確認してください。
ただし、11gでも従来と同様にOracle Business Rules SDKを使用する場合は、次の項に、Oracle Business Rules 10g SDKを11g SDKに直接変換する方法を示します。
ここで説明するすべてのクラスは、rulesdk2.jar
ファイルに格納されており、oracle.rules.sdk2
パッケージの下にあります。
Oracle Business Rules 10gでは、アプリケーション開発者は、アプリケーションの開発中にはファイルベースのリポジトリを使用し、本番環境でWebDAVリポジトリの使用に切り替えるのが一般的でした。
Oracle Business Rules 11gでは、MDSにデプロイ可能な形式にパッケージ化する前に、ルール・ディクショナリ・ファイルに直接アクセスできます。
次の例では、10gで開発モードでディクショナリにアクセスするために必要なコード(例9-1)と、11gで必要なコード(例9-2)を比較します。
一般的には、従来のようにRuleRepositoryに直接アクセスするのではなく、 Decision Point APIを使用してください。
例9-1 Oracle Business Rules 10gを使用した開発環境でのディクショナリへのアクセス
String path; // the path to the file repository Locale locale; // the desired Locale // The following code assumes that the path and locale have been set appropriately RepositoryType rt = RepositoryManager.getRegisteredRepositoryType("oracle.rules.sdk.store.jar"); RuleRepository repos = RepositoryManager.createRuleRepositoryInstance(rt); RepositoryContext rc = new RepositoryContext(); rc.setLocale(locale); rc.setProperty("oracle.rules.sdk.store.jar.path", path); repos.init(rc);
例9-2 Oracle Business Rules 11gを使用した開発環境でのディクショナリへのアクセス
protected static final String DICT_LOCATION ="C:\\scratch\\CarRental.rules"; ... RuleDictionary dict = null; Reader reader = null; try { reader = new FileReader(new File(DICT_LOCATION)); dict = RuleDictionary.readDictionary(reader, new DecisionPointDictionaryFinder(null)); List<SDKWarning> warnings = new ArrayList<SDKWarning>(); dict.update(warnings); if (warnings.size() > 0 ) { System.err.println("Validation warnings: " + warnings); } } catch (SDKException e){ System.err.println(e); } catch (FileNotFoundException e){ System.err.println(e); } catch (IOException e){ System.err.println(e); } finally { if (reader != null) { try { reader.close(); } catch (IOException ioe) {ioe.printStackTrace();} } }
Oracle Business Rules 10gでは、推奨される本番リポジトリはWebDAVでした。
Oracle Business Rules 11gでは、WebDAVはサポートされなくなり、メタデータ・サービス(MDS)が推奨リポジトリになります。また、ディクショナリの名前とバージョンは、(Javaクラスのネーミング方式と同様に)パッケージと名前に置き換えられました。
Oracle Business Rules 10gのバージョンでは、真のバージョニングは提供されませんでした。Oracle Business Rules 11gでは、バージョンを指定する方法として単に名前を変更します。たとえば、名前がfoo.bar.MyDict
、バージョンが2
の10gのディクショナリは、11gではfoo.bar
としてパッケージ化され、MyDict2
という名前が付きます。
次の例では、10gで本番モードでディクショナリにアクセスするために必要なコード(例9-3)と、11gで必要なコード(例9-4)を比較します。
例9-3 Oracle Business Rules 10gを使用した本番環境でのディクショナリへのアクセス
String url; // the URL for the WebDAV repository Locale locale; // the desired Locale // The following code assumes that the url and locale have been set appropriately RepositoryType rt = RepositoryManager.getRegisteredRepositoryType("oracle.rules.sdk.store.webdav"); RuleRepository repos = RepositoryManager.createRuleRepositoryInstance(rt); RepositoryContext rc = new RepositoryContext(); rc.setLocale(locale); rc.setProperty("oracle.rules.sdk.store.webdav.url", url); repos.init(rc); RuleDictionary dictionaryWithInitialVersion = repos.loadDictionary(dictionaryName); RuleDictionary dictionarySpecificVersion = repos.loadDictionary(dictionaryName, dictionaryVersion);
例9-4 Oracle Business Rules 11gを使用した本番環境でのディクショナリへのアクセス
import static oracle.rules.sdk2.repository.RepositoryManager.createRuleRepositoryInstance; import static oracle.rules.sdk2.repository.RepositoryManager.getRegisteredRepositoryType; import static oracle.rules.sdk2.store.mds.Keys.CONNECTION; ... private static final String DICT_PKG = "oracle.middleware.rules.demo"; private static final String DICT_NAME = "CarRental"; private static final DictionaryFQN DICT_FQN = new DictionaryFQN(DICT_PKG, DICT_NAME); ... RuleRepository repo = createRuleRepositoryInstance(getRegisteredRepositoryType(CONNECTION)); repo.init(new RepositoryContext() {{ setDictionaryFinder(new DecisionPointDictionaryFinder(null)); }}); RuleDictionary dict = repo.load(DICT_FQN);
次の例は、Oracle Business Rules 10gでRLコードを生成するために必要なコードを示しています。11gでも、このコードは同じです。
//init a rule session String rsname = "vehicleRent"; String dmrl = dict.dataModelRL(); String rsrl = dict.ruleSetRL( rsname );
WebDAVを含むOracle Business Rules 10gプロジェクトをアップグレードする場合は、Oracle Business Rules 11gへのアップグレードにJava JDKを使用することをお薦めします。JVMとしてOracle JRockitを使用している場合、アップグレード・プロセスが停止してしまいます。
Oracle SOA Suite 11gでは、Oracle SOA Suite 10gで提供されていたいくつかのAPIを置換する、新しいインフラストラクチャ管理APIが導入されています。
新しいAPIの詳細は、Oracle Fusion Middleware 11gのドキュメント・ライブラリで提供されている『Oracle Fusion Middlewareリリース・ノート』を参照してください。
カスタムJARファイル・ライブラリの参照に依存するOracle SOA Suiteアプリケーションをアップグレードする場合は、Oracle JDeveloper 11gでアプリケーションを開いてアップグレードするときに、これらの参照は自動的にアップグレードされない可能性があることに注意してください。
このため、これらの依存タイプに関してプロジェクトを確認し、アップグレード後に、Oracle JDeveloper 11gの「プロジェクト・プロパティ」ダイアログで「ライブラリとクラスパス」リンクを選択して、不足している参照を追加してください。
会社のファイアウォールの外にあるWebサービス・リソースを使用するアプリケーションをアップグレードする場合は、アップグレード・プロセスがプロキシ設定にアクセスしてアプリケーションのアップグレード中に適切な調整を行えるように、構成ファイルを変更する必要があります。
アップグレード処理中にプロキシを使用するようにOracle JDeveloper 11gを構成する手順は、次のとおりです。
JDEV_HOME
/bin
ディレクトリで、次のファイルを検索します。
ant-sca-upgrade.xml
ファイルを編集し、次の設定を変更して、アップグレードするアプリケーションのWebサービス・アドレスを解決するために必要なプロキシ・サーバーとポートを識別できるようにします。
<jvmarg value="-Dhttp.proxySet=true"/> <jvmarg value="-Dhttp.proxyHost=PROXY_SERVER"/> <jvmarg value="-Dhttp.proxyPort=PROXY_PORT"/>
これらの設定を変更する場所は、ファイル内に2つあります。ESBプロジェクトをOracle Mediator 11gにアップグレードする場合にプロキシを設定するために使用する場所と、Oracle BPEL Process Managerプロジェクトをアップグレードする場合に使用する場所です。
Oracle JDeveloper 11gを終了してから再起動して変更を有効にし、Oracle JDeveloper 11gでアプリケーションを開いてアップグレードします。
Oracle JDeveloper 11gでアプリケーションを開いてアップグレードする場合、アプリケーションのプロジェクトに関連付けられているbuild.xml
ファイルとbuild.properties
ファイルはアップグレードされません。
このため、アップグレード後にOracle JDeveloper 11gでこれらのファイルを再作成する必要があります。
次の情報は、Oracle BPEL Process ManagerまたはOracle Enterprise Service Bus 10gのプロパティが、Oracle Service Registry (OSR)など、Universal Description, Discover and Integration (UDDI)レジストリに登録されているリモート・リソースを使用する場合に重要です。
詳細は、次の各項を参照してください。
10g リリース3 (10.1.3)のプロジェクトがOSRのserviceKeyを使用するエンドポイントURLを参照している場合は、アプリケーションをアップグレードする際に、エンドポイントURLが使用可能であることを確認する必要があります。そうでないと、アプリケーションのアップグレードは失敗します。このような失敗を回避するために、エンドポイントURLが使用可能であることを確認し、必要に応じて、bpel.xml
またはルーティング・サービスでアクセス可能な新しいURLを指し示すようにエンドポイントURLを変更してください。
Oracle Application Server 10g リリース3 (10.1.3)では、Oracle BPEL Process ManagerとOracle Enterprise Service Busのプロジェクトは、uddi
プロトコルを使用してOSRからリソース参照を取得していました。Oracle Fusion Middleware 11gでは、Oracle BPEL Process ManagerとOracle Mediatorのプロジェクトはorauddi
プロトコルを使用します。
このため、Oracle BPEL Process ManagerまたはOracle Enterprise Service Busのプロジェクトをアップグレードする前に、次のことを実行する必要があります。
サービス・レジストリを使用して登録されているサービスを変更し、Oracle Fusion Middleware 11gでサポートされる新しいバインディングを使用するようにします。
たとえば、OSRで次の手順を実行します。
Oracle Service Registryにログインします。
「検索」タブで、「ビジネス」をクリックします。
「名前の追加」をクリックして、名前別にビジネスを検索します。
検索結果で、変更するビジネスの名前をクリックします。
「ビジネスの表示」ページの左側のペインで、変更するサービスを右クリックし、コンテキスト・メニューから「バインディングの追加」を選択します。
「バインディングの追加」ページの「タイプ」ドロップダウン・メニューから「wsdlDeployment」を選択します。「アクセス・ポイント」フィールドにURLを入力します。
例:
http://machine:port/Proj_ep?WSDL/
「バインディングの追加」をクリックします。
「変更の保存」をクリックします。
Oracle JDeveloper 11gで、アプリケーションを開いてアップグレードします。
Oracle JDeveloperで、アップグレードしたプロジェクトのcomposite.xml
ファイルを編集し、リソース・パレットの「UDDIレジストリ」オプションを使用してエンドポイントURLを構成します。
UDDIレジストリの詳細は、次のURLを参照してください。
http://www.oracle.com/technology/tech/soa/uddi/index.html
Oracle JDeveloper 11gでアプリケーションを開いてアップグレードする場合、アプリケーション・プロジェクトのカスタムXPath関数は、自動的にアップグレードされません。
このため、アプリケーションをアップグレードした後、すべてのXPath関数クラスをサーバーのクラスパスにコピーし、サーバーの構成ファイルに関数を登録する必要があります。Oracle JDeveloperの移行ウィザードではサーバー情報を想定できないため、このステップは手動で行う必要があります。
詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のユーザー定義XPath拡張関数の作成に関する項を参照してください。
この項では、10gと11gで、ユーザー名とパスワードを動的に割り当てる方法を比較します。
たとえば、10gでは、国コードでドメイン値マップ(DVM)を検索し、ユーザーIDとパスワードを取得して、これをHTTP認証に動的に指定します。
11gでは、ユーザー名(javax.xml.ws.security.auth.username
)とパスワード(javax.xml.ws.security.auth.password
)を設定するか、正規化されたメッセージ・プロパティとして、既存のCSF資格証明を指すcsf-key
を設定する必要があります。これらは、ディスパッチ・リクエスト・プロパティとしてJAX-WSディスパッチ・レイヤーに渡されます。csf-key
を設定する方法は最も安全な方法です。
11gでWS-Securityを使用している場合は、メディエータでの割当てを使用してsoapヘッダーを設定できます。
注意: Oracle Web Services Manager (OWSM)では、動的ユーザーIDとパスワードはサポートされていません。 |
SOAコンポジット・アプリケーションをアップグレードする前に、アプリケーションまたはプロジェクトの名前が数字で始まらないことを確認してください。
たとえば、110.JMStoJMSHeaders
という名前の10gサンプル・アプリケーションをアップグレードしようとすると、Oracle JDeveloperではcomposite.xml
を開こうとしたときに構文検証エラーが表示されます。
この問題を回避するには、アプリケーションをアップグレードする前に、アプリケーションの名前を変更して番号を削除します。
次の各項では、Oracle SOA Suiteコマンドライン・アップグレード・ツールの使用方法について説明します。
Oracle JDeveloper 11gでのOracle SOA Suiteコマンドライン・アップグレード・ツールの使用方法
Oracle SOA Suiteコマンドライン・アップグレード・ツールを使用してHuman Workflowアプリケーションをアップグレードする場合の制限
Oracle SOA Suiteコマンドライン・アップグレード・ツールを使用したBPELプロジェクトまたはESBプロジェクトのアップグレード
Oracle SOA Suiteコマンドライン・アップグレード・ツールを使用した複数のBPELプロジェクトの単一コンポジットへの統合
Oracle SOA Suiteコマンドライン・アップグレード・ツールを使用したOracle Enterprise Service Bus (ESB)プロジェクトのアップグレード
Oracle SOA Suiteコマンドライン・アップグレード・ツールには、次の利点があります。
コマンドライン・ツールを使用して、スクリプトまたはその他のコマンドライン自動化ツールによりアプリケーションのアップグレード作業を自動化できます。
コマンドライン・ツールにより、Oracle BPEL Process ManagerのプロジェクトとOracle Enterprise Service Bus 10gのプロジェクトの両方がOracle Mediator 11gにアップグレードされます。
コマンドライン・ツールを使用して、複数のBPELプロジェクトをマージして単一コンポジットを作成できます。これは、Oracle JDeveloperの移行ウィザードでは実行できません。
JDeveloperと同じコードベースが使用されているため、SOAプロジェクト・コンテンツの処理に関する機能はJDeveloperモードとまったく同じです。
Oracle SOA Suiteコマンドライン・アップグレード・ツールは、Oracle JDeveloperの移行ウィザードと互換性があります(いくつかの制限はあります)。このため、アップグレード・プロセス全体にわたって(アップブレード、コンパイル、パッケージおよびデプロイ)コマンドライン・モードを使用することも、Oracle JDeveloperに移動することもできます。また、両方のツールを使用して機能の制限を回避することもできます。
ただし、コマンドライン・ツールでは、SOAプロジェクト・アーチファクトのみがアップグレードされることに注意してください。他のOracle JDeveloperのアーチファクト(.jpr
、.jws
ファイルなど)は無視されます。
この制限を回避するために、次の点に留意してください。
Oracle SOA Suiteコマンドライン・アップグレード・ツールは、BPELスーツケース・ディレクトリ(BPELサブディレクトリまたはBPELファイルをホストするディレクトリ)からコマンドラインで指定されたターゲット・ディレクトリにファイルをコピーします。
このコピー・アクションでは、.jpr
または.jws
ファイルはコピーされません。アップグレード後のターゲット・ディレクトリには、アップグレードされたSOAプロジェクト・コンテンツのみが格納されています。
Oracle JDeveloperでこの問題を解決するには、新しいアプリケーションまたは新しいプロジェクトを作成し、新たにアップグレードされたコンポジット・ディレクトリをプロジェクト・ディレクトリとして定義します。
Oracle SOA Suiteコマンドライン・アップグレード・ツールを使用してOracle Human Workflowプロジェクトを含むアプリケーションをアップグレードする場合は、アップグレードされたタスク・フォームごとに個別のプロジェクトが作成されることに注意してください。
この結果のプロジェクトはOracle ADFプロジェクトで、Oracle ADFはコマンドライン・デプロイメントおよびOracle JDeveloperデプロイメントをサポートしていません。このため、Oracle SOA Suiteコマンドライン・アップグレード・ツールを使用した後、アップグレードされたプロジェクトをOracle JDeveloper 11gで開いて、JDeveloperからデプロイする必要があります。
アップグレードされたプロジェクトをOracle JDeveloperで開く方法の詳細は、第9章「Oracle JDeveloper 11gでのOracle SOA Suiteコマンドライン・アップグレード・ツールの使用方法」を参照してください。
Oracle SOA Suiteコマンドライン・アップグレード・ツールの実行に必要なファイルは、Oracle JDeveloper 11gのインストール時とOracle SOA Suite 11gのインストール時に自動的にインストールされます。
Oracle SOA Suite 11gのインストール中には、必要なXMLファイルがOracle SOA SuiteのOracleホームのbinディレクトリにインストールされます。
Oracle JDeveloper 11gのインストール中には、必要なXMLファイルがOracle JDeveloperホームのbinディレクトリにインストールされます。
このディレクトリ内のこれらのファイルとApache Antを使用して、10g リリース3 (10.1.3) SOAプロジェクトを11gに移行できます。
注意: この手順では、Oracle SOA SuiteインストールのOracleホームからOracle SOA Suiteコマンドライン・アップグレード・ツールを実行していると想定しています。 このツールをOracle JDeveloperホームから実行している場合は、次の手順のORACLE_HOMEをJDEV_HOMEに置換してください。 |
Antプロジェクトを使用するには、次の手順を実行します。
Oracle SOA Suite Oracleホームへのパスとして定義されるようにORACLE_HOME環境変数を設定します。
次のスクリプトを実行して、コマンドライン・ツールで必要な他の環境変数を設定します。
UNIXシステムの場合
. ORACLE_HOME/bin/soaversion.sh
Windowsシステムの場合
ORACLE_HOME\bin\soaversion.cmd
次のようにAntプロジェクトを実行します。
ant -f ORACLE_HOME/bin/ant-sca-upgrade.xml -Dsource sourceDir -Dtarget targetDir -DappName app_name -Drevision 1.0 bpel_or_mediator_identifier
Oracle SOA Suiteコマンドライン・アップグレード・ツールを使用する例は、例9-5および例9-6を参照してください。
各コマンドライン引数の説明は、表9-2を参照してください。
アップグレードの完了後、移行されたソースを検証するSCAコンパイラ(ant-sca-compile.xml
)を実行します。
SCAアップグレードでは、どのような場合でもすべてのアーチファクトが生成されるわけではないため、SCAコンパイラによってエラーまたは警告が生成され、その修正方法が示されます。詳細については、SCAコンパイラを確認してください。
SCAコンパイラからクリーン・パスを取得した後、ant-sca-package.xml
ツールを使用してアプリケーションをパッケージ化します。
次に、ant-sca-deploy.xml
を使用してアプリケーションをデプロイできます。デプロイメントの後、サーバーでプロジェクトをテストできます。
ただし、多くの場合は、アップグレードされたプロジェクトをOracle JDeveloper 11gで開きます。ここから、アプリケーション・プロジェクトを容易に確認、検証、および必要に応じて更新できます。
詳細は、第9.4.9.2項「Oracle JDeveloper 11gでのOracle SOA Suiteコマンドライン・アップグレード・ツールの使用方法」を参照してください。
例9-5 UNIXオペレーティング・システム上のコマンドラインの例
ant -f /Disk03/Oracle/Middleware/SOA_home/bin/ant-sca-upgrade.xml -Dsource /disk03/myProjects/my_bpel_app/ -Dtarget /disk03/my11gProjects/my_bpel_app/ -Drevision 1.0 -DappName my_bpel_app bpel
例9-6 Windowsオペレーティング・システム上のコマンドラインの例
ant -f C:\Oracle\Middleware\SOA_home\bin\ant-sca-upgrade.xml
-Dsource C:\myProjects/my_bpel_app/
-Dtarget C:\my11gProjects/my_bpel_app/
-Drevision 1.0
-DappName my_bpel_app
bpel
表9-2 Oracle SOA Suiteコマンドライン・アップグレード・ツール引数のサマリー
コマンドライン引数 | 説明 |
---|---|
-Dsource |
Oracle SOA Suite 10gプロジェクト・ファイルが格納されているディレクトリの完全修飾名およびパス。 Oracle BPEL Process Managerプロジェクトの場合は、 Oracle Enterprise Service Busプロジェクトの場合は、Oracle Enterprise Service Busプロジェクト・フォルダになります。 |
-Dtarget |
アップグレードされたプロジェクト・ファイルを含むディレクトリの完全修飾名およびパス。 Oracle SOA Suiteコマンドライン・アップグレード・ツールはOracle BPEL Process Managerプロジェクト・ファイルをアップグレードし、この引数で指定されているターゲット・ディレクトリのサブディレクトリに、新しいアップグレードされたファイルを生成します。 |
-DappName |
Oracle SOA Suiteコマンドライン・アップグレード・ツールはこの値を使用して、ターゲット・ディレクトリ内にアプリケーションのサブディレクトリを作成します。その後、アップグレードされたファイルをアプリケーションのサブディレクトリにコピーします。 |
-Drevision |
リビジョン番号。デフォルト値は |
bpel_or_mediator_identifier |
次の2つの値のいずれかになります。
値を指定しないと、コマンドライン・ツールではOracle BPEL Process Managerプロジェクトをアップグレードすると想定されます。 |
Oracle SOA Suiteコマンドライン・アップグレード・ツールを実行する場合は、次の点に注意してください。
sourceDirディレクトリとtargetDirディレクトリが同じディレクトリの場合、コマンドライン・アップグレード・ツールにより移行前にディレクトリのバックアップが自動的に作成されます。アップグレードを再実行する必要がある場合は、バックアップ・ディレクトリを使用してソース・ファイルをリストアできます。バックアップ・ディレクトリは、名前に.backupという接尾辞が付いています。
sourceDirディレクトリとtargetDirディレクトリが異なる場合、移行中にsourceDir内のファイルは変更されないため、バックアップ・ディレクトリは作成されず、不要になります。
アップグレード後、次の出力ディレクトリにログが作成されます。
ORACLE_HOME/upgrade/logs
Oracle SOA Suiteコマンドライン・アップグレード・ツールを使用して、複数のBPELプロジェクトをマージして単一コンポジットを作成できます。これは、Oracle JDeveloperの移行ウィザードでは実行できません。
複数のBPELプロジェクトを単一コンポジットに組み合せるには、コマンドラインで-Dsource
プロパティの一部として複数のソース・ディレクトリを指定します。
パス・セパレータには、コロン(:)またはセミコロン(;)を使用できます。セパレータは、プラットフォームのローカル表記規則に変換されます。ガイドラインとして、二重引用符を使用して複数のソース・ディレクトリを識別すると、Antにより予期しない方法で入力が解析されるのを回避できます。
指定された最初のソース・ディレクトリは11gプロジェクトのルートとみなされ、これによりコンポジット名が決定されます。
例:
ant -f ORACLE_HOME/bin/ant-sca-upgrade.xml -Dsource "sourceDir1:sourceDir2" -Dtarget targetDir -DappName app_name -Drevision 1.0
ソース・リスト内の最初のプロジェクトはルート・プロジェクトとみなされ、そのサービスのみが コンポジット・サービスとして公開されます。マージ機能を使用する際には、各プロジェクトが関連していることが推奨されます。
プロジェクトのマージは、BPELプロジェクトに対してのみサポートされます。ESBプロジェクトを他のBPELプロジェクトまたは他のESBプロジェクトとマージすることはできません。
Oracle SOA Suiteコマンドライン・アップグレード・ツールを使用して、ESBプロジェクトをOracle Mediator 11gにアップグレードすることもできます。
ESBプロジェクトをアップグレードする場合は、第9.4.9.4項「Oracle SOA Suiteコマンドライン・アップグレード・ツールを使用したBPELまたはESBプロジェクトのアップグレード」に記載されている説明に従いますが、mediator
引数を次のように使用してください。
ant -f ORACLE_HOME/bin/ant-sca-upgrade.xml -Dsource sourceDir -Dtarget targetDir -DappName app_name -Drevision 1.0 mediator
Oracle BPEL Process Manager 10gまたはOracle Enterprise Service Bus 10gのプロジェクトでドメイン値マップ(DVM)または相互参照を使用する場合は、次の点に留意してください。
ドメイン値マップまたは相互参照へのアクセスに使用するxPath関数は、Oracle JDeveloper 11gでアプリケーションを開いてアップグレードする際に、自動的にOracle BPEL Process ManagerおよびOracle Mediator 10gにアップグレードされます。
ただし、Oracle Enterprise Service Busリポジトリに保存されているドメイン値マップと相互参照をアップグレードするには、手動でアップグレード・タスクを実行する必要があります。アップグレード・プロセスにより、ドメイン値マップがESBリポジトリからOracle Fusion Middleware 11gのメタデータ・サービス(MDS)リポジトリに移動します。
詳細は、『Oracle Fusion Middleware管理者ガイド』のMDSリポジトリの管理に関する項を参照してください。
ESBリポジトリにある10gのドメイン値マップをアップグレードするには、次のタスクを実行します。
ディレクトリをOracle Enterprise Service BusのOracleホームに変更します。
エクスポート・スクリプトを使用して、メタデータをZIPファイルにエクスポートします。
たとえば、UNIXシステムの場合は次のスクリプトを使用します。
ORACLE_HOME/export.sh metadata10g.zip
Apache Antとsca-upgrade.xml
ファイル内のupgrade-xrefdvm
ターゲットを使用して、メタデータZIPファイルでOracle SOA SuiteアーカイブJARファイルを生成します。
ディレクトリをOracle SOA Suite 11gのOracleホームに変更します。
次のコマンドを使用して、SOAアーカイブ・ファイルを生成します。このファイルは、自動的にsca_XrefDvmFiles10g_rev1.0.jar
という名前になります。
ant -f ant-sca-upgrade.xml upgrade-xrefdvm -Dsource=location_of_the_zip_file -Dtarget=location_of_the_soa_archive -Drevision 1.0
例:
ant -f ant-sca-upgrade.xml upgrade-xrefdvm -Dsource=$ORACLE_HOME/temp/upgrade/metadata10g.zip -Dtarget=$ORACLE_HOME/temp/upgrade -Drevision 1.0
Oracle JDeveloper 11gを起動して、新しいアプリケーションを作成します。
Oracle SOA Suiteアーカイブを新しいSOAプロジェクトにインポートします。
Oracle JDeveloper 11gの「ファイル」メニューから「インポート」を選択し、「SOAアーカイブをSOAプロジェクトへ」を選択します。
「SOAアーカイブからのSOAプロジェクトの作成」ダイアログ・ボックスで、左側のナビゲーション・ツリーの「JARオプション」を選択し、「参照」をクリックして、この手順で以前に作成したsca_XrefDvmFiles10g_rev1.0.jar
ファイルを検索します。
左側のナビゲーション・ツリーの「ファイル・グループ」→「プロジェクトの出力」を選択し、「アーカイブのターゲット・ディレクトリ」フィールドにXrefDvmFiles10g
と入力します。
「OK」をクリックして、XrefDvmFiles10g
という名前の新しいSOAプロジェクトを作成します。
新しいプロジェクトは、空のコンポジットと、アップグレードされたXRefおよびDVMファイルで構成されています。
XRefおよびDVMメタデータのJARファイルを作成した後、JARファイルをOracle SOAインフラストラクチャにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Application Development Framework開発者ガイド』のOracle JDeveloperにおける複数のSOAコンポジット・アプリケーションをまたいだ共有データのデプロイ方法と使用方法に関する項を参照してください。
DVMと相互参照メタデータを11gにアップグレードした後、必要であればOracle JDeveloper 11gを使用して、XrefDvmFiles10g
プロジェクトのエントリを変更できます。変更を行うたびに、同じデプロイメント・プロセスを使用して、変更内容を適切なMDSリポジトリに転送する必要があります。
OracleデータベースにOracle SOA Suite 11g相互参照(XREF)ランタイム・データがあり、Oracle SOA Suite 11gとともに使用する場合は、次の手順によりOracle SOA Suite 11gで使用するようにアップグレードできます。
この手順およびユーティリティは、Oracle Fusion Middleware 11gのXREFデータベース・スキーマ表(XREF_DATA
)が変更されたため必要です。この項で説明する手順を実行して、11gスキーマ書式に準拠するように10g XREFデータを修正します。
この手順では、10g XREFデータは1つのOracleデータベースにあり、新しいOracle Fusion Middleware 11gデータは、別のOracleデータベースにあると想定しています。このシナリオは、アウトオブプレース・データ・アップグレードと呼ばれます。
詳細は、次の各項を参照してください。
相互参照ランタイム・データをOracle SOA Suite 10gからOracle SOA Suite 11gにアップグレードする手順は、次のとおりです。
XREF 10gから11gへのデータ・アップグレード・ユーティリティを検索し、ローカル・ディレクトリに解凍します。
このユーティリティは、Oracle Fusion Middlewareのリポジトリ作成ユーティリティ(RCU)・アーカイブ・ファイルをダウンロードして解凍した場合は、次のディレクトリにあります。
RCU_HOME/rcu/integration/soainfra/sql/xref/XREF10gto11gDataUpgradeUtility.zip
SYSユーザー権限でOracle SOA Suite 11gランタイム・データが格納されているOracleデータベースにログインし、XREF 10gデータが格納されている2つ目のデータベースにアクセスするためのデータベース・リンクを作成します。
例:
CREATE PUBLIC DATABASE LINK dblink10g CONNECT TO 10g_db_user_name IDENTIFIED BY 10g_db_password USING '(description=(address=(protocol=TCP)(host=10g_db_hostname) (port=10g_db_listening_port))(connect_data=(sid=10g_db_SID)))'
前述の例では、XREFデータが格納されているデータベースへの接続に必要な情報により、イタリック体で表示されている値を置換します。
XREF 10gから11gへのデータ・アップグレード・ユーティリティを解凍したローカル・フォルダ内に作成されたディレクトリを次のサブディレクトリに変更します。
XREF10gto11gDataUpgradeUtility/scripts
テキスト・エディタを使用して次のSQLファイルを開きます。
Upgrade10gXrefTo11gXref.sql
ファイルの内容を、次のように編集します。
Upgrade10gXrefTo11gXref.sql
ファイルの次のエントリを検索して、ファイル内の[TO BE FILLED]文字列を、共有MDSデータ・ロケーションを指すoramds:
URLに変更します。
--specify the MDS_FOLDER_LOCATION where the shared xref artifacts should reside, -- 10g table name will get prefixed by this location. -- MDS_FOLDER_LOCATION varchar2(1000) := 'oramds:/abc/ABCMetaData/xref/'; MDS_FOLDER_LOCATION varchar2(1000) := '[TO BE FILLED]';
oramds:
URLプロトコルの詳細は、Oracle Fusion Middleware Oracle SOA Suite開発者ガイドのOracle JDeveloperにおける複数のSOAコンポジット・アプリケーションをまたいだ共有データのデプロイ方法と使用方法に関する項を参照してください。
必要に応じて、commitperbatch
パラメータのデフォルト値を変更します(デフォルトは2000)。
このパラメータには、移行中にバッチごとにコミットされたレコードの数を指定します。
同じディレクトリから、Oracle SOA 11g XREFをホストするOracleデータベースにXREFユーザーとしてログインし、次のように入力します。
set serverout on; @Upgrade10gXrefTo11gXref.sql
これらのコマンドによりデータはアップグレードされ、アップグレードの進捗状況がサーバー出力ログとして表示されます。
または、ログをファイルにスプールできます。
spool on;
spool path_of_local_file;
@Upgrade10gXrefTo11gXref.sql
spool off;
10g XREFデータが11gスキーマに準拠していない場合、またはアップグレード・プロセス中にエラーまたは例外が発生した場合は、破損したレコードがXREF_DATA_CORRUPTED表にコピーされます。この表には、EXCEPTION_CAUSEと呼ばれる追加の列とともに、XREF_DATAのすべての列があります。この列には、例外の理由と行番号が格納されます。
XREFデータのアップグレードが完了したら、SYSユーザーとして次のSQLコマンドを使用し、データベース・リンクを削除します。
DROP PUBLIC DATABASE LINK dblink10g;
レコードが正常に移行されていない場合、一時表XREF_DATA_CORRUPTEDおよびTEMP_UPGRADE_XREF_LOGはユーティリティで削除されず、手動でクリーン・アップする必要があります。