8 SODAのガイドラインと制限

SODA実装間に適用される一般的なガイドラインと制限を示します。

8.1 SODAガイドライン

SODA実装間に適用されるガイドラインについて説明されています。

  • AL32UTF8データベース文字セット - データベース文字セットにはAL32UTF8 (Unicode)を使用する脚注1をお薦めします。そうでない場合:

    • データベース・キャラクタ・セットへの変換損失が多いため、ドキュメントがコレクションに書き込まれるときにSODAによってデータが変更される可能性があります。(これは、VARCHAR2およびCLOBデータとして格納されているコレクションのみに影響します。BLOBデータとして格納されているコレクションはデータベース・キャラクタ・セットに依存しません。

    • 例による問合せ(QBE)で、予測不能な結果が返される可能性があります。

  • コレクションの再作成脚注2 - 多少なりともコレクションを使用しているアプリケーションがある場合は、コレクションをドロップした後に異なるメタデータで再作成しないでください。すべてのライブSODAオブジェクトが解放されるように、コレクションを再作成する前にこのようなアプリケーションをすべて停止します。

    コレクションのドロップだけでは、問題は発生しません。ドロップされたコレクションの読取りまたは書込み操作でエラーが発生します。コレクションをドロップして同じメタデータを持つコレクションを再作成しても、問題はありません。ただし、異なるメタデータでコレクションを再作成して、SODAオブジェクトを使用するライブ・アプリケーションが存在する場合、古いコレクションがアクセスされるというリスクがあり、この場合、エラーは発生しません

    注意:

    SODA for JavaおよびSODA for RESTなど、SODAコレクション・メタデータ・キャッシングを許可するSODA実装では、このようなキャッシュが有効になっている場合に、このリスクが高くなります。その場合、コレクションがドロップされても(共有またはローカルの)キャッシュが古いコレクション・オブジェクトのエントリを返す可能性があります。

関連項目:

  • クライアント割当てドキュメント・キーでAL32UTF8を使用することの重要性については、キー列の型を参照

  • コレクション・メタデータ・キャッシングの詳細は、Oracle Database SODA for Java開発者ガイドを参照

8.2 SODAの制限(参考)

SODA実装間に適用される制限事項について説明されています。

  • ドキュメント・サイズ:

    • SODA for RESTおよびSODA for Javaでは、制限は約2GBです。

    • SODA for PL/SQLでは、サイズは可能な最大LOBサイズによって制限されます。

      関連項目:

      BLOBおよびCLOBの最大サイズの詳細は、Oracle Database SQL言語リファレンスを参照

    注意:

    ワークロードをサポートするのに十分なRAMがあることを確認する必要があります。たとえば、サイズが64MBの100個のドキュメントを同時に読取りまたは書込みする場合、約6.4GBのRAMが必要です。

  • JSONドキュメント・コンテンツ: SODAでは、JSONコンテンツはRFC 4627に準拠している必要があります。

    特に、JSONコンテンツはオブジェクトまたは配列にする必要があり、スカラー値にすることはできません。たとえば、RFC 4627によると、文字列値"hello"は、それ自体有効なJSONコンテンツではありません。

    さらに、SODA JSONコンテンツは、UTF-8またはUTF-16 (ビッグ・エンディアン(BE)またはリトル・エンディアン(LE))である場合があります。RFC 4627ではUTF-32 (BEおよびLE)エンコーディングも許可していますが、SODAではこれをサポートしていません。Unicode以外の追加のエンコーディングをサポートする実装もあります。



脚注凡例

脚注1: SODA for Cでは、AL32UTF8をデータベース・キャラクタ・セットとして使用する必要があります
脚注2:

SODAを使用する通常のアプリケーションを日常的に使用する場合、コレクションをドロップして再作成する必要はありません。しかし、なんらかの理由でこれを行う必要がある場合は、このガイドラインが適用されます。