デフォルトでは、ジオデータベースは Oracle open_cursors が 300 に設定されていると想定しています。ジオデータベースからは Oracle データベース用に設定された open_cursors 値にアクセスできません。Oracle データベースの open_cursors パラメーターを 300 以外の値に設定する場合は、sde.gdb_util.update_open_cursors ストアド プロシージャーを使用して、ジオデータベースの open_cursors 設定と、それが配置されている Oracle データベースの open_cursors 設定を同期します。
Oracle データベースとジオデータベース間で open_cursors 設定を同期しない場合、ジオデータベースに対する複数の接続を必要とするアクティビティ (ジオメトリック ネットワークの編集やクエリなど) が失敗する可能性があります。
Oracle ジオデータベースの 10.5.0.1.4 バージョン以降、sde.gdb_util.update_open_cursors ストアド プロシージャーがジオデータベース内に存在し、次の手順で open_cursors 設定を同期できるようになりました。
- sysdba に sys を使用して SQL クライアントからジオデータベースに接続します。
- お使いのジオデータべースが Oracle 12c データベース内にある場合は、sde.gdb_util.update_open_cursors ストアド プロシージャーを実行するための権限を sde ユーザーに付与する必要があります。
GRANT INHERIT PRIVILEGES ON USER SYS TO SDE;
- sde.gdb_util.update_open_cursors ストアド プロシージャーを実行します。
EXECUTE sde.gdb_util.update_open_cursors;
- Oracle 12c 内のジオデータベースの場合、ステップ 2 で sde ユーザーに付与した inherit 権限を取り消すことができます。
REVOKE INHERIT PRIVILEGES ON USER SYS FROM SDE;
これで、データベースとジオデータベースの open_cursors 設定が同期されました。
今後、Oracle open_cursors 設定を更新する場合は、このストアド プロシージャーを再度実行します。