シャドウ・アプリケーションの昇格

post

/essbase/rest/v1/applications/actions/shadowPromote

シャドウ・アプリケーションをベース・アプリケーションに昇格させます。概念上は、昇格操作はファイル・システム・レベルでEssbaseアプリケーション・ディレクトリをソースの場所から宛先の場所に移動させることと同等です。

Essbaseによって、昇格前に両方のアプリケーションが停止(アンロード)される必要があります(それらが実行されている場合)。アンロードの時点で、宛先アプリケーションで問合せなどの操作が進行中だった場合は、Essbaseによってそれらの操作が終了され、アプリケーションのアンロードが試みられます。

正常なアンロード・プロセスが失敗するか、その実行時間が入力引数timeoutToForceUnloadApp (unit=seconds)で許可されている時間よりも長くなると、Essbaseによってアプリケーションが強制終了されます。

例: タイムアウトに60秒を指定したが、進行中のリクエストの終了、およびアプリケーションの正常なアンロードが1分以内に完了しなかった場合は、Essbaseによって強制終了がトリガーされます。終了後、Essbaseによってシャドウ・アプリケーションが昇格されます。

昇格操作は、集約ストレージ、ブロック・ストレージおよびハイブリッド・モードを含め、すべてのアプリケーション上でサポートされています。

ノート: 既存のアプリケーションを移動するときは、アプリケーションおよびキューブのアーティファクト(メタデータやデータなど)のみがソースから宛先に置き換えられます。

昇格の間、宛先アプリケーション上の、ユーザー、グループおよびセキュリティ・フィルタなどのすべてのセキュリティ・レイヤー関連付けは保持されますが、シャドウおよびソース・アプリケーションでは失われます。パーティション定義にも同じルールが当てはまります。

例: ユーザーXおよびYにApp1への読取りアクセス権があり、管理者がシャドウApp2を昇格させてApp1を置き換えた場合、XとYはApp1にアクセスできるようになります。

ユーザーZにApp2へのアクセス権があった場合、昇格後に、ZはApp1にアクセスできません。

シャドウ化アプリケーションからベースへの昇格は、キューブ数とキューブ名に変更がない場合のみ認められます。つまり、キューブの名前が変更された場合や、アプリケーションがそのシャドウ化後に追加または削除された場合、そのようなアプリケーションの昇格はエラーで失敗し、両方のアプリケーションはそのままになります。

例: ASOAppNew.cubeNewをASO.cubeと置き換えることができません。ASOAppNew.cubeをASO.cubeと置き換えることができます

ヒント: この昇格APIを呼び出す前にアプリケーションをアンロードまたは停止する必要はありません。Essbaseによってアプリケーションがロードされて情報が収集され、アプリケーションを移動する前にそれがアンロードされます。

リクエスト

サポートされているメディア・タイプ
本体()

shadowAppName: ベースに昇格させる必要がある非表示のシャドウ・アプリケーションの名前。

primaryAppName: プライマリ・アプリケーションの名前。

timeoutToForceUnloadApp: アプリケーションによって実行されたリクエストが時間間隔を過ぎても進行中である場合に強制アンロードするまでの時間間隔(秒単位)。

runInBackground: 「シャドウ・プロモート」をジョブとしてスケジュールするにはtrueを指定し、それ以外の場合はfalseを指定します。

ルート・スキーマ : ShadowPromoteBean
型: object
ソースの表示
  • プライマリの、シャドウでないアプリケーションの名前。

  • 「シャドウ・プロモート」をジョブとしてスケジュールするにはtrueを指定し、それ以外の場合はfalseを指定します。

  • ソースのコピーであるシャドウ・アプリケーションの一意の名前。

  • アプリケーションによって実行されたリクエストが進行中である場合にそのアプリケーションを強制的にアンロードおよび停止するまでの時間間隔(秒単位)。正常なアンロード・プロセスが失敗するか、その実行時間がこのタイムアウトで許可されている時間よりも長くなると、Essbaseによってアプリケーションが強制終了されます。

先頭に戻る

レスポンス

サポートされているメディア・タイプ

200 レスポンス

OK

シャドウ・アプリケーションの昇格が正常に完了しました。

400 レスポンス

不正なリクエスト

シャドウ・アプリケーションの昇格に失敗しました。

500 レスポンス

サーバーの内部エラーです。

503 レスポンス

使用できないサービス

ネーミング例外またはサーバー例外。

先頭に戻る

次の例では、Essbase REST APIを使用して非表示(シャドウ)アプリケーションをプライマリ・ステータスに昇格する方法を示します。

この例では、cURLを使用して、Windowsシェル・スクリプトからREST APIにアクセスします。呼出し元ユーザーのIDおよびパスワードは変数であり、properties.bat内でその変数値が設定されています。

cURLコマンドを含むスクリプト

call properties.bat
curl -X POST https://myserver.example.com:9001/essbase/rest/v1/applications/actions/shadowPromote -H "Accept:application/json" -H  "Content-Type: application/json" -d '{"primaryAppName": "Sample_Dynamic", "runInBackground": true, "shadowAppName": "SDShadow", "timeoutToForceUnloadApp": 60}' -u %User%:%Password%

レスポンスの例

{
  "job_ID" : 27,
  "appName" : null,
  "dbName" : null,
  "jobType" : "Shadow Promote",
  "jobfileName" : "SDShadow",
  "userName" : "admin",
  "startTime" : 1722104384000,
  "endTime" : 1722104384000,
  "statusCode" : 100,
  "statusMessage" : "In Progress",
  "jobInputInfo" : {
    "primaryAppName" : "Sample_Dynamic",
    "shadowAppName" : "SDShadow",
    "timeoutToForceUnloadApp" : 60
  },
  "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/27",
    "method" : "GET"
  } ]
}
先頭に戻る