Oracle Application Server リリース・ノート 10g リリース3(10.1.3.1.0)for AIX 5L Based Systems (64-bit) B40032-04 |
|
戻る |
次へ |
この章では、Oracle TopLink(TopLink)に関する問題について説明します。内容は次のとおりです。
この項では、一般的な問題とその対処方法について説明します。内容は次のとおりです。
この項の内容は次のとおりです。
TopLinkでは、SQL Server v2005で誤った外部結合が生成されます。生成された外部結合の構文は、このデータベースのこれ以前のバージョンでは正しいものです。この問題に対処するには、データベースの互換性を再構成してください(詳細は、SQL Serverのドキュメントを参照してください)。あるいは、カスタムのTopLinkデータベース・プラットフォームを使用することもできます。
作業ユニットがJava Transaction API(JTA)と同期化されている場合は、作業ユニットを解放すると例外がスローされます。現行のトランザクションで変更内容の保持が必要ない場合は、JTAトランザクションをロールバックする必要があります。
コンテナ境界トランザクションの場合は、次のEJBセッション・コンテキストでsetRollbackOnly()
をコールしてください。
@Stateless public class MySessionBean{ @Resource SessionContext sc; . public void someMethod() { ... sc.setRollbackOnly(); } }
Bean境界トランザクションの場合は、次のEJBセッション・コンテキストで得られるUserTransactionでrollback()
をコールしてください。
Stateless TransactionManagement(TransactionManagementType.BEAN) public class MySessionBean implements SomeInterface { . @Resource essionContext sc; . public void someMethod() { sc.getUserTransaction().begin(); ... sc.getUserTransaction().rollback(); } }
ReportQueryを使用して計算値を返す場合、結果の変換には列のデータ型が使用されます。そのため、マップされた属性に返す値に平均、分散、標準偏差を使用すると、値はマップされた属性の型に変換され、生じた切捨てによって精度が損なわれます。
この問題に対処するには、属性の問合せキーのかわりにフィールドを使用してください。次に例を示します。
属性の問合せキーを使用し、値に切捨てが生じる場合
rq.addAverage("salary");
切捨てが生じないよう、かわりにデータベースの列を使用する場合
rq.addAverage("salary", eb.getField("SALARY.SALARY"));
継承階層に属し、かつ1対1の結合属性の構成を持つクラスに対して問合せを実行することはできません。この問題は、すでにTopLink Essentialsで対処されており、解決策は次回のリリースまたは今回のリリースのパッチ・セットで提供される予定です。
一部のデータソース実装にOracle9iおよびOracle10gデータベース・プラットフォーム提供の拡張データ型を使用すると、不具合が発生する場合があります。前述のプラットフォームでは、未加工のOracle固有のJDBC接続は正しくアンラップされず、必要な変換を完了できません。この問題を回避するには、TopLinkの内部接続プーリングを使用してください。
リターン・ポリシーにより、INSERTやUPDATEの間に変更された値を返してキャッシュされたオブジェクトに移入できますが、リターン・ポリシーは数値バージョンのオプティミスティック・ロックと同時には動作しません。すべてのUPDATEで返される値は1であり、意味のあるロック保護は提供されません。
数値オプティミスティック・ロックをリターン・ポリシーと同時に使用しないでください。
TopLinkでは、サーバーから返される日付および時間の情報にはTimestamp
が使用されているものとみなされます。JDBCドライバによって現在の日付にString
が返されると、TopLinkでは例外がスローされます。Timestamp
を返すドライバを使用するか、サーバー時間のかわりにローカル時間を使用するようにポリシーを変更してください。
セッションのカスタム順序表を構成すると、TopLink Workbenchでは例外がスローされ、sessions.xml
を保存する際に編集内容が書き込まれません。これを回避するには、順序付けをプロジェクト・レベルで構成してください。詳細は、『Oracle TopLink開発者ガイド』のプロジェクト・レベルでの順序付けの構成に関する項を参照してください。
この項の内容は次のとおりです。
非ASCII文字を含むクラス名およびメソッド名を作成すると、TopLinkによって例外がスローされます。この問題は、非ASCII文字を含むXMLスキーマからJAXB 1.0 TopLinkプロジェクトを作成するときに生じます。XMLスキーマに非ASCII文字が使用されていないことを確認してください。
XML文書の保存により、XML文書をそのマップされたオブジェクト・モデルに部分的に変換できます。マップされていないコンテンツが失われず、オブジェクトのマーシャリング時にXMLに戻されるよう、XMLコンテンツが保存されます。
XMLディスクリプタで「ドキュメントの保存」オプションを選択する場合は、その他すべてのルート・ディスクリプタでもこのオプションを設定する必要があります。
ドキュメントの保存の使用時には、ルート・オブジェクトのみマーシャリングできます。ドキュメントの保存でルート以外のオブジェクトをマーシャリングしようとすると、例外が発生します。
TopLinkでは、Self(「.」)指定のXPathを使用する単一コンポジット・オブジェクト・マッピングのみがサポートされます。これはコンポジット・オブジェクト・マッピングの数を制限するものではありません。子要素ではなく親要素にマップされたコンポジット・オブジェクトのマッピングの数のみが制限を受けます。
ドキュメントの保存では、ルート・オブジェクトのみがマーシャリングされます(『Oracle TopLink開発者ガイド』のドキュメントの保存の構成に関する項を参照してください)。ドキュメントの保存でルート以外のオブジェクトをマーシャリングしようとすると、例外が発生します。
この項の内容は次のとおりです。
デフォルトのTopLinkのインストールでは、インストールを行うユーザーのみがインストール・ファイルにアクセスできます。TopLinkのインストールが共有環境にある場合は、インストーラの終了後に<ORACLE_HOME>
ディレクトリ内のすべてのファイルのファイル権限を手動で変更する必要があります。実行可能ファイルには読取りおよび実行権限が必要です。実行不可能ファイルには読取り権限が必要です。ファイル権限の設定に関する情報については、ご使用のオペレーティング・システムのドキュメントを参照してください。
Oracle TopLinkのインストールが完了すると、インストール中に選択した言語にかかわらず、英語のようこそページ(Welcome page)が表示されます。固有の言語で表示させるには、<ORACLE_HOME>
¥toplink¥doc¥
フォルダから適切なファイルを選択してください。
この項の内容は次のとおりです。
『Oracle TopLink開発者ガイド』に記載されているproject.xmlファイルのプログラムによる作成のコマンドは誤っています。正しいコマンドは、次のとおりです。
java -classpath toplink.jar;toplinkmw.jar;xmlparserv2.jar;ejb.jar;oracle.toplink.workbench.mapping s.DeploymentXMLGenerator <MW_Project.mwp> <output file.xml>