Oracle のジオデータベース内の open_cursors 設定の更新

デフォルトでは、ジオデータベースは Oracle open_cursors が 300 に設定されていると想定しています。ジオデータベースからは Oracle データベース用に設定された open_cursors 値にアクセスできません。Oracle データベースの open_cursors パラメーターを 300 以外の値に設定する場合は、sde.gdb_util.update_open_cursors ストアド プロシージャを使用して、ジオデータベースの open_cursors 設定と、それが配置されている Oracle データベースの open_cursors 設定を同期します。

ヒント:

sde.gdb_util.update_open_cursors ストアド プロシージャが、sde ジオデータベース リポジトリに格納されている open_cursors パラメーターと、Oracle データベース内に存在するユーザースキーマ ジオデータベースを更新します。つまり、ユーザースキーマ ジオデータベースに対してプロシージャを別途実行する必要はありません。

Oracle データベースとジオデータベース間で open_cursors 設定を同期しない場合、複数のカーソルを必要とするアクティビティが失敗する可能性があります。

sde.gdb_util.update_open_cursors ストアド プロシージャがジオデータベース内に存在します。ストアド プロシージャを使用して open_cursors 設定を同期するには、次の手順に従います。

  1. sysdba に sys を使用して SQL クライアントからジオデータベースに接続します。
  2. お使いのジオデータベースが Oracle 12c 以降のリリースのデータベース内にある場合は、sde.gdb_util.update_open_cursors ストアド プロシージャを実行するための権限を sde ユーザーに付与する必要があります。

    GRANT INHERIT PRIVILEGES ON USER SYS TO SDE;

  3. sde.gdb_util.update_open_cursors ストアド プロシージャを実行します。

    EXECUTE sde.gdb_util.update_open_cursors;

  4. ステップ 2 で sde ユーザーに付与した inherit 権限を取り消すことができます。

    REVOKE INHERIT PRIVILEGES ON USER SYS FROM SDE;

これで、データベースとジオデータベースの open_cursors 設定が同期されました。

今後、データベースの Oracle open_cursors 設定を更新する場合は、このストアド プロシージャを再度実行してジオデータベースの設定を更新します。