Liberty をセットアップするための Platform as a Service 環境の考慮事項
IBM® Bluemix®、Pivotal Cloud Foundry、OpenShift Enterprise などの Platform as a Service (PaaS) 環境では、アプリケーション・インスタンスの管理およびモニターを行うことができますが、いくつかの制約事項もあります。 PaaS 環境の本来の性質により、一部の Liberty フィーチャーは、冗長であったり、動作が異なったりするため、サポートされません。
Liberty サーバー管理についての制約事項
すべての Liberty サーバー JVM インスタンスは、PaaS インフラストラクチャーによって開始、停止、および管理されるため、 Liberty 集合に関連するフィーチャーは PaaS 環境には適合しません。Liberty Admin Center フィーチャーは、 集合コントローラーなしでアプリケーションをスケーリングして複数 JVM インスタンスを使用するようにできる PaaS 環境で使用するようには設計されていません。このトポロジーでは、Admin Center への要求は、実行中インスタンスのいずれかに送付され、要求が実行されるサーバーに対してのみ可視になります。
- adminCenter-1.0
- clusterMember-1.0
- collectiveController-1.0
- collectiveMember-1.0
- dynamicRouting-1.0
- healthAnalyzer-1.0
- healthManager-1.0
- scalingController-1.0
- scalingMember-1.0
ファイル・システムについての制約事項
ほとんどの PaaS 環境は、アプリケーションに対して永続ローカル・ファイル・システムを提供しません。このことによる影響は、Liberty では、ローカルにデータを書き込み、サーバー JVM 再始動があってもデータが永続的に存在すると想定している、サーバー内のアプリケーションおよびコンポーネントの両方に及びます。
Liberty トランザクション・マネージャーは、複数のリソース・マネージャーがトランザクションに関係する場合、 ログ・ファイルをローカル・ファイル・システムに書き込みます。JVM 障害があり、再始動した後にログが使用可能でない場合、トランザクションを自動的に完了することはできず、手動でトランザクションを解決することで、 データをアンロックし、複数リソース・マネージャー間で一貫性のあるものにする必要があります。このシナリオを回避するため、Liberty ビルドパックまたはカートリッジは、トランザクション・ログ・レコードが書き込まれないようにし、 アプリケーションに例外を上げて 2 つ目のリソースの参加を防止します。結果として、 単一の XA リソースと共にトランザクションを使用することは可能なままですが、2 つ目のトランザクション・リソースはトランザクションに参加できません。また、 Web Services アトミック・トランザクションは、常にログ・レコードを書き込むため、使用することはできません。
-Dcom.ibm.tx.jta.disable2PC=true
- wsAtomicTransaction-1.2
- アプリケーションの動作に依存して、トランザクションを使用するその他のフィーチャー
ネットワークについての制約事項
- appClientSupport-1.0
- appSecurityClient-1.0
- ejbRemote-3.2
ルーターでの SSL 終端といったシチュエーションでは、Liberty は、元のクライアント要求を記述するために HTTP ヘッダーを利用します。PaaS 環境で SSL を使用している場合、 PaaS ルーターによってヘッダーが設定される必要があります。IBM Bluemix では、これらのヘッダーは既に設定されているため、 ssl-1.0 フィーチャーおよびそれに依存する任意のフィーチャーを変更せずに使用できます。その他の PaaS 環境において想定通りの動作を実現するには、 NGINX and WebSphere® Application Server で説明されているように、これらのヘッダーを設定するようにルーターを構成する必要がある場合があります。
- ssl-1.0
- ssl-1.0 に依存するその他のフィーチャー (Secure Socket Layerの『このフィーチャーを使用可能にするフィーチャー』セクションにリストされています)
Liberty Swagger プロセッサー
Cloud Foundry 環境では、ユーザー・インターフェースなどの Liberty の Swagger プロセッサーは、VCAP_APPLICATION 環境変数の有無を確認します。 これは、URI 配列の最初のエレメントを API ホストとして使用します。