サービス・インスタンスのパッチ適用
次の手順で説明するように、REST APIを使用してOracle Java Cloud Serviceインスタンスにパッチを適用できます。
Coherenceデータ層があるインスタンスにパッチを適用する場合、パッチの適用前に管理対象Coherence Serverへのパッチ適用のサポートに必要なリクエスト属性のデフォルト値を確認します。 デフォルトでは、パッチ適用プロセスによって、管理対象Coherence Serverのローリング再起動が実施されます。 データを維持するには、パッチを適用するノードをシャットダウンする前に、CoherenceメンバーのStatusHAの状態がNODE-SAFEであることを確認します。
指定されたサービス・インスタンスのバックアップ・サービスがDISABLED状態の場合、パッチを適用することはできません。
詳細情報が必要な場合は、「パッチの適用」を参照してください。
注意: cURLコマンドの例では、URL構造https://rest_server_url/resource-pathが使用されています。ここで、rest_server_urlはアイデンティティ・ドメインまたはテナント名を問い合せるためのOracle Public CloudまたはOracle Cloud MachineのRESTサーバーです。 Oracle Public CloudまたはOracle Cloud Machineに使用する適切なURL構造の詳細は、リクエストの送信を参照してください。
Oracle Java Cloud Serviceインスタンスにパッチを適用する手順:
- 現在定義されている使用可能なパッチのリストを調べて、パッチIDを取得します。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/api/v1.1/instancemgmt/ExampleIdentityDomain/services/jaas/instances/ExampleInstance/patches/available
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(GET)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
JSON形式のレスポンスの例を次に示します。 適用するパッチのパッチIDを見つけます。
[{ "availablePatchGuiMetadata":{"supportsPreCheck":true}, "patchId":"Patch_jdk1.7.0_95", "patchNumber":"1.7.0_95", "patchCategory":"JDK", "patchSeverity":"Normal", "patchDescription":"Update to latest version of JDK, 1.7.0_95.", "patchReleaseUrl":"http://www.oracle.com/technetwork/java/javase/7u95-relnotes-2775806.html", "serviceType":"JaaS", "serviceVersion":"11g,12c,12cR3", "releaseDate":"Jan 15, 2016 8:00:00 AM", "entryDate":"Apr 3, 2016 4:06:34 AM", "entryUserId":"OCLOUD9_TAS_APPID", "componentPatches": { "JDK": { "id":1167, "version":"1.7.0_95", "releaseVersion":"1.7.0_95", "zipBundles": { "JDK": { "id":1134, "md5sum":"4d26465bff5b0744ff7ccbeed11dd308", "provisioningObjectRef":"JDK/7.0.95/151225/jdk.zip", "storageKey":"PATCH/JDK/jdk1.7.0_95", "zipVersion":"1.7.0_95" } } } }, "patchType":"JDK", "requiresRestart":true, "serviceTypeVersions":"ANY", "isDeleted":false, "minToolsVersion":"15.1.3-0-1501230343", "displayName":"1.7.0_95", "releaseVersion":"1.7.0_95" }]
- パッチを適用する前に、パッチの正常完了を妨げ、実際にパッチが適用されなくなる可能性のある問題を特定するためのパッチ適用前チェックを実行します。
curl -i -X PUT -u username:userPassword1! -d @emptyfile.json -H "Content-Type:application/json" -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/api/v1.1/instancemgmt/ExampleIdentityDomain/services/jaas/instances/ExampleInstance/patches/checks/Patch_jdk1.7.0_95
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(PUT)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
-dオプションを使用して、空のリクエスト文書を識別します。 この時点では、ペイロードにパラメータはサポートされていません。
コンテンツ・タイプをapplication/json,として識別し、アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
JSON形式のレスポンス本文の例を次に示します。
{ "details": { "jobId":"671344", "message":"JCS-PATCHING-5227: Pre-Checking service for patch [Patch_jdk1.7.0_95] is submitted as an asynchronous job." }, "status":"Completed" }
- パッチ適用前チェック操作のステータスを確認します。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/api/v1.1/instancemgmt/ExampleIdentityDomain/services/jaas/instances/ExampleInstance/patches/checks/job/671344
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(GET)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
JSON形式のレスポンス本文の例を次に示します。
{ "id":602, "jobId":"671344", "patchId":"Patch_jdk1.7.0_95", "jsonResult":"{\"resultMessage\":\"Completed\",\"messages\":[]}", "startDate":"May 6, 2016 6:27:53 PM", "endDate":"May 6, 2016 6:29:11 PM", "performedBy":"username", "inProgress":false, "status":"PASSED_PRECHECK", "preCheckMessages":[] }
この例では、パッチ適用前チェック操作に合格しているので、パッチを正常に完了するために環境に変更を加える必要はありません。
- パッチ情報に関するノートを追加するために、JSONドキュメントpatch.jsonを作成します。
例:
{ "additionalNote":"Applying JDK patch" }
次に、Oracle Coherenceが有効なサービス・インスタンスにパッチを適用する場合のJSONファイルの例を示します。
{ "dgStatusHaState":"NODE-SAFE", "dgStatusHaPolicy":"REQUIRE_STATUS_HA", "dgStatusHaTimeoutSecs":100, "additionalNote":"Applying JDK patch" }
- 前の手順で作成したJSONドキュメントを渡して、Oracle Java Cloud Serviceインスタンスにパッチを適用します。
curl -i -X PUT -u username:userPassword1! -d @patch.json -H "Content-Type:application/json" -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/api/v1.1/instancemgmt/ExampleIdentityDomain/services/jaas/instances/ExampleInstance/patches/Patch_jdk1.7.0_95
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(PUT)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
-dオプションを使用して、ローカル・マシン(patch.json)のリクエスト文書をJSON形式で識別
コンテンツ・タイプをapplication/json,として識別し、アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
JSON形式のレスポンスの例を次に示します。
{ "details": { "jobId":"670607", "message":"JCS-PATCHING-5068: Patching service with patch [Patch_jdk1.7.0_95] is submitted as an asynchronous job." }, "status":"Completed" }
- 適用されたパッチを表示してパッチ操作のステータスを確認します。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/api/v1.1/instancemgmt/ExampleIdentityDomain/services/jaas/instances/ExampleInstance/patches/applied
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(GET)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
JSON形式のレスポンス本文の例を次に示します。 前述の手順で返されたジョブIDを見つけて、パッチ操作のIDの値を検出します。
[{ "backupStatus":"Unknown", "additionalNote":"Applying JDK patch", "appliedBy":"username", "appliedDate":"May 6, 2016 8:55:42 PM", "totalTime":"0 min, 0 sec", "patchId":"Patch_jdk1.7.0_95", "patchDescription":"Update to latest version of JDK, 1.7.0_95.", "patchReleaseUrl":"http://www.oracle.com/technetwork/java/javase/7u95-relnotes-2775806.html", "releaseDate":"Jan 15, 2016 8:00:00 AM", "resultMessage":"Patching in progress", "lastStatus":"IN_PROGRESS", "lastStatusMessage":"Patching in progress", "componentPatches": { "JDK": { "id":1167, "version":"1.7.0_95", "releaseVersion":"1.7.0_95", "zipBundles": { "JDK": { "id":1134, "md5sum":"4d26465bff5b0744ff7ccbeed11dd308", "provisioningObjectRef":"JDK/7.0.95/151225/jdk.zip", "storageKey":"PATCH/JDK/jdk1.7.0_95", "zipVersion":"1.7.0_95" } } } }, "patchType":"JDK", "patchCategory":"JDK", "patchSeverity":"Normal", "jobId":"670607", "displayName":"1.7.0_95", "inProgress":true, "operationType":"Patching", "id":78991, "patchingResult": { "patchingId":76841, "versionBeforeThisPatch":"JDK 1.7.0_91", "strategy":"Rolling", "customRollbackId":"670607_1462568142007", "startDate":"May 6, 2016 8:55:42 PM", "endDate":"May 6, 2016 8:55:42 PM", "patchingStatus":"IN_PROGRESS", "resultMessage":"Patching in progress", "additionalNote":"Applying JDK patch", "appliedBy":"username", "jobId":"670607", "completeLog":"", "progressMessages": [ "8:55:41.996 PM Phase initialize started", "8:55:42.045 PM Phase initialize completed", "8:55:42.084 PM Phase pre-check started", "8:55:42.143 PM Phase pre-check-rex started" ] }, "rollbackId":"78991", "currentPatchLevel":"JDK 1.7.0_95" }]
- パッチ操作が完了したら、パッチ操作の一意のIDを使用して、パッチ操作の完全な詳細を表示します。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/api/v1.1/instancemgmt/ExampleIdentityDomain/services/jaas/instances/ExampleInstance/patches/applied/78991
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(GET)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
JSON形式のレスポンス本文の例を次に示します。
[ { "backupStatus":"Available", "additionalNote":"Applying JDK patch", "appliedBy":"username", "appliedDate":"May 6, 2016 8:55:42 PM", "totalTime":"39 min, 52 sec", "patchId":"Patch_jdk1.7.0_95", "patchDescription":"Update to latest version of JDK, 1.7.0_95.", "patchReleaseUrl":"http://www.oracle.com/technetwork/java/javase/7u95-relnotes-2775806.html", "releaseDate":"Jan 15, 2016 8:00:00 AM", "resultMessage":"Completed", "lastStatus":"COMPLETED", "lastStatusMessage":"Completed", "componentPatches": { "JDK": { "id":1167, "version":"1.7.0_95", "releaseVersion":"1.7.0_95", "zipBundles": { "JDK": { "id":1134, "md5sum":"4d26465bff5b0744ff7ccbeed11dd308", "provisioningObjectRef":"JDK/7.0.95/151225/jdk.zip", "storageKey":"PATCH/JDK/jdk1.7.0_95", "zipVersion":"1.7.0_95" } } } }, "patchType":"JDK", "patchCategory":"JDK", "patchSeverity":"Normal", "jobId":"670607", "displayName":"1.7.0_95", "backupId":"1462569267815", "inProgress":false, "operationType":"None", "id":78991, "patchingResult": { "patchingId":76841, "backupId":"1462569267815", "versionBeforeThisPatch":"JDK 1.7.0_91", "strategy":"Rolling", "customRollbackId":"670607_1462568142007", "startDate":"May 6, 2016 8:55:42 PM", "endDate":"May 6, 2016 9:35:34 PM", "patchingStatus":"COMPLETED", "resultMessage":"Completed", "additionalNote":"Applying JDK patch", "appliedBy":"username", "jobId":"670607", "completeLog":"", "progressMessages": [ "8:55:41.996 PM Phase initialize started", "8:55:42.045 PM Phase initialize completed", "8:55:42.084 PM Phase pre-check started", "8:55:42.143 PM Phase pre-check-rex started", ... "9:35:33.639 PM Phase patch-rex completed", "9:35:33.954 PM Phase patch completed", "9:35:34.016 PM Phase finalize started", "9:35:34.057 PM Completed" ] }, "rollbackId":"78991", "rollbackVersion":"JDK 1.7.0_91", "currentPatchLevel":"JDK 1.7.0_95" } ]