ドリル・スルー・レポートでのSQL IN句の制限の引上げ
SQL IN句の制限をデフォルトの1000メンバー以上に引き上げることで、ドリル・スルー・レポートのエラーを解決します。
ドリル・スルー・レポートがエラーで失敗した場合
'ERROR: relation <member name> does not exist'
この失敗は、SQL IN句のメンバーがデフォルトで1000に制限されているために発生します。このデフォルトは、EssbaseおよびOracle Databaseに対して存在します。
注意:
Essbaseプラットフォームには、Essbase機能の環境および動作をカスタマイズできるスクリプトが<DOMAIN HOME>/binに含まれています。ただし、これらのドメイン環境や起動スクリプトを変更すると、起動時の障害など、意図しない影響が発生する可能性があります。最初にテスト環境で変更を行うことをお薦めします。これらのスクリプトを編集する前に、常に次を行ってください:
-
<DOMAIN HOME>/esstools/bin/stop.sh(Linuxの場合)または<DOMAIN HOME>\esstools\bin\stop.cmd(Windowsの場合)を使用して、Essbase管理対象サーバーを停止します。 -
<DOMAIN HOME>/binで、編集するファイルのバックアップ・コピーを作成します。例Linuxの場合
cp setStartupEnv.sh setStartupEnv_bak.shWindowsの場合
copy setStartupEnv.cmd setStartupEnv_bak.cmd -
Oracleドキュメントの手順のみを使用して、またはOracleサポートとともに作業して、慎重に編集します。
-
<DOMAIN HOME>/esstools/bin/start.sh(Linuxの場合)または<DOMAIN HOME>\esstools\bin\start.cmd(Windowsの場合)を使用して、Essbaseを再起動します。起動が正常に完了したことを確認します。
制限の拡大が外部データベースによってサポートされている場合に、ドリル・スルーのSQL IN句の制限を引き上げるには
- Essbaseサービスを停止します(サーバーの停止、起動および確認を参照)。
- Essbaseがデプロイされているマシンで、
<Domain Home>/binに移動します(Essbaseプラットフォーム内の各環境の場所を参照)。 - 起動スクリプト(
setStartupEnv.sh(Linux)またはsetStartupEnv.bat(Windows))のバックアップ・コピーを作成します。これを別の名前で保存します(例:cp setStartupEnv.sh setStartupEnv_orig.sh) setStartupEnv.shまたはsetStartupEnv.batを編集用に開きます。- 構成行を追加して、制限を1000以上に引き上げます。
Linuxの例(setStartupEnv.sh):
JAVA_OPTIONS="${JAVA_OPTIONS} -Ddtr.in.clause.limit=15000" export JAVA_OPTIONSWindowsの例(setStartupEnv.bat):
set JAVA_OPTIONS=%JAVA_OPTIONS% "-Ddtr.in.clause.limit=15000" setStartupEnv.shまたはsetStartupEnv.batを保存します。- Essbaseサービスを起動します(サーバーの停止、起動および確認を参照)。