シャドウ・アプリケーションの作成
/essbase/rest/v1/applications/actions/shadowCopy
指定されたプライマリ・アプリケーションを読取り専用モードにし、そのプライマリ・アプリケーションからシャドウ・アプリケーション(完全コピー)を作成します。
シャドウ・アプリケーションを使用すると、シャドウ・アプリケーション上でキューブ変更およびアウトライン再構築を実行し、その一方で、プライマリ・アプリケーションで問合せなどの読取り専用の操作を扱うということができます。
必要な権限: パワー・ユーザー。
アプリケーションの規模によっては、アウトライン再構築には非常に時間がかかる可能性があるため、シャドウ・アプリケーションを使用すると便利です。
シャドウ・ソリューションを使用すると、再構築が原因の停止時間によって阻止されているユーザーをレポートするのではなく、再構築がシャドウ・アプリケーション上で起こっている間にそれらのユーザーがプライマリ・アプリケーションに対して各自の読取り専用問合せを続行できます。
シャドウ・アプリケーションはプライマリ・アプリケーションの非表示のコピーとして作成できるということを覚えておいてください。
これは、アプリケーションのリストを実行した場合に、そのリストにシャドウ・アプリケーションが含まれないということです。
パラメータwaitForOngoingUpdatesInSecsを使用すると、シャドウ・コピーを作成しようとしたときにこのアプリケーションのキューブに対して進行中の書込み操作があった場合の、コピー・プロセスの待機可能時間を制御できます。
たとえば、データ・ロードが進行中であった場合は、クローニング・プロセスは失敗します。
waitForOngoingUpdatesInSecsを60に設定した場合、Essbaseでは、クローニング・プロセスの開始前にデータ・ロードの完了を最大で1分待ちます。
この指定された待機間隔の間にデータ・ロードが完了しない場合は、Essbaseによってコピーは作成されず、クローニング・プロセスはエラーで失敗し、データ・ロードが続行されます。
関連項目
リクエスト
- application/json
- application/xml
primaryAppName: クローニングするソース・アプリケーションの名前。
shadowAppName : ソースのコピーとなるコピー先アプリケーションまたはセカンダリ・アプリケーションの一意の名前。
hideShadow: アプリケーションを非表示にするにはtrueを指定し、それ以外の場合はfalseを指定します。
waitForOngoingUpdatesInSecs: アクティブな書込み操作が完了するまでの待機期間(秒単位)。
runInBackground: 「シャドウ・コピー」をジョブとしてスケジュールするにはtrueを指定し、それ以外の場合はfalseを指定します。
object
- hideShadow(required): boolean
シャドウ・アプリケーションを非表示にするにはtrueを指定し、それ以外の場合はfalseを指定します。
- primaryAppName(required): string
プライマリの、シャドウでないアプリケーションの名前。
- runInBackground: boolean
「シャドウ・コピー」をジョブとしてスケジュールするにはtrueを指定し、それ以外の場合はfalseを指定します。
- shadowAppName(required): string
ソースのコピーであるシャドウ・アプリケーションの一意の名前。
- waitForOngoingUpdatesInSecs(required): integer(int32)
アクティブな書込み操作が完了するまでの待機期間(秒単位)。
レスポンス
- application/json
- application/xml
200 レスポンス
OK
シャドウ・アプリケーションが正常に作成されました。
400 レスポンス
不正なリクエスト
シャドウ・アプリケーションの作成に失敗しました。
500 レスポンス
サーバーの内部エラーです。
503 レスポンス
使用できないサービス
ネーミング例外またはサーバー例外。
例
次の例では、Essbaseシャドウ・アプリケーションを作成する方法を示します。
この例では、cURLを使用して、Windowsシェル・スクリプトからREST APIにアクセスします。呼出し元ユーザーのIDおよびパスワードは変数であり、properties.bat
内でその変数値が設定されています。
cURLコマンドを含むスクリプト
call properties.bat
curl -X POST https://myserver.example.com:9001/essbase/rest/v1/applications/actions/shadowCopy -H "accept: application/json" -H "Content-Type: application/json" -d '{"primaryAppName": "Sample_Dynamic", "shadowAppName": "SDShadow", "hideShadow": true, "waitForOngoingUpdatesInSecs": 5, "runInBackground": true}' -u %User%:%Password%
レスポンス本体の例
{
"job_ID": 3,
"appName": null,
"dbName": null,
"jobType": "Shadow Copy",
"jobfileName": "Sample_Dynamic",
"userName": "power",
"startTime": 1602544274000,
"endTime": 1602544274000,
"statusCode": 100,
"statusMessage": "In Progress",
"jobInputInfo": {
"primaryAppName": "Sample_Dynamic",
"shadowAppName": "SDShadow",
"hideShadow": true,
"waitForOngoingUpdatesInSecs": 5
},
"jobOutputInfo": {
"errorMessage": ""
},
"links": [
{
"rel": "self",
"href": "https://myserver.example.com:9001/essbase/rest/v1/jobs",
"method": "POST"
},
{
"rel": "canonical",
"href": "https://myserver.example.com:9001/essbase/rest/v1/jobs",
"method": "POST"
},
{
"rel": "Job Status",
"href": "https://myserver.example.com:9001/essbase/rest/v1/jobs/3",
"method": "GET"
}
]
}
非表示のアプリケーションを表示するには、「アプリケーション名のリスト」を使用します。
curl -X GET https://myserver.example.com:9001/essbase/rest/v1/applications/actions/name/HIDDEN -H "accept: application/json"