8 SODAのガイドラインと制限
SODA実装間に適用される一般的なガイドラインと制限を示します。
- SODAガイドライン
SODA実装間に適用されるガイドラインを示します。 - 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開発者ガイドを参照
親トピック: SODAのガイドラインと制限
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以外の追加のエンコーディングをサポートする実装もあります。
親トピック: SODAのガイドラインと制限
脚注凡例
脚注1: SODA for Cでは、AL32UTF8をデータベース・キャラクタ・セットとして使用する必要があります。脚注2:
SODAを使用する通常のアプリケーションを日常的に使用する場合、コレクションをドロップして再作成する必要はありません。しかし、なんらかの理由でこれを行う必要がある場合は、このガイドラインが適用されます。