Mongoose アプリケーションで使用される非 Mongoose データについて

Mongoose ベースに変換されたレガシーアプリケーションなど、非 Mongoose ソースからのデータを組み込むことができます。ただし、このトピックで説明されたとおり Mongoose に要求される特定のスキーマ要素は、多くの場合、非 Mongoose データソースには存在しません。

これらのデータソースを Mongoose ベースのアプリケーションに組み込むには、Mongoose で要求されるスキーマ要素を提供するビューを作成する必要があります。

異なる SQL データベースからのデータを Mongoose アプリケーションに含める」または「Oracle データベースからのデータを Mongoose アプリケーションに含める」を参照してください。

注:  現在、SQL サーバまたは Oracle データソースのみ Mongoose アプリケーションにリンクできます。

ユニコードサポート

Mongoose データベースはユニコードをサポートするよう設計されていますが、他のデータソースがユニコードをサポートしない場合があります。非 Mongoose データソースでの不適切なインデックスのスキャンを回避するには、Mongoose で処理のデフォルトを設定する必要があります。

基本デフォルト処理のリスト」を参照してください。

楽観的ロック

Mongoose データベースは、RecordDate プロパティを使用して、楽観的ロックを行っています。しかし多くの場合では、非 Mongoose データソースには RecordDate カラムがありません。そのため、非 Mongoose データソースを使用するにあたっての大きな問題は、楽観的ロックのコーディネートです。 [IDO リンクデータベース] フォームおよび [IDO リンクテーブル] フォームの両方は、非 Mongoose データソースでの楽観的ロックに使用するカラムを指定するオプションが使用できます。

オプションは以下のとおりです:

  • Mongoose が「RecordDate」カラムが非 Mongoose データソースに存在するかどうかを識別できるようになります。
  • [IDO リンクデータベース] のデフォルトカラムを指定する。これは、通常、非 Mongoose テーブルで使用される楽観的ロックのカラムの名前です(カラムが存在する場合)。
  • [IDO リンクテーブル] フォームでの楽観的ロックのカラムを指定

これらのオプションが存在しない場合、リテラル文字列「NODATE」が「RecordDate」値として指定されます。リテラル文字列はすべての非 Mongoose データソースのアクセスに適用されるため、楽観的ロックは行われません。

Mongoose ビューについて

Mongoose データソースに作成された Mongoose ビューには、Mongoose の処理に必要なデータソースからのカラムおよび以下の追加カラムが含まれます。

  • Mongoose の楽観的ロックに使用される「RecordDate」非 Mongoose SQL データソースでは、システムはこの値の楽観的ロックに使用するために割り当てたカラムをどれでも割り当てます。ランタイムの間、Mongoose は、この値がデータが初めにクエリされてから、修正がくわえられるまでに、どこかで修正されたかどうかを確認します。Oracle データソースに対しては、この値は派生します。 
  • 全テーブルに対して一意の値でなければならない「RowPointer」Oracle データソースに対しては、この値は派生します。
  • 内部で使用されるリテラル値が [1] の「AddMongooseFields」

このビューが作成された後、他の Mongoose データベーステーブルのようなリンクデータベーステーブルで IDO およびフォームを作成でき、読み込み、書き込み操作できるようになります。例外は、ワークフローを停止しなくてはならない場所でのイベントアクションには非 Mongoose データベースとテーブルを使用できないという点です。

『Guide to the Application Event System』 を参照してください。

関連トピック