Oracle® Virtual Assembly Builder

開発者ガイド

11g リリース1 (11.1.1.6)

B66716-01(原本部品番号:E26204-02)

2012年2月

Oracle Virtual Assembly Builder開発者ガイド, 11g リリース1(11.1.1.6)

B66716-01

Copyright © 2011, 2012 Oracle and/or its affiliates.All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle およびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 Oracle Virtual Assembly Builderデプロイヤの概要

- 1.1 概要

- 1.2 デプロイメントのライフサイクル

- 1.2.1 アセンブリ・アーカイブのアップロード

- 1.2.1.1 アセンブリ・アーカイブのバージョニング

- 1.2.2 デプロイメント・フェーズ

- 1.3 デプロイヤのアーキテクチャ

- 1.4 ターゲット

- 1.4.1 Oracle Exalogic

- 1.5 タグ

- 1.6 メタデータ・ドリブン機能

2 API Webサービス

- 2.1 操作

- 2.2 管理操作

- 2.3 使用方法およびライフサイクル

- 2.4 管理Webサービス

- 2.4.1 コンテキスト・パス

- 2.4.2 問合せ文字列のパターン

- 2.4.3 アクション

- 2.4.4 エラー処理

- 2.4.5 XMLスキーマ

- 2.5 デプロイヤWebサービス

- 2.5.1 コンテキスト・パス

- 2.5.2 問合せ文字列のパターン

- 2.5.3 アクション

- 2.5.4 エラー処理

- 2.5.5 XMLスキーマ

3 APIリファレンス: 管理操作

- 3.1 HTTP問合せ文字列におけるパラメータ

- 3.2 レスポンスのコンテンツ

- 3.3 AddTargetUser

- 3.4 CreateTarget

- 3.5 DeleteTarget

- 3.6 DescribeTargetConfigurations

- 3.7 DescribeTargetNames

- 3.8 DescribeTargetUsers

- 3.9 DescribeUserTargets

- 3.10 GetDefaultTarget

- 3.11 GetTargetType

- 3.12 RemoveTargetUsers

- 3.13 SetDefaultTarget

4 APIリファレンス: デプロイヤ操作

- 4.1 HTTP問合せ文字列におけるパラメータ

- 4.2 AddAssemblyUsers

- 4.3 CreateAssemblyInstance

- 4.4 CreateTags

- 4.5 DeleteAssemblyArchive

- 4.6 DeleteAssemblyInstance

- 4.7 DeleteRequests

- 4.8 DeleteTags

- 4.9 DeployAssemblyInstance

- 4.10 DescribeAssemblyArchives

- 4.11 DescribeApplianceInstances

- 4.12 DescribeAssemblyInstances

- 4.13 DescribeAssemblyUsers

- 4.14 DescribeDeployer

- 4.15 DescribeRegistrations

- 4.16 DescribeRequests

- 4.17 DescribeScalingGroups

- 4.18 DescribeTags

- 4.19 DescribeTargets

- 4.20 DescribeVnets

- 4.21 DownloadAssemblyArchive

- 4.22 DownloadAssemblyMetadata

- 4.23 DownloadDeploymentPlan

- 4.24 RedeployAssemblyInstance

- 4.25 RegisterAssemblyArchive

- 4.26 RemoveAssemblyUsers

- 4.27 RestartAssemblyInstance

- 4.28 ScaleAppliance

- 4.29 StartAssemblyInstance

- 4.30 StopAssemblyInstance

- 4.31 UndeployAssemblyInstance

- 4.32 UnregisterAssemblyArchive

- 4.33 UpdateAssemblyArchive

- 4.34 UploadAssemblyArchive

5 サンプル・アプリケーション

- 5.1 サンプル・アプリケーション

A Webサービス・スキーマ

- A.1 スキーマ

索引

はじめに

このマニュアルでは、Oracle Virtual Assembly Builderの概念、トポロジおよび構成について説明します。ここでは、次の内容を説明します。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

このマニュアルは、PaaS対応のアプリケーションを作成するためにOracle Virtual Assembly BuilderでWebサービスAPIを活用するアプリケーションを作成する開発者を対象としています。

ドキュメントのアクセシビリティについて

オラクル社のアクセシビリティへの取組みの詳細は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleカスタマは、My Oracle Supportから電子サポートにアクセスできます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoまたはhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs (聴覚障害者向け)を参照してください。

関連ドキュメント

詳細は、ドキュメント・セットに含まれる次のドキュメントを参照してください。

- Oracle Virtual Assembly Builderインストレーション・ガイド

- Oracle Virtual Assembly Builderユーザーズ・ガイド

- Oracle Virtual Assembly Builderリリース・ノート

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 Oracle Virtual Assembly Builderデプロイヤの概要

次の項では、WebサービスAPIおよびその開発プロセスについて説明します。

- 第1.1項「概要」

- 第1.2項「デプロイメントのライフサイクル」

- 第1.3項「デプロイヤのアーキテクチャ」

- 第1.4項「ターゲット」

- 第1.5項「タグ」

- 第1.6項「メタデータ・ドリブン機能」

1.1 概要

Oracle Virtual Assembly Builderデプロイヤは、アセンブリ・アーカイブのリポジトリをメンテナンスし、そこに含まれるソフトウェア・システムのデプロイメントの側面を管理するJ2EEアプリケーションです。Oracle Virtual Assembly Builder Studioでアセンブリ・アーカイブを作成します。

デプロイヤによって、Oracle VMのような仮想化されたシステムにアセンブリ・アーカイブを登録するための操作、およびアセンブリ・アーカイブによって定義されているソフトウェア・システムのデプロイメントを編成するための操作が提供されます。

Oracle Virtual Assembly Builder Studioによって作成されたアセンブリ・アーカイブには、アプリケーションの形成のために連携して動作する、複数の関連するソフトウェア・スタックから構成されるソフトウェア・システムに関する情報が含まれます。このシステムをアセンブリと呼びます。アセンブリ・アーカイブには、アセンブリと、仮想化環境におけるアセンブリのインスタンスをインスタンス化するために使用される仮想マシン・テンプレートに関するメタデータが含まれます。

Oracle Virtual Assembly Builderデプロイヤへのインタフェースは、アセンブリ・アーカイブをそのリポジトリにアップロードする操作、仮想化システムにアセンブリ・アーカイブを登録する操作、およびアセンブリ・アーカイブで定義されたシステムのデプロイメント・インスタンスを管理する操作を行うWebサービスです。

Oracle Virtual Assembly Builderによって、総合的な製品ソリューションの一部としての追加インタフェースが提供されます。特に、Oracle Virtual Assembly Builder Studioおよびabctlコマンドライン・インタフェースが、Webサービスと統合されます。

第1.4項「ターゲット」に示すとおり、Oracle Virtual Assembly Builderデプロイヤは、Oracle VMまたはOracle Exalogic内のターゲットにデプロイできます。このような環境間における、機能面でのわずかな差異については、ドキュメント全体をとおして説明しています。

1.2 デプロイメントのライフサイクル

この項では、デプロイヤのリポジトリへのアセンブリ・アーカイブのアップロードを含む、デプロイメントのライフサイクルと、アセンブリ・インスタンスのデプロイメント・フェーズについて説明します。

1.2.1 アセンブリ・アーカイブのアップロード

Oracle Virtual Assembly Builderデプロイヤは、アセンブリ・アーカイブをリポジトリにアップロードする操作を行うWebサービスです。

1.2.1.1 アセンブリ・アーカイブのバージョニング

デプロイヤのリポジトリでは、複数のバージョンのアセンブリ・アーカイブを同時に保持することができます。アセンブリ・アーカイブがアップロードされる際に、デプロイヤによってバージョン番号が割り当てられます。

バージョニングの書式は、整数の単位で増加します(バージョン1、2、3など)。通常、最新のバージョンは、バージョンを必要とするアセンブリ操作のデフォルトとみなされます。同じ名前でアップロードされた別のアセンブリ・アーカイブは、次のバージョンを取得します。

1.2.2 デプロイメント・フェーズ

アセンブリ・インスタンスは、デプロイ可能なアーティファクトです。アセンブリ、そのデプロイメント計画の1つ、およびデプロイされる必要があるターゲットを選択して、アセンブリ・インスタンスを作成する必要があります。CreateAssemblyInstanceを使用して、アセンブリ・インスタンスを作成できます。

デプロイ時に、デプロイ対象のアセンブリ・インスタンスを選択します。アセンブリ・インスタンスのデプロイメントは、様々なフェーズを通って遷移します(図1-1)。このフェーズには、ステージング済、デプロイ済および失敗が含まれます。それぞれの状態で、操作のサブセットが実行されます。

アプライアンス・インスタンスは、ターゲットの仮想環境で実行中または作成された(あるいはその両方の)アプライアンスのインスタンスです。アセンブリ・インスタンスがデプロイされると、アプライアンス・インスタンスを起動および停止でき、あるいはデプロイされたアセンブリ・インスタンスに関連付けられたアプライアンス・インスタンスの番号を増減できます。Oracle Virtual Assembly Builderがデプロイされたアプリケーションの状態を監視することはなく、デプロイメント関連操作が成功したか失敗したかと、アセンブリがデプロイ済かステージング済かの通知のみを行います。

図1-1 デプロイメントのライフサイクル

次に、アセンブリ・インスタンス・フェーズのサマリーを示します。

- デプロイ済: アセンブリ・インスタンスがデプロイされ、操作が正常に完了した場合、デプロイ済の状態になります。デプロイ済アセンブリ・インスタンスで実行できる操作は次のとおりです。

- StopAssemblyInstance: この操作では、アセンブリ・インスタンスの実行中のすべてのアプライアンス・インスタンスを停止します。この操作の完了後に、アセンブリ・インスタンスはステージング済フェーズに遷移します。アプライアンス・インスタンスは仮想化環境に残り、後で再起動することが可能です。

- UndeployAssemblyInstance: この操作では、実行中のすべてのアプライアンス・インスタンスを停止して、これらを環境から削除します。この操作の完了後、アセンブリ・インスタンスはシステムに残るため、再度デプロイすることが可能です。

- RestartAssemblyInstance: この操作では、アセンブリ・インスタンスの実行中のすべてのアプライアンス・インスタンスを再開します。アセンブリ・インスタンスは、ステージング済に遷移してからデプロイ済に戻ります。

- RedeployAssemblyInstance: この操作では、アセンブリ・インスタンスを再デプロイします。この操作の一部として、すべてのアプライアンス・インスタンスが停止され、ターゲット環境から削除されます。新しいアプライアンス・インスタンスが作成され、起動されます。

- スケール: アセンブリ・インスタンス内のスケーリング・グループをスケールします。スケーリングは、アセンブリ・インスタンスでスケーリング・グループをスケール・アップまたはスケール・ダウンするために実行可能です。スケーリング・グループに対して実行可能なアプライアンス・インスタンス数は、構成済の最小インスタンス数と最大インスタンス数の間である必要があります。デプロイメントはデプロイ済状態のままとなります。

- 失敗: デプロイまたはアンデプロイ操作に失敗した際に、アセンブリ・インスタンスはこのフェーズになります。デプロイメント操作は、リソース不足などの様々な理由で失敗する可能性があります。失敗したデプロイメントに対して実行可能な操作は次のとおりです。

- DeleteAssemblyInstance: この操作では、必要なクリーンアップが行われます(アプライアンス・インスタンスの停止および削除など)。この操作が完了すると、アセンブリ・インスタンスは存在しなくなります。

- ステージング済: アセンブリ・インスタンスを停止すると、ステージング済のフェーズになります。このフェーズでは、すべてのアプライアンス・インスタンスは停止されています。このフェーズから実行可能な操作は次のとおりです。

- StartAssemblyInstance: この操作では、停止されているすべてのアプライアンス・インスタンスを起動します。この操作の完了後、アセンブリ・インスタンスはデプロイ済状態に戻ります。

- UndeployAssemblyInstance: この操作では、停止されているすべてのアプライアンス・インスタンスを仮想化環境から削除します。この操作の完了後、アセンブリ・インスタンスは残るため、再度デプロイすることが可能です。

1.3 デプロイヤのアーキテクチャ

Oracle Virtual Assembly Builderデプロイヤは、WebLogic ServerドメインにWebアプリケーションとして構成されます。

図1-2は、Oracle Virtual Assembly Builderデプロイヤの最上位コンポーネントを示しています。デプロイヤ・リポジトリには、アセンブリ・アーカイブと、Webクライアントによってデプロイヤにアップロードされる任意のデプロイメント計画が含まれます。アセンブリ・アーカイブおよびデプロイメント計画はOracle Virtual Assembly Builder Studioで作成されますが、デプロイヤによってメンテナンスされるリポジトリは、Oracle Virtual Assembly Builder Studioカタログとは別のものです。Oracle Virtual Assembly Builder Studioで作成された計画は、WebサービスAPI経由でデプロイヤにアップロードされます。デプロイヤのランタイムおよび構成の状態は、存続しているCoherenceの分散キャッシュで維持されるため、単一インスタンス・インストールが失敗した場合でもリカバリ可能です(つまり、デプロイヤのプロセスが存在します)。デプロイヤは1つ以上の仮想化システムと対話し、これらのシステムにアセンブリ・アーカイブのデプロイメントを編成します。

図1-2 デプロイヤのアーキテクチャ

1.4 ターゲット

仮想化システムが異なると、異なる方法でリソースが構成され、リソースに対する参照およびアクセスには異なる情報が必要となります。異なるシステム間で共通の操作性を実現するために、Oracle Virtual Assembly Builderデプロイヤによってターゲットの概念が定義されています。ターゲットは、このドキュメントで後述する管理インタフェースを使用して構成され、仮想化システムにおけるリソースまたはリソースのプールを参照するために使用されます。各ターゲットに提供される構成情報は、ターゲットを含む仮想化システムに固有のものです。

Oracle Virtual Assembly Builderデプロイヤでは、Oracle VMまたはOracle Exalogicのターゲットへのアセンブリ・インスタンスのデプロイがサポートされます。

1.4.1 Oracle Exalogic

Oracle Virtual Assembly Builderデプロイヤは、Oracle Exalogicと対話する管理領域であるExalogic Controlの主要コンポーネントです。Exalogic Controlで実行する際、Oracle Virtual Assembly Builderデプロイヤは、Exalogic Configuration Utility(ECU)経由で事前に構成されインスタンス化されて、Exalogic Controlで動作する仮想マシンとして実行されます。ここに示すOracle Virtual Assembly Builderデプロイヤのすべての機能は、Exalogic Controlで実行されるときに利用可能で、多くの場合、Exalogic独自の機能および最適化も存在します。

Exalogic Elastic Cloudの管理およびデプロイメントに関するマニュアルを参照してください。

1.5 タグ

一部の仮想化システムでは、システムと対話するツールによって問合せ可能なテンプレートやVMインスタンスなどのアーティファクトと関連付けられたタグによって、アーティファクトの検索や、またはアーティファクト間の関係の検索(特定のデプロイメントに関連付けられたアーティファクトの検索など)が可能です。

タグ付けをサポートするシステムでは、Oracle Virtual Assembly Builderデプロイヤによって、作成される特定のアーティファクトには自動的にタグが追加されます。表1-1で、これらのタグについて説明します。タグの値は常に文字列ですが、別の型として解釈されるものもあります。データ型列は、これらの型を示しています。たとえばデータ型が整数の場合、値が123のような文字列であると、数値の123として解釈される可能性があります。Oracle VMアーティファクトの列は、特定のタグが関連付けられるアーティファクトの種類を示しています。

表1-1 Oracle Virtual Assembly Builderデプロイヤのタグ

キー名

データ型

Oracle VMアーティファクト

説明

例

ovab:AssemblyArchiveName

文字列

インスタンス、

テンプレート

インスタンスのソースであるテンプレートを作成するために使用されるアセンブリ・アーカイブ名。

MySite.ova

ovab:TemplateId

文字列

インスタンス

インスタンスのソースであるテンプレートのOracle VM名。

234jlk234jj3lkj43

ovab:TemplateRepositoryName

文字列

インスタンス

インスタンスのソースであるテンプレートを含むリポジトリ名。

MyRepository

ovab:AppliancePath

文字列

インスタンス

Oracle Virtual Assembly Builderアセンブリ内のアプライアンスへのパス。これを使用して、元のアセンブリ構造におけるインスタンスの場所を決定します。

/MyWls/EjbCluster

ovab:ApplianceInstanceIndex

整数

インスタンス

アプライアンス・インスタンス索引。

2

ovab:ComponentType

文字列

インスタンス

Oracle Virtual Assembly Builderイントロスペクションによって決定されるアプライアンスのタイプ。

WLS

ovab:DeployerId

文字列

インスタンス、

アセンブリ・アーカイブ、

テンプレート

アーティファクトを作成したデプロイヤ・インスタンス識別子。

ovab:AssemblyInstanceId

文字列

インスタンス

デプロイヤ・インスタンスの有効範囲内で一意のアセンブリ・インスタンスの識別子。

Lkj234lk32j4lkj34

ovab:DeploymentPlan

文字列

インスタンス

インスタンスが含まれるデプロイメントに使用されるデプロイメント計画の名前。

MyPlan

ovab:UserName

文字列

テンプレート、

アセンブリ・アーカイブ、

インスタンス

アーティファクトの作成に進むデプロイメント操作を開始したユーザー名。

John

ovab:InitialTargetCount

整数

インスタンス

デプロイメント時のインスタンス数の初期ターゲット。

5

ovab:ScalabilityMin

整数

インスタンス

アプライアンスに許可されるインスタンスの最小数。

1

ovab:ScalabilityMax

整数

インスタンス

アプライアンスに許可されるインスタンスの最大数。

10

1.6 メタデータ・ドリブン機能

デプロイメント編成に関する詳細情報は、アプリケーションを表示するアセンブリ・アーカイブに埋め込まれているOVFメタデータ、およびデプロイメントの作成時に提供するデプロイメント計画に保存される情報によって決定します。

2 API Webサービス

次の項では、Oracle Virtual Assembly Builder WebサービスAPIについて説明します。

- 第2.1項「操作」

- 第2.2項「管理操作」

- 第2.3項「使用方法およびライフサイクル」

- 第2.4項「管理Webサービス」

- 第2.5項「デプロイヤWebサービス」

2.1 操作

Oracle Virtual Assembly Builderデプロイヤによって、WebサービスおよびCLI操作で使用される論理操作が提供されます。一部の操作は非同期であり、これらの操作をdescribeRequests操作で追跡できます。

操作に関する包括的なAPIリファレンスは、次の章に記載されています。

- 第3章「APIリファレンス: 管理操作」

- 第4章「APIリファレンス: デプロイヤ操作」

2.2 管理操作

Oracle Virtual Assembly Builderデプロイヤによって、ターゲットを構成するための論理的な管理操作が提供され、この操作では、仮想化環境におけるプールを参照します。これらの操作はすべて同期がとられます。

仮想化環境の動作およびその環境との対話方法の違いによって、このような構成には2つの手順が含まれます。

- CreateTarget操作を使用したターゲットの作成。この手順は、Oracle VMの場合にのみ必要です(Oracle Exalogicには事前構成済の単一のターゲットが付属あるため)。

- AddTargetUserを使用したターゲットに対する指定ユーザーの構成情報の追加。詳細は、第3章「APIリファレンス: 管理操作」の第3.3項「AddTargetUser」を参照してください。

ユーザーを追加するための操作は、これらの管理操作では提供されません。これらの操作は、このような操作を行う権限のあるセキュリティ管理者がLDAPサーバーに対して直接実行するものとされるためです。

2.3 使用方法およびライフサイクル

Oracle Virtual Assembly Builderデプロイヤを使用する際の最初の操作は、uploadAssemblyArchive操作を使用してデプロイヤのリポジトリにアセンブリ・アーカイブをアップロードすることです。

registerAssemblyArchive操作を使用して、アップロード済のアセンブリ・アーカイブを1つ以上のターゲットに登録できます。登録の詳細は、ターゲット・タイプごとに異なります。Oracle VMの場合は、デプロイヤへのアセンブリ・アーカイブのアップロード、Oracle VMシステム内のターゲットへのテンプレートの登録が含まれます。

ターゲットにアセンブリ・アーカイブが登録された後、createAssemblyInstance操作を使用して、その登録に1つ以上のアセンブリ・インスタンスを作成できます。アセンブリ・インスタンスは、アセンブリ・アーカイブによって定義されたアセンブリのVMインスタンスのライフサイクルを管理するために使用されるコンテキストです。アセンブリ・インスタンスの作成時に、デプロイメント計画(アセンブリ・インスタンス経由で管理されるアセンブリの環境に固有の詳細を定義するもの)が提供される必要があります。

アセンブリ・アーカイブのアセンブリ・インスタンスが作成されると、デプロイメント操作を開始できます。デプロイメント中に、アセンブリ・アーカイブによって定義されたアセンブリの初期インスタンスが作成され、起動されます。これが行われると、デプロイヤは、インスタンスの初期化スクリプトに埋め込まれた再構成ロジックと対話します(このロジックは、ネットワークおよびマウント済のディスク・ボリュームを構成し、その環境用にアプリケーション・スタックも構成します)。これらの対話によって、アプリケーション・スタックの起動時に作成されるインスタンス間の接続が構成されます。

アセンブリ・インスタンスがデプロイされると、アセンブリ内のアプライアンスで実行中のインスタンスの数を増減させるscaleなど、その他の多数のライフサイクル操作を実行中のシステムに適用できます。デプロイメントのすべてのインスタンスを停止および起動する操作もあり、この操作は、アプリケーションをオフラインにしたりオンラインに戻したりするために使用されます。

2.4 管理Webサービス

Webサービスに対する操作は、デプロイヤのコンテキスト・パスにHTTPリクエストをポストすることによって行われます。このリクエストには、操作に対する引数を定義するゼロ個以上のリクエスト・パラメータが続くアクションを定義するリクエスト・パラメータが含まれます。詳細は、次の第2.5.2項「問合せ文字列のパターン」を参照してください。

2.4.1 コンテキスト・パス

管理Webサービスのコンテキスト・パスは、/ovab/adminです。

2.4.2 問合せ文字列のパターン

アクション= action&param1=value&param2=value...

値の配列の場合は、問合せ文字列で同じパラメータ名を複数回使用します。次に例を示します。

アクション= action&param1=value&param2=value&param2=value...

2.4.3 アクション

第3章「APIリファレンス: 管理操作」では、管理Webサービスによって公開されるすべての操作が説明されています。レスポンスのコンテンツの列に含まれる型の詳細は、付録A「Webサービス・スキーマ」に示すスキーマで参照できる場合があります。

2.4.4 エラー処理

表2-1に、Webサービスに対して実行されるエラー処理の方法を示しています。

表2-1 Webサービスのエラー処理

エラーに対する責任

HTTPステータス・コード

レスポンスのコンテンツのXML要素

ユーザー

4xx

ErrorResult (type=USER)

サービス

5xx

ErrorResult (type=SERVICE)

注意:

エラーが発生した場合、レスポンスにコンテンツがない可能性があります(ErrorResult)。HTTPステータス・コードがサーブレット・コンテナによって生成された場合、レスポンスのコンテンツはなくなります。HTTPレスポンスがOracle Virtual Assembly Builderデプロイヤによって生成されと、予期しないサービス・エラーが発生した場合を除いて、通常はレスポンスにコンテンツが存在します。

2.4.5 XMLスキーマ

付録A「Webサービス・スキーマ」で、Webサービスのスキーマを参照できます。このスキーマには、前述のアクションの表に含まれるレスポンスのコンテンツ項目の定義が含まれます。

2.5 デプロイヤWebサービス

Webサービスに対する操作は、デプロイヤのコンテキスト・パスにHTTPリクエストをポストすることによって行われます。このリクエストには、操作に対する引数を定義するゼロ個以上のリクエスト・パラメータが続くアクションを定義するリクエスト・パラメータが含まれます。詳細は、次の第2.5.2項「問合せ文字列のパターン」を参照してください。

第2.1項「操作」に示すとおり、一部の操作で非同期アクションが開始される場合があります。Webサービスによって公開される操作は、前述の論理操作の説明で示したものと同じです。

2.5.1 コンテキスト・パス

デプロイヤWebサービスのコンテキスト・パスは、/ovab/deployerです。

2.5.2 問合せ文字列のパターン

アクション= action&param1=value&param2=value...

値の配列の場合は、問合せ文字列で同じパラメータ名を複数回使用します。次に例を示します。

アクション= action&param1=value&param2=value&param2=value...

2.5.3 アクション

第4章「APIリファレンス: デプロイヤ操作」では、デプロイヤWebサービスによって公開されるすべての操作が説明されています。レスポンスのコンテンツの列に含まれる型の詳細は、付録A「Webサービス・スキーマ」に示すスキーマで参照できる場合があります。

2.5.4 エラー処理

表2-2に、デプロイヤWebサービスに対して実行されるエラー処理の方法を示しています。

表2-2 Webサービスのエラー処理

エラーに対する責任

HTTPステータス・コード

レスポンスのコンテンツのXML要素

ユーザー

4xx

ErrorResult (type=USER)

サービス

5xx

ErrorResult (type=SERVICE)

注意:

エラーが発生した場合、レスポンスにコンテンツがない可能性があります(ErrorResult)。HTTPステータス・コードがサーブレット・コンテナによって生成された場合、レスポンスのコンテンツはなくなります。HTTPレスポンスがOracle Virtual Assembly Builderデプロイヤによって生成されと、予期しないサービス・エラーが発生した場合を除いて、通常はレスポンスにコンテンツが存在します。

2.5.5 XMLスキーマ

付録A「Webサービス・スキーマ」で、Webサービスのスキーマを参照できます。このスキーマには、前述のアクションの表に含まれるレスポンスのコンテンツ項目の定義が含まれます。

3 APIリファレンス: 管理操作

次の項では、Oracle Virtual Assembly BuilderデプロイヤWebサービスAPIにおける管理操作について説明します。

- 第3.1項「HTTP問合せ文字列におけるパラメータ」

- 第3.2項「レスポンスのコンテンツ」

- 第3.3項「AddTargetUser」

- 第3.4項「CreateTarget」

- 第3.5項「DeleteTarget」

- 第3.6項「DescribeTargetConfigurations」

- 第3.7項「DescribeTargetNames」

- 第3.8項「DescribeTargetUsers」

- 第3.9項「DescribeUserTargets」

- 第3.10項「GetDefaultTarget」

- 第3.11項「GetTargetType」

- 第3.12項「RemoveTargetUsers」

- 第3.13項「SetDefaultTarget」

3.1 HTTP問合せ文字列におけるパラメータ

次の定義は、各操作の「HTTP問合せ文字列における他のパラメータ」の項に示すパラメータに適用されます。

- 1..1 : パラメータは必須で、指定できるのは1回だけです。

- 1..* : パラメータは必須で、複数回指定できます。

- 0..1 : パラメータはオプションで、指定する場合は1回だけ指定できます。

- 0..* : パラメータはオプションで、指定する場合は複数回指定できます。

3.2 レスポンスのコンテンツ

操作のレスポンスのタイプは、Webサービス・スキーマの定義に対応します。付録A「Webサービス・スキーマ」を参照してください。

3.3 AddTargetUser

この操作によって、ターゲットに指定されたユーザーのユーザー構成情報が追加されます。AddTargetUserの目的は、ユーザーがターゲットを使用することを指定することに加えて、ターゲットと対話する際に使用されるユーザー固有の情報を、必要に応じて指定することです。

Oracle VMで使用されるデプロイヤの場合、AddTargetUserは、ターゲットに対するアクセス権限を付与するためにクラウド管理者によって呼び出されます。この場合、ターゲットの作成時にクラウド管理者が仮想化環境への資格証明を提供するため、他のプロパティは提供されません。資格証明は保護される必要があるため、一般的なデプロイヤの場合は、アプリケーション管理者がこの操作を呼び出すことは許可されません。

Oracle Exalogicにおけるデプロイヤの場合は、ターゲットを使用するアプリケーション管理者によってAddTargetUserが呼び出されます。この場合、ユーザーはターゲットにアクセスするために自分の資格証明を指定します。

HTTP問合せ文字列における他のパラメータ

target 1..1

user 1..1

ユーザーのプロパティとして他のパラメータが使用されます。

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: AddTargetUserResult

必要なロールおよび権限

Oracle VMデプロイヤでは、クラウド管理者のみがAddTargetUserの呼出しを許可されます。Oracle Exalogicデプロイヤでは、すべてのアプリケーション管理者がAddTargetUserを呼び出せます。

このような違いがあるのは、通常、資格証明はターゲット構成で提供され保護されている必要がありますが、Oracle Exalogicデプロイヤでは、ユーザーが自分の資格証明を指定するためです。

この操作を呼び出すクラウド管理者は、自身以外のユーザー名を指定できます。

3.4 CreateTarget

この操作によって、デプロイメント操作のターゲットを作成します。この呼出しには接続情報を定義する構成情報が含まれていますが、ターゲットのタイプによって、資格証明情報が含まれる場合と含まれない場合があります。特に、Oracle VM 3.0のターゲットの場合は資格証明が指定されますが、Oracle Exalogicのターゲットの場合、ここでは資格証明が指定されず、後でAddTargetUser操作で指定する必要があります。

HTTP問合せ文字列における他のパラメータ

name 1..1

type 1..1

default 0..1(デフォルト値はfalse)

ターゲットのプロパティとして、他のパラメータが使用されます。

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: CreateTargetResult

必要なロールおよび権限

この操作は、クラウド管理者によってのみ呼出し可能です。

3.5 DeleteTarget

この操作によって、デプロイメント・ターゲットおよびすべての構成情報が削除されます。このターゲットがあるユーザーまたはすべてのユーザーのデフォルトであった場合、このデフォルト設定は解除されます。.

HTTP問合せ文字列における他のパラメータ

name 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: DeleteTargetResult

必要なロールおよび権限

この操作は、クラウド管理者によってのみ呼出し可能です。

3.6 DescribeTargetConfigurations

この操作によって、ターゲットの構成情報を記述します。

HTTP問合せ文字列における他のパラメータ

target 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: DescribeTargetConfigurationsResult

必要なロールおよび権限

この操作は、クラウド管理者によってのみ呼出し可能です。

3.7 DescribeTargetNames

この操作によって、指定されたタイプのデプロイメント操作について作成されたターゲットがリストされます。

HTTP問合せ文字列における他のパラメータ

type 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: ListTargetsResult

必要なロールおよび権限

この操作は、アプリケーション管理者またはクラウド管理者によって呼出し可能です。

3.8 DescribeTargetUsers

この操作によって、指定されたターゲットのユーザーがリストされます。

HTTP問合せ文字列における他のパラメータ

target 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: DescribeTargetUsersResult

必要なロールおよび権限

この操作は、アプリケーション管理者またはクラウド管理者によって呼出し可能です。

3.9 DescribeUserTargets

この操作によって、指定されたユーザーのターゲットがリストされます。

HTTP問合せ文字列における他のパラメータ

user 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: DescribeUserTargetsResult

必要なロールおよび権限

この操作は、アプリケーション管理者またはクラウド管理者によって呼出し可能です。

3.10 GetDefaultTarget

この操作によって、すべてのユーザーに対し、そのタイプのデフォルトのターゲットが取得されます。

HTTP問合せ文字列における他のパラメータ

type 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: GetDefaultTargetResult

必要なロールおよび権限

この操作は、アプリケーション管理者またはクラウド管理者によって呼出し可能です。

3.11 GetTargetType

この操作によって、指定されたターゲット名のターゲット・タイプ(exalogicまたはovm)が取得されます。

HTTP問合せ文字列における他のパラメータ

target 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: GetTargetTypeResult

必要なロールおよび権限

この操作は、アプリケーション管理者またはクラウド管理者によって呼出し可能です。

3.12 RemoveTargetUsers

この操作によって、ターゲットからユーザーが削除されます。

HTTP問合せ文字列における他のパラメータ

target 1..1

user 1..*

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: RemoveTargetUsersResult

必要なロールおよび権限

この操作は、アプリケーション管理者またはクラウド管理者によって呼出し可能です。

クラウド管理者ロールを保持する呼出し元は、メソッドを呼び出して自分以外のユーザー名を指定できます。管理者以外のユーザーは、自分のユーザー名の指定のみが可能です。

3.13 SetDefaultTarget

この操作によって、すべてのユーザーに対し、そのタイプのすべてのターゲットに関するデフォルト・ターゲットとして、指定した名前のターゲット・タイプが設定されます。ユーザーがOracle Virtual Assembly Builder操作を呼び出し、指定されたターゲットがない、またはそのターゲット・タイプのsetUserDefaultTargetを以前に呼び出したことがない場合は、指定されたターゲットが使用されます。

HTTP問合せ文字列における他のパラメータ

name 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

レスポンスのコンテンツ

text/xml要素: SetDefaultTargetResult

必要なロールおよび権限

この操作は、クラウド管理者によってのみ呼出し可能です。

4 APIリファレンス: デプロイヤ操作

次の項では、Oracle Virtual Assembly BuilderデプロイヤWebサービスAPIにおけるデプロイヤ操作について説明します(この操作は、そこに含まれるソフトウェア・システムのアセンブリ・アーカイブおよびデプロイメントの側面を管理するために使用されます)。

- 第4.1項「HTTP問合せ文字列におけるパラメータ」

- 第4.2項「AddAssemblyUsers」

- 第4.3項「CreateAssemblyInstance」

- 第4.4項「CreateTags」

- 第4.5項「DeleteAssemblyArchive」

- 第4.6項「DeleteAssemblyInstance」

- 第4.7項「DeleteRequests」

- 第4.8項「DeleteTags」

- 第4.9項「DeployAssemblyInstance」

- 第4.10項「DescribeAssemblyArchives」

- 第4.11項「DescribeApplianceInstances」

- 第4.12項「DescribeAssemblyInstances」

- 第4.13項「DescribeAssemblyUsers」

- 第4.14項「DescribeDeployer」

- 第4.15項「DescribeRegistrations」

- 第4.16項「DescribeRequests」

- 第4.17項「DescribeScalingGroups」

- 第4.18項「DescribeTags」

- 第4.19項「DescribeTargets」

- 第4.20項「DescribeVnets」

- 第4.21項「DownloadAssemblyArchive」

- 第4.22項「DownloadAssemblyMetadata」

- 第4.23「DownloadDeploymentPlan」

- 第4.24項「RedeployAssemblyInstance」

- 第4.25項「RegisterAssemblyArchive」

- 第4.26項「RemoveAssemblyUsers」

- 第4.27項「RestartAssemblyInstance」

- 第4.28項「ScaleAppliance」

- 第4.29項「StartAssemblyInstance」

- 第4.30項「StopAssemblyInstance」

- 第4.31項「UndeployAssemblyInstance」

- 第4.32項「UnregisterAssemblyArchive」

- 第4.33項「UpdateAssemblyArchive」

- 第4.34項「UploadAssemblyArchive」

4.1 HTTP問合せ文字列におけるパラメータ

次の定義は、各操作の「HTTP問合せ文字列における他のパラメータ」の項に示すパラメータに適用されます。

- 1..1 : パラメータは必須で、指定できるのは1回だけです。

- 1..* : パラメータは必須で、複数回指定できます。

- 0..1 : パラメータはオプションで、指定する場合は1回だけ指定できます。

- 0..* : パラメータはオプションで、指定する場合は複数回指定できます。

4.2 AddAssemblyUsers

この操作によって、他のユーザーにアセンブリへのアクセス権が付与されます。この操作は、アセンブリの所有者またはクラウド管理者によってのみ呼出し可能です。所有者は、デプロイヤにアセンブリを最初にアップロードしたユーザーとして定義されます。

アクセス権が付与されるユーザーは、ターゲットにアセンブリを登録でき、アセンブリ・インスタンスを作成できます。

HTTP問合せ文字列における他のパラメータ

user 1..*

assembly.name 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: AddAssemblyUsersResult

4.3 CreateAssemblyInstance

この操作によって、アセンブリにアセンブリ・インスタンスを作成します。

HTTP問合せ文字列における他のパラメータ

assembly.name 1..1

assembly.version 1..1

target 1..1

HTTPメソッド

POST

リクエストのコンテンツ

application/octetstream

プラン・ファイル

動作

同期。

レスポンスのコンテンツ

text/xml要素: CreateAssemblyInstanceResult

4.4 CreateTags

この操作によって、リソースに1つ以上のタグを作成します。

HTTP問合せ文字列における他のパラメータ

tag 1..*

resource.id 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: CreateTagsResult

4.5 DeleteAssemblyArchive

この操作によって、デプロイヤからアセンブリ・アーカイブを削除します。この操作は、アセンブリ・アーカイブの登録がない場合にのみ実行できます。

HTTP問合せ文字列における他のパラメータ

assembly.name 1..1

assembly.version 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DeleteAssemblyArchiveResult

4.6 DeleteAssemblyInstance

この操作によって、アセンブリ・インスタンスを削除します。この操作は、アセンブリがアンデプロイ済の状態である場合にのみ実行可能です。

HTTP問合せ文字列における他のパラメータ

assembly.instance.id

1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DeleteAssemblyInstanceResult

4.7 DeleteRequests

この操作によって、以前に完了したリクエストを1つ以上削除します。

HTTP問合せ文字列における他のパラメータ

request.id 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DeleteRequestsResult

4.8 DeleteTags

この操作によって、リソースのタグを1つ以上削除します。

HTTP問合せ文字列における他のパラメータ

tag 1..*

resource.id 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DeleteTagsResult

4.9 DeployAssemblyInstance

この操作によって、アセンブリ・インスタンスをデプロイします。この操作によって、OVFおよびデプロイメント計画で定義されたデプロイメントの初期インスタンスの作成が編成されます。

HTTP問合せ文字列における他のパラメータ

assembly.instance.id 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

非同期。

レスポンスのコンテンツ

text/xml要素: DeployAssemblyInstanceResult

4.10 DescribeAssemblyArchives

この操作によって、デプロイヤの1つ以上のアセンブリを記述します。

HTTP問合せ文字列における他のパラメータ

assembly.name 1..*

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DescribeAssemblyArchivesResult

4.11 DescribeApplianceInstances

この操作によって、アセンブリの1つ以上のデプロイ済インスタンスを記述します。

HTTP問合せ文字列における他のパラメータ

assembly.instance.id 0..1

appliance.id 0..1

instance.id 0..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DescribeApplianceInstancesResult

4.12 DescribeAssemblyInstances

この操作によって、1つ以上のアセンブリ・インスタンスを記述します。

HTTP問合せ文字列における他のパラメータ

assembly.instance.id 1..*

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DescribeAssemblyInstancesResult

4.13 DescribeAssemblyUsers

この操作によって、アセンブリの1つ以上のユーザーを記述します。

HTTP問合せ文字列における他のパラメータ

assembly.name 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DescribeAssemblyUsersResult

4.14 DescribeDeployer

この操作によって、デプロイヤのバージョン情報が提供されます。

HTTP問合せ文字列における他のパラメータ

N/A

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: RedeployAssemblyInstanceResult

4.15 DescribeRegistrations

この操作によって、1つ以上のアセンブリ登録を記述します。

HTTP問合せ文字列における他のパラメータ

assembly.name 1..1

assembly.version 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DescribeRegistrationsResult

4.16 DescribeRequests

この操作によって、以前に発行された1つ以上のリクエストを記述します。

HTTP問合せ文字列における他のパラメータ

request.id 1..*

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DescribeRequestsResult

4.17 DescribeScalingGroups

この操作によって、1つ以上のスケーリング・グループを記述します。

HTTP問合せ文字列における他のパラメータ

assembly.instance.id 0..*

scalinggroup.id 0..*

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DescribeScalingGroupsResult

4.18 DescribeTags

この操作によって、リソースの1つ以上のタグを記述します。

HTTP問合せ文字列における他のパラメータ

tag 1..*

resource.id 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DescribeTagsResult

4.19 DescribeTargets

この操作によって、1つ以上のアセンブリ・インスタンス・ターゲットを記述します。

HTTP問合せ文字列における他のパラメータ

target 1..*

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DescribeTargetsResult

4.20 DescribeVnets

この操作によって、1つ以上のネットワークを記述します。

HTTP問合せ文字列における他のパラメータ

target 1..1

id 0..*

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: DescribeVnetsResult

4.21 DownloadAssemblyArchive

この操作によって、デプロイヤからアセンブリをダウンロードします。

HTTP問合せ文字列における他のパラメータ

assembly.name 1..1

assembly.version 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

application/octet-stream

アセンブリ・アーカイブ(.ovaファイル)

4.22 DownloadAssemblyMetadata

この操作によって、デプロイヤからアセンブリ・メタデータ記述子をダウンロードします。

HTTP問合せ文字列における他のパラメータ

assembly.name 1..1

assembly.version 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

application/octet-stream

アセンブリ・メタデータ(.ovfファイル)

4.23 DownloadDeploymentPlan

この操作によって、既存のデプロイメントからデプロイメント計画をダウンロードします。

HTTP問合せ文字列における他のパラメータ

assembly.instance.id 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

application/octet-stream

プラン・ファイル

4.24 RedeployAssemblyInstance

この操作によって、アセンブリ・インスタンスを再デプロイします。

HTTP問合せ文字列における他のパラメータ

assembly.instance.id 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

非同期。

レスポンスのコンテンツ

text/xml要素: RedeployAssemblyInstanceResult

4.25 RegisterAssemblyArchive

この操作によって、バックエンド仮想化システム(Oracle VMまたはOracle Exalogic)にアーカイブを登録します。

HTTP問合せ文字列における他のパラメータ

assembly.name 1..1

assembly.version 1..1

assembly.desc 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: RegisterAssemblyArchiveResult

4.26 RemoveAssemblyUsers

この操作によって、アセンブリからユーザーを削除します。

HTTP問合せ文字列における他のパラメータ

user 1..*

assembly.name 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

非同期。

レスポンスのコンテンツ

text/xml要素: RemoveAssemblyUsersResult

4.27 RestartAssemblyInstance

この操作によって、アセンブリ・インスタンスを再起動します。

HTTP問合せ文字列における他のパラメータ

assembly.instance.id 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

非同期。

レスポンスのコンテンツ

text/xml要素: RestartAssemblyInstanceResult

4.28 ScaleAppliance

この操作によって、アプライアンスをスケールします。この操作によって、アプライアンスに必要なインスタンス数を変更し、この新しい数値に応じてインスタンスを作成して開始するか、または停止して破棄します。

HTTP問合せ文字列における他のパラメータ

scalinggroup.id 1..1

target 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

非同期。

レスポンスのコンテンツ

text/xml要素: ScaleApplianceResult

4.29 StartAssemblyInstance

この操作によって、アセンブリ・インスタンスを起動します。

HTTP問合せ文字列における他のパラメータ

deployment.id 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

非同期。

レスポンスのコンテンツ

text/xml要素: StartAssemblyInstanceResult

4.30 StopAssemblyInstance

この操作によって、アセンブリ・インスタンスを停止します。

HTTP問合せ文字列における他のパラメータ

assembly.instance.id 1..1

force 0..1(デフォルトはfalse)

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

非同期。

レスポンスのコンテンツ

text/xml要素: StopAssemblyInstanceResult

4.31 UndeployAssemblyInstance

この操作によって、アセンブリ・インスタンスをアンデプロイします。

HTTP問合せ文字列における他のパラメータ

assembly.instance.id 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: UndeployAssemblyInstanceResult

4.32 UnregisterAssemblyArchive

この操作によって、バックエンド仮想化システム(ターゲット)から、登録のアーティファクトを削除します。ターゲットのこのアセンブリ・アーカイブのアセンブリ・インスタンスが存在しない場合にのみ、この操作を呼び出すことができます。

HTTP問合せ文字列における他のパラメータ

assembly.version 1..1

assembly.name 1..1

target 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: UnregisterAssemblyArchiveResult

4.33 UpdateAssemblyArchive

この操作によって、アセンブリ・アーカイブの記述情報を変更することが許可されます。

注意:

新規バージョンをアップロードするには、UploadAssemblyArchiveを再度呼び出します。

HTTP問合せ文字列における他のパラメータ

assembly.name 1..1

assembly.version 1..1

assembly.desc 1..1

HTTPメソッド

GET

リクエストのコンテンツ

N/A

動作

同期。

レスポンスのコンテンツ

text/xml要素: UpdateAssemblyArchiveResult

4.34 UploadAssemblyArchive

この操作を使用して、クライアントからデプロイヤにアセンブリ操作をアップロードします。デプロイヤはアセンブリ・アーカイブの複数のバージョンを保持するため、同じアセンブリに対しこの操作を複数回呼び出す可能性があります。

HTTP問合せ文字列における他のパラメータ

assembly.name 1..1

HTTPメソッド

POST

リクエストのコンテンツ

application/octetstream

アセンブリ・アーカイブ(.ovaファイル)

動作

同期。

レスポンスのコンテンツ

text/xml要素: UploadAssemblyArchiveResult

5 サンプル・アプリケーション

次の項では、WebサービスAPIを含むサンプル・アプリケーションについて説明します。

- 第5.1項「サンプル・アプリケーション」

5.1 サンプル・アプリケーション

次のサンプル・アプリケーションは、一般的なOracle VM 3.0プラットフォームでアセンブリ・アーカイブをデプロイするための各手順の実行方法を示しています。

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.KeyStore;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Hashtable;
import java.util.Map;
import java.util.HashMap;
import java.util.LinkedList;
import javax.net.SocketFactory;
import javax.net.ssl.*;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;

public class OvabSamples
{

private static final String OVM_URL = "https://myovm:7001";
private static final String OVM_POOL_NAME = "mypool";
private static final String OVM_ADMIN_NAME = "admin";
private static final String OVM_ADMIN_PWD = "your ovm admin password";
private static final String TARGET_NAME = "ovm-target";

private static final String KEYSTORE_FILE = "/ab_home/ab_instance/config/deployer/DeployerTrust.jks";
private static final String TRUSTSTORE_FILE = "/ab_home/ab_instance/config/deployer/DeployerTrust.jks";
private static final String TRUSTSTORE_PASSWORD = "your truststore password";

private static final String ASSEMBLY_NAME = "MyAssembly";

private static final String OVA_FILE="/archives/BaseWLS.ova";
private static final String PLAN_FILE="/plans/BaseWLSQAPlan.xml";

private static final String DEPLOYER_URL = "https://localhost:7002";
private static final String CLOUD_ADMIN_USERNAME="cloudAdmin";
private static final String CLOUD_ADMIN_PASSWORD="cloud admin password";
private static final String APPLICATION_ADMIN_USERNAME="applicationAdmin";
private static final String APPLICATION_ADMIN_PASSWORD="application administrator";

/*
* This example shows how to deploy an OVA end-to-end on the standard OVAB Deployer.
*/
public static void main(String[] args) throws Exception {

createOvmTarget();
addOvmTargetUser();
uploadAssemblyArchive();

int version = registerAssemblyArchive();
if (version >= 0) {
String assemblyInstanceId = createAssemblyInstance(version);
if (deployAssemblyInstance(assemblyInstanceId)) {
message("Creation of Assembly Instance Succeeded");
} else {
message("Creation of Assembly Instance Failed");
}
} else {
message("Registration Failed");
}

}

/*
* When using the generic Deployer, you need to define a target.
* The target includes configuration for the backend system. In
* this example, the backend system is Oracle VM 3.
*
* This operation is not used for the Oracle Exalogic Deployer as the
* one target for Exalogic systems is pre-defined.
*/
public static void createOvmTarget() throws Exception {

message("CREATE Oracle VM target "+TARGET_NAME);

// Set up connection
HttpURLConnection conn = getConnection(DEPLOYER_URL+"/ovab/admin");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
String params =
"Action=CreateTarget" +
"&target=" + TARGET_NAME +
"&type=ovm" +
"&default=false" +
"&ovm.poolName=" + OVM_POOL_NAME +
"&ovm.vmOperationTimeout=600000" +
"&ovm.vmmversion=3.0" +
"&ovm.user=" + OVM_ADMIN_NAME +
"&ovm.url=" + OVM_URL +
"&ovm.pwd=" + OVM_ADMIN_PWD;
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", "" + params.length());

// Use Cloud Admin Credentials
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedCredentials =
enc.encode(new String(CLOUD_ADMIN_USERNAME + ":" + CLOUD_ADMIN_PASSWORD).getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedCredentials);

// Make the request
try {
conn.connect();
// send the parameters
OutputStream os = conn.getOutputStream();
os.write(params.getBytes("UTF-8"));
os.close();

// Read the response
Map<String, String> info = handleSuccessResponse(conn);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}
message("Create result: "+info);
message("SUCCESS");

} catch (Exception e) {
Map<String, String> info = handleException(conn, e);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}
}

}

/*
* For Oracle VM 3, users must be authorized by the administrator to use a target
*
* For Oracle Exalogic, the user calls this operation to provide  his or her own credentials
*/
public static void addOvmTargetUser() throws Exception {

message("ADD Oracle VM target user "+TARGET_NAME);

// Set up connection
HttpURLConnection conn = getConnection(DEPLOYER_URL+"/ovab/admin");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
String params =
"Action=AddTargetUser"+
"&user=" + APPLICATION_ADMIN_USERNAME +
"&target=" + TARGET_NAME;
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", "" + params.length());

// Use Admin credentials
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedCredentials =
enc.encode(new String(CLOUD_ADMIN_USERNAME + ":" + CLOUD_ADMIN_PASSWORD).getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedCredentials);

// Make the request
try {
conn.connect();
// send the parameters
OutputStream os = conn.getOutputStream();
os.write(params.getBytes("UTF-8"));
os.close();
// Read the response
Map<String, String> info = handleSuccessResponse(conn);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}
message("SUCCESS");

} catch (Exception e) {
Map<String, String> info = handleException(conn, e);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}
}

}

/*
* This is an example of how to upload an OVA from the client to the Deployer repository.
*/
public static void uploadAssemblyArchive() throws Exception {
message("UPLOAD OVA");
// Set up connection
HttpURLConnection conn =
getConnection(DEPLOYER_URL+
"/ovab/deployer"+
"?Action=UploadAssemblyArchive"+
"&assembly.name="+ASSEMBLY_NAME+
"&assembly.desc="+"my sample assembly");

conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/octet-stream");
conn.setChunkedStreamingMode(0);

sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedCredentials =
enc.encode(new String(APPLICATION_ADMIN_USERNAME + ":" + APPLICATION_ADMIN_PASSWORD).getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedCredentials);

// Make the request
try {
conn.connect();

int bytesRead, bufferSize;
int maxBufferSize = 1 * 1024 * 1024;
byte[] buffer;
File f = new File(OVA_FILE);
FileInputStream fis = new FileInputStream(f);
bufferSize = Math.min(fis.available(), maxBufferSize);
buffer = new byte[bufferSize];
bytesRead = fis.read(buffer, 0, bufferSize);

OutputStream os = conn.getOutputStream();
while (bytesRead > 0) {
os.write(buffer, 0, bufferSize);
bufferSize = Math.min(fis.available(), maxBufferSize);
bytesRead = fis.read(buffer, 0, bufferSize);
}
fis.close();
os.flush();
os.close();

// Read the response
Map<String, String> info = handleSuccessResponse(conn);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}
message("SUCCESS");

} catch (Exception e) {
Map<String, String> info = handleException(conn, e);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}
}

}

/*
* This is an example of how to register an assembly archive from the Deployer
* repository to the backend system
*
* Registration is an asynchronous task, so this method calls
* another method to wait for the asynchronous request to complete
* before returning.
*/
public static int registerAssemblyArchive() throws Exception {

message("REGISTER Assembly Archive");

// Set up connection
String params =
"Action=RegisterAssemblyArchive"+
"&assembly.name="+ASSEMBLY_NAME+
"&target="+TARGET_NAME;
HttpURLConnection conn = getConnection(DEPLOYER_URL+"/ovab/deployer?"+params);
conn.setDoInput(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", "" + params.length());

// Use Application Admin Credentials
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedCredentials =
enc.encode(new String(APPLICATION_ADMIN_USERNAME + ":" + APPLICATION_ADMIN_PASSWORD).getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedCredentials);

// Make the request
try {
conn.connect();

// Read the response
message("    Async Registration Request Initiated");
Map<String, String> info = handleSuccessResponse(conn);
String requestId =  info.get("RegisterAssemblyArchiveResult.requestId");

// Wait for the request to complete
if (waitForRequest(requestId)) {
// return the version registered. This is used later for creating the deployment
int version = Integer.parseInt(info.get("RegisterAssemblyArchiveResult.version"));
return version;
} else {
return -1;
}

} catch (Exception e) {
Map<String, String> info = handleException(conn, e);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}
return -1;
}

}

/*
* This method shows how to wait for the completion of an asynchronous Deployer request.
* This is used by the examples for registration and deployment of an assembly archive.
*/
public static boolean waitForRequest(String id) throws Exception {

String status = "RUNNING";

while ("RUNNING".equals(status)) {
message("    Async request "+id+" is still in progress");

// Set up connection
String params =
"Action=DescribeRequests"+
"&request.id="+id;

HttpURLConnection conn = getConnection(DEPLOYER_URL+"/ovab/deployer?"+params);
conn.setDoInput(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", "" + params.length());

// Use Application Admin Credentials
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedCredentials =
enc.encode(new String(APPLICATION_ADMIN_USERNAME + ":" + APPLICATION_ADMIN_PASSWORD).getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedCredentials);

// Make the request
try {
conn.connect();

// Read the response
Map<String, String> info = handleSuccessResponse(conn);
status = info.get("DescribeRequestsResult.requestInfo.requestStatus");

try { Thread.sleep(30*1000); } catch (InterruptedException e) { }

} catch (Exception e) {
Map<String, String> info = handleException(conn, e);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}
return false;
}
}

message("    Request status is "+status);
if ("SUCCEEDED".equals(status)) {
return true;
} else {
return false;
}
}

/*
* This is an example of creating an assembly instance. This is a POST
* operation because the deployment plan is supplied in this step.
*/
public static String createAssemblyInstance(int version) throws Exception {
message("CREATE Deployment");
// Set up connection

String urlStr =
DEPLOYER_URL+
"/ovab/deployer?"+
"Action=CreateAssemblyInstance&assembly.name="+ASSEMBLY_NAME+
"&assembly.version="+version+
"&target="+TARGET_NAME;

HttpURLConnection conn =
getConnection(urlStr);

conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/octet-stream");
conn.setChunkedStreamingMode(0);

sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedCredentials =
enc.encode(new String(APPLICATION_ADMIN_USERNAME + ":" + APPLICATION_ADMIN_PASSWORD).getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedCredentials);

// Make the request
try {
conn.connect();

// Read plan document from a file and write to the web service
int bytesRead, bufferSize;
int maxBufferSize = 1 * 1024 * 1024;
byte[] buffer;
File f = new File(PLAN_FILE);
FileInputStream fis = new FileInputStream(f);
bufferSize = Math.min(fis.available(), maxBufferSize);
buffer = new byte[bufferSize];
bytesRead = fis.read(buffer, 0, bufferSize);
OutputStream os = conn.getOutputStream();
while (bytesRead > 0) {
os.write(buffer, 0, bufferSize);
bufferSize = Math.min(fis.available(), maxBufferSize);
bytesRead = fis.read(buffer, 0, bufferSize);
}
fis.close();
os.flush();
os.close();

// Read the response
Map<String, String> info = handleSuccessResponse(conn);
message("Deployment Created");
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}

String assemblyInstanceId = info.get("CreateAssemblyInstanceResult.assemblyInstanceId");
return assemblyInstanceId;

} catch (Exception e) {
Map<String, String> info = handleException(conn, e);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}

}

return null;

}

/*
* This is an example of how to deploy an Assembly Instance
*
* Deployment is an asynchronous task, so this method calls
* another method to wait for the asynchronous request to complete
* before returning.
*
*/
public static boolean deployAssemblyInstance(String assemblyInstanceId) throws Exception {

message("Deploy Assembly Instance");

// Set up connection
String params =
"Action=DeployAssemblyInstance"+
"&assembly.instance.id="+assemblyInstanceId;
HttpURLConnection conn = getConnection(DEPLOYER_URL+"/ovab/deployer?"+params);
conn.setDoInput(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", "" + params.length());

// Use Application Admin Credentials
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedCredentials =
enc.encode(new String(APPLICATION_ADMIN_USERNAME + ":" + APPLICATION_ADMIN_PASSWORD).getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedCredentials);

// Make the request
try {
conn.connect();

// Read the response
message("    Async Deployment Request Initiated");
Map<String, String> info = handleSuccessResponse(conn);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}

// Wait for the deployment to complete
String requestId = info.get("DeployAssemblyInstanceResult.requestId");
return waitForRequest(requestId);

} catch (Exception e) {
Map<String, String> info = handleException(conn, e);
for (Map.Entry<String, String> entry : info.entrySet()) {
message("    "+entry.getKey()+"="+entry.getValue());
}
return false;
}

}

/*
* This is a convenient method for creating an SSL connection to the Deployer
*/
public static HttpURLConnection getConnection(String urlString) throws Exception {
URL url = new URL(urlString);

if (false) {
return (HttpURLConnection) url.openConnection();
}

// Need to setup SSL connection
SocketFactory sf = null;
final String ALGORITHM = "sunx509";
// For Testing
// For testing
String pw = TRUSTSTORE_PASSWORD;
final char[] keystorePass = pw.toCharArray();
final char[] truststorePass = pw.toCharArray();

// create the private keyStore
KeyStore ksPrivate;
ksPrivate = KeyStore.getInstance("JKS");
ksPrivate.load(new FileInputStream(KEYSTORE_FILE), keystorePass);

// create the factory for the private key
KeyManagerFactory keyManagerFactory;
keyManagerFactory = KeyManagerFactory.getInstance(ALGORITHM);
keyManagerFactory.init(ksPrivate, keystorePass);

// create now the trusted keyStore
KeyStore ksTrusted;
ksTrusted = KeyStore.getInstance("JKS");
ksTrusted.load(new FileInputStream(TRUSTSTORE_FILE), truststorePass);

// create a trust manager factory using the same algorithm.
TrustManagerFactory trustManagerFactory;
trustManagerFactory = TrustManagerFactory.getInstance(ALGORITHM);
trustManagerFactory.init(ksTrusted);

SSLContext sslc = SSLContext.getInstance("TLS");
sslc.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null);

sf = sslc.getSocketFactory();
HttpsURLConnection httpsURLConn = (HttpsURLConnection)url.openConnection();
httpsURLConn.setSSLSocketFactory((SSLSocketFactory) sf);

httpsURLConn.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String host, SSLSession sslsession) {
return true;
}
});
return (HttpURLConnection)httpsURLConn;

}

/*
* This is a convenience method for extracting the information in the
* response from a failed Deployer Web service call.
*/
public static Map<String,String> handleException(HttpURLConnection conn, Exception e) throws IOException, SAXException {

Map<String,String> result = new HashMap<String,String>();

message("ERROR: "+e.getMessage());
message("RESPONSE CODE: "+conn.getResponseCode());
if (conn.getResponseCode() == (HttpURLConnection.HTTP_NOT_FOUND)) {
message("Invalid request, web service not found");
return result;
} else if (conn.getResponseCode() == (HttpURLConnection.HTTP_UNAUTHORIZED)) {
message("User is not authorized to perform this action");
return result;
} else if (conn.getResponseCode() == (HttpURLConnection.HTTP_FORBIDDEN)) {
message("User is not authorized to perform this action");
return result;
}

// Read the response
DataInputStream input = new DataInputStream(conn.getErrorStream());
String str;
StringBuffer response = new StringBuffer();
try {
while (null != ((str = input.readLine()))) {
response.append(str);
}
input.close();

// Parse the response
XMLReader reader = XMLReaderFactory.createXMLReader();
reader.setContentHandler(new ResponseHandler(result));
reader.parse(new InputSource(new StringReader(response.toString())));

} catch (Exception e2) {
message("Failure reading error stream: "+e2);
}

return result;
}

/*
* This is a convenience method for extracting the information in the
* response from a successful Deployer Web service call.
*/
public static Map<String,String> handleSuccessResponse(HttpURLConnection conn) throws IOException, SAXException {
HashMap<String,String> result = new HashMap<String,String>();
DataInputStream input = new DataInputStream(conn.getInputStream());
String str;
StringBuffer response = new StringBuffer();
while (null != ((str = input.readLine()))) {
response.append(str);
}
input.close();

// Parse the response
XMLReader reader = XMLReaderFactory.createXMLReader();
reader.setContentHandler(new ResponseHandler(result));
reader.parse(new InputSource(new StringReader(response.toString())));

return result;
}

/*
* The responses returned from the Deployer Web service are XML
* documents. This handler translates the structure of the document
* into a Map which is useful for picking out certain element.  It
* also prints the entries to System.out.
*/
public static class ResponseHandler extends DefaultHandler {

private Map<String,String> info;

public ResponseHandler(Map<String,String> info) {
this.info = info;
}

LinkedList<String> elements = new LinkedList<String>();

public void startElement(String namespaceURI, String elementName, String qName, Attributes attrs) {
elements.add(elementName);
}

public void characters(char ch[], int start, int length) {
String str = new String(ch,start,length);

//message(String.format("    %s=%s", getCurrentKey(), str));
info.put(getCurrentKey(), str);
}

private String getCurrentKey() {
String result = null;
for (String s : elements) {
if (result != null) {
result = result + "." +s;
} else {
result = s;
}
}
return result;
}

public void endElement(String namespaceURI, String elementName, String qName) {
elements.removeLast();
}
}

private static void message(String msg) {
System.out.println("["+new Date(System.currentTimeMillis())+"] "+msg);
}

}

A Webサービス・スキーマ

この付録では、デプロイヤWebサービスによって返されるレスポンス情報のスキーマが定義されています。このスキーマで定義されるタイプは、このマニュアルの前半にある章の「レスポンスのコンテンツ」の説明で参照されています。

- 第A.1項「スキーマ」

A.1 スキーマ

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.oracle.com/ovab/deployer/webservice/bindings"
xmlns:tns="http://www.oracle.com/ovab/deployer/webservice/bindings"
elementFormDefault="qualified">
<xsd:element name="Path">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="InstancePath">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="AppliancePath">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Paths">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="tns:Path" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AssemblyInstanceId">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="AssemblyInstanceState">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string"/>
<xsd:attribute name="state" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="UploadAssemblyArchiveResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="tns:nameType"></xsd:element>
<xsd:element name="version" type="tns:versionType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeleteAssemblyArchiveResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="tns:nameType"></xsd:element>
<xsd:element name="versions" type="tns:VersionsType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ErrorResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="code">
<xsd:simpleType>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="type">
<xsd:simpleType>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="message">
<xsd:simpleType>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="cause">
<xsd:simpleType>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="action">
<xsd:simpleType>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="VersionsType">
<xsd:sequence>
<xsd:element name="version" maxOccurs="unbounded" type="tns:versionType"></xsd:element>
</xsd:sequence>
</xsd:complexType>

<xsd:element name="RegisterAssemblyArchiveResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" type="tns:requestIdType"></xsd:element>
<xsd:element name="name" type="tns:nameType"></xsd:element>
<xsd:element name="version" type="tns:versionType"></xsd:element>
<xsd:element name="targetName" type="tns:targetNameType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UnregisterAssemblyArchiveResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" type="tns:requestIdType"></xsd:element>
<xsd:element name="name" type="tns:nameType"></xsd:element>
<xsd:element name="version" type="tns:versionType"></xsd:element>
<xsd:element name="targetName" type="tns:targetNameType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="requestIdType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="nameType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="versionType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:element name="DescribeAssemblyArchivesResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="assembly" type="tns:Assembly" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="AssemblyVersion">
<xsd:sequence>
<xsd:element name="version" type="tns:versionType"></xsd:element>
<xsd:element name="description" type="tns:descriptionType"></xsd:element>
<xsd:element name="appliances">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="appliance" type="xsd:string" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Assembly">
<xsd:sequence>
<xsd:element name="name" type="tns:nameType"></xsd:element>
<xsd:element name="versions">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="version" type="tns:AssemblyVersion" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="plans">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="plan" maxOccurs="unbounded" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="descriptionType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:element name="UpdateAssemblyArchiveResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="tns:nameType"></xsd:element>
<xsd:element name="version" type="tns:versionType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="assemblyInstanceIdType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:element name="CreateAssemblyInstanceResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="assemblyInstanceId" type="tns:assemblyInstanceIdType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeleteAssemblyInstanceResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="assemblyInstanceId" type="tns:assemblyInstanceIdType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeployAssemblyInstanceResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" type="tns:requestIdType"></xsd:element>
<xsd:element name="assemblyInstanceId" type="tns:assemblyInstanceIdType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UndeployAssemblyInstanceResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" type="tns:requestIdType"></xsd:element>
<xsd:element name="assemblyInstanceId" type="tns:assemblyInstanceIdType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="StartAssemblyInstanceResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" type="tns:requestIdType"></xsd:element>
<xsd:element name="assemblyInstanceId" type="tns:assemblyInstanceIdType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="StopAssemblyInstanceResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" type="tns:requestIdType"></xsd:element>
<xsd:element name="assemblyInstanceId" type="tns:assemblyInstanceIdType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="instanceIdType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:complexType name="InstancesType">
<xsd:sequence>
<xsd:element name="instanceId" type="tns:instanceIdType" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="targetNameType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:complexType name="Instance">
<xsd:sequence>
<xsd:element name="assemblyInstanceId" type="xsd:string"></xsd:element>
<xsd:element name="instanceId" type="xsd:string"></xsd:element>
<xsd:element name="instanceState" type="xsd:string"></xsd:element>
<xsd:element name="applianceId" type="xsd:string"></xsd:element>
<xsd:element name="appliancePath" type="xsd:string"></xsd:element>
<xsd:element name="vmName" type="xsd:string"></xsd:element>
<xsd:element name="ipaddresses">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ipaddress" maxOccurs="unbounded" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="vnets">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="vnet" maxOccurs="unbounded" type="tns:Vnet"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="volumes">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="volume" maxOccurs="unbounded" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="meteringMap">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="metering" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"></xsd:element>
<xsd:element name="value" type="xsd:long"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AssemblyInstance">
<xsd:sequence>
<xsd:element name="assemblyInstanceId" type="xsd:string"></xsd:element>
<xsd:element name="assemblyName" type="xsd:string"></xsd:element>
<xsd:element name="assemblyVersion" type="xsd:string"></xsd:element>
<xsd:element name="state" type="xsd:string"></xsd:element>
<xsd:element name="targetName" type="xsd:string"></xsd:element>
<xsd:element name="appliances">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="appliance" type="xsd:string" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DescribeAssemblyInstancesResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="assemblyInstance" type="tns:AssemblyInstance" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="RequestInfo">
<xsd:sequence>
<xsd:element name="requestId" type="tns:requestIdType"></xsd:element>
<xsd:element name="requestStatus" type="xsd:string"></xsd:element>
<xsd:element name="requestType" type="xsd:string"></xsd:element>
<xsd:element name="operationType" type="xsd:string"></xsd:element>
<xsd:element name="assemblyName" type="xsd:string"></xsd:element>
<xsd:element name="message" type="xsd:string"></xsd:element>
<xsd:element name="creationTimeStamp" type="xsd:long"></xsd:element>
<xsd:element name="completionTimeStamp" type="xsd:long"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DescribeRequestsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestInfo" type="tns:RequestInfo" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DescribeDeployerResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="specificationVersion" type="xsd:string"></xsd:element>
<xsd:element name="implementationVersion" type="xsd:string"></xsd:element>
<xsd:element name="assemblyStoreFreeSpace" type="xsd:long"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreateTargetResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="target" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DescribeTargetNamesResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="target" type="xsd:string" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeleteTargetResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="target" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SetDefaultTargetResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="targetName" type="xsd:string"></xsd:element>
<xsd:element name="targetType" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DescribeApplianceInstancesResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="instance" type="tns:Instance" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AddTargetUserResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="target" type="xsd:string"></xsd:element>
<xsd:element name="user" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RemoveTargetUsersResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="target" type="xsd:string"></xsd:element>
<xsd:element name="users">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="user" type="xsd:string" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="Properties">
<xsd:sequence>
<xsd:element name="entry" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="key" minOccurs="1" maxOccurs="1" type="xsd:string"/>
<xsd:element name="value" minOccurs="1" maxOccurs="1" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TargetUser">
<xsd:sequence>
<xsd:element name="userName" type="xsd:string"></xsd:element>
<xsd:element name="targetProperties" type="tns:Properties"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DescribeTargetUsersResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="user" type="tns:TargetUser" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DescribeUserTargetsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="target" type="xsd:string" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetTargetTypeResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="targetType" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetDefaultTargetResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="targetName" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ScalingGroup">
<xsd:sequence>
<xsd:element name="scalingGroupId" type="xsd:string"></xsd:element>
<xsd:element name="min" type="xsd:int"></xsd:element>
<xsd:element name="max" type="xsd:int"></xsd:element>
<xsd:element name="target" type="xsd:int"></xsd:element>
<xsd:element name="current" type="xsd:int"></xsd:element>
<xsd:element name="initial" type="xsd:int"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DescribeScalingGroupsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="scalingGroups" type="tns:ScalingGroup" minOccurs="0" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ScaleApplianceResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" type="tns:requestIdType"></xsd:element>
<xsd:element name="scalingGroupId" type="xsd:string"></xsd:element>
<xsd:element name="assemblyInstanceId" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="Vnet">
<xsd:sequence>
<xsd:element name="vnetId" type="xsd:string"></xsd:element>
<xsd:element name="vnetName" type="xsd:string"></xsd:element>
<xsd:element name="netmask" type="xsd:string"></xsd:element>
<xsd:element name="private" type="xsd:boolean"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DescribeVnetsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="vnet" type="tns:Vnet" minOccurs="0" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="Target">
<xsd:sequence>
<xsd:element name="targetName" type="tns:targetNameType"></xsd:element>
<xsd:element name="targetType" type="xsd:string"></xsd:element>
<xsd:element name="status" type="xsd:string"></xsd:element>
<xsd:element name="vnetNames">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="vnetName" maxOccurs="unbounded" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="volumeNames">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="volumeName" maxOccurs="unbounded" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="availabilityMap">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="metering" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"></xsd:element>
<xsd:element name="value" type="xsd:long"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DescribeTargetsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="target" type="tns:Target" minOccurs="0" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="RegistrationInfo">
<xsd:sequence>
<xsd:element name="assemblyName" type="xsd:string"></xsd:element>
<xsd:element name="assemblyVersion" type="xsd:string"></xsd:element>
<xsd:element name="targetName" type="xsd:string"></xsd:element>
<xsd:element name="registrationId" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DescribeRegistrationsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="registration" type="tns:RegistrationInfo" minOccurs="0" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="TargetConfiguration">
<xsd:sequence>
<xsd:element name="targetName" type="xsd:string"></xsd:element>
<xsd:element name="targetType" type="xsd:string"></xsd:element>
<xsd:element name="properties">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="property" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"></xsd:element>
<xsd:element name="value" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DescribeTargetConfigurationsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="targetConfiguration" type="tns:TargetConfiguration" minOccurs="0" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RestartAssemblyInstanceResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" type="tns:requestIdType"></xsd:element>
<xsd:element name="assemblyInstanceId" type="tns:assemblyInstanceIdType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RedeployAssemblyInstanceResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" type="tns:requestIdType"></xsd:element>
<xsd:element name="assemblyInstanceId" type="tns:assemblyInstanceIdType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeleteRequestsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestsPurged" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DescribeAssemblyUsersResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="assemblyName" type="xsd:string"></xsd:element>
<xsd:element name="users" type="xsd:string" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AddAssemblyUsersResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="assemblyName" type="xsd:string"></xsd:element>
<xsd:element name="users" type="xsd:string" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RemoveAssemblyUsersResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="assemblyName" type="xsd:string"></xsd:element>
<xsd:element name="users" type="xsd:string" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreateTagsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="resources" type="xsd:string" maxOccurs="unbounded"></xsd:element>
<xsd:element name="tags">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="tag" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="key" type="xsd:string"></xsd:element>
<xsd:element name="value" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeleteTagsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="resources" type="xsd:string" maxOccurs="unbounded"></xsd:element>
<xsd:element name="tags" type="xsd:string" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DescribeTagsResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="tags">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="tag" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="key" type="xsd:string"></xsd:element>
<xsd:element name="value" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UpdateTargetResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="targetName" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeleteFailedApplianceInstancesResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="applianceId" type="xsd:string"></xsd:element>
<xsd:element name="applianceInstanceIds" type="xsd:string" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

索引
O

O

Oracle Virtual Assembly Builder

ライフサイクル, 1.2.2

オラクル社の法律上の注意点について

コピーライトについて

Copyright © 1994-2013, Oracle and/or its affiliates.All rights reserved.

商標と登録商標について

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

制限付権利

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

ドラフトのアルファ版およびベータ版ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。オラクル社およびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。