この章では、以前のリリースからOracle RTDリリース3.0にアップグレードする方法に関連する問題について説明します。この章の内容は次のとおりです。
この項の内容は次のとおりです。
第2.1.4項「Decision Studioにおいて、以前のバージョンのワークスペースからアップグレードされたインライン・サービス・プロジェクトでビルド・エラーが発生する」
第2.1.5項「Decision Studioでコンパイラのコンプライアンス・レベルが不正なために発生するビルド・エラー」
Oracle RTDリリース3.0では、一部のJavaクラス、インタフェース、定数およびメソッドは、明示的にパブリックとして指定されています。これらのパブリックAPIは、Oracle RTDのインストール先であるRTD_HOME/docs/api/に存在する場合があります。インライン・サービスをアップグレードできるようにするには、すべてのカスタムJavaコードではこれらのAPIを使用する必要があります。
ロギングAPIパッケージの変更
ロギング・メソッドは、com.sigmadynamics.sdo.SDOBaseからcom.sigmadynamics.sdo.support.Logに移動されています。古いログ・メソッドを使用したカスタム・コードでは、import com.sigmadynamics.sdo.support.Log;またはimport static com.sigmadynamics.sdo.support.Log.*;のインポート文を追加することで、それらが新しい場所で見つかる場合があります。
パブリックAPIにおける非推奨
com.sigmadynamics.server.SDDataSource.getInstance(String)では、com.sigmadynamics.server.SDDataSource.getDataSource(String)を使用する必要があります。新しいメソッドでは、具体的な実装ではなくインタフェースを返します。
以前のリリースのOracle RTDでは、クライアント統合リソース・バンドルのsdclient.jarは、RTD_HOME/client/Client Examples/Java Client ExampleにあるJavaクライアント用サンプルでパッケージ化されていました。
Oracle RTD 3.0では、このリソースはsdclient.jarからrtd-ds-client.jarに名前が変更されました。このファイルは、依存する他のjarファイルとともにRTD_HOME/client/DecisionServiceにあります。
以前のリリースのOracle RTD環境をリリース3.0にアップグレードすると、以前にデプロイされたインライン・サービスのサーバー側アップグレードが失敗し、Oracle RTDサーバーのログに次のようなエラーが出力される場合があります。
2009-03-03 14:58:55,312 ERROR [AppFactory] Error loading Inline Service DC_Demo in deployment state Development. Will mark it as invalid in the database. java.lang.NoClassDefFoundError: com/sigmadynamics/sdo/interfaces/client/SingletonInterface at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427
サーバーのインライン・サービスの無効な状態に対処するには、次の手順に従います。
Oracle RTD 3.0 Decision Studioのインライン・サービスをクリーンアップし、再コンパイルします。
インライン・サービスを再デプロイします。
リリース3.0のDecision Studioを使用して、以前のバージョンのOracle RTDインライン・サービスをワークスペースから開くと、メタデータをリリース3.0のスキーマにアップグレードすることを要求するプロンプトが自動的に表示されます。ワークスペースのインライン・サービスのDecision Studio側アップグレードが失敗し、「Problems」ビューに次のようなビルドの問題が表示される場合があります。
com.sigmadynamics.sdo.base.ChoiceModel cannot be resolved to a type GENAllOffersCG.java DC_Demo221/gensrc/com/sigmadynamics/sdo line 231 com.sigmadynamics.sdo.base.ChoiceModel cannot be resolved to a type GENAllOffersCGChoice.java DC_Demo221/gensrc/com/sigmadynamics/sdo line 154 ChoiceModel cannot be resolved to a type GENAllOffersCGChoice.java DC_Demo221/gensrc/com/sigmadynamics/sdo line 200 The constructor ApplicationBase(String, int, int) is undefined GENApplication.java DC_Demo221/gensrc/com/sigmadynamics/sdo line 81 ChoiceModel cannot be resolved to a type GENApplication.java DC_Demo221/gensrc/com/sigmadynamics/sdo line 366 2 ChoiceModel cannot be resolved to a type GENApplication.java DC_Demo221/gensrc/com/sigmadynamics/sdo line
Decision Studioワークスペースのインライン・サービスの無効な状態に対処するには、RTD 3.0 Decision Studioのインライン・サービスをクリーンアップし、再コンパイルします。
Oracle RTD Decision Studio 3.0では、適切なJavaコンパイラ用コンプライアンス・レベルとして5.0のレベルを使用するインライン・サービスを指定する必要があります。Javaコンパイラ用コンプライアンス・レベルでこれより低い値がインライン・サービスに使用されると、指定されたプロジェクトにソース・レベルに関連するビルド・エラーが繰り返して発生する場合があります。たとえば、次のようなエラーです。
構文エラー: 静的インポートはソース・レベルが5.0の場合にのみ使用できます。
構文エラー: for each文はソース・レベルが5.0の場合にのみ使用できます。
構文エラー: パラメータ化型はソース・レベルが5.0の場合にのみ使用できます。
これらのビルド・エラーに対処するには、Decision Studioでインライン・サービスのJavaコンパイラのコンプライアンス・レベルを5.0に設定します。このプロパティの構成の詳細は、『Oracle Real-Time Decisionsプラットフォーム開発者ガイド』の第11.2.2項「Javaコンパイラ準拠レベルの設定」を参照してください。