Comments
Transcript
リソース管理 1 日本アイ・ビー・エム(株) WebSphereテクニカル・セールス第一
リソース管理 日本アイ・ビー・エム(株) WebSphereテクニカル・セールス第一 植田 毅 [email protected] © 2008 IBM Corporation 1 Disclaimer WAS WAS V7 V7 W/S W/S 当資料で提供する技術情報は、各製品の出荷前コードに基づくものを含みます。 この資料は日本アイ・ビー・エム株式会社ならびに 日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレ ビューを受けておりません。 当資料は、資料内で説明されている製品の仕様を保証するものではありません。 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2008年 10月現在の情報であり、製品の新しいリリース、PTFなどによって動作、仕様が変 わる可能性があるのでご注意下さい。 今後国内で提供されるリリース情報は、対応する発表レターなどでご確認くださ い。 WebSphere Application Server V7 Announcement Workshop 2008 #2 © IBM Corporation. 2 WAS WAS V7 V7 W/S W/S Agenda DB2との接続 SQLjのデプロイの改善 pureQueryのサポート DB2 Trusted Contextのサポート 付録 その他の新機能 JMSクライアント Single Instanceリソース・アダプター WBIリソース・アダプター JCAエンドポイント用MBean 拡張DB2データ・ソースのサポート DB2 クライアント・リルートの設定 非推奨、削除された機能 メッセージング関連 WebSphere MQ連携の強化 SIBus-WebSphere MQ連携の強化 シンプルな管理操作 MDBの管理機能の強化 Transaction Management 分離された共用ライブラリー Summary Reference WebSphere Application Server V7 Announcement Workshop 2008 #3 © IBM Corporation. 3 WAS WAS V7 V7 W/S W/S DB2との接続 WebSphere Application Server V7 Announcement Workshop 2008 WAS WAS V7 V7 W/S W/S #4 © IBM Corporation. 4 DB2との接続 WAS WAS V7 V7 W/S W/S SQLjのデプロイの改善 PureQueryサポート DB2 Trusted context サポート 拡張DB2データ・ソースのサポート DB2 クライアント・リルートの設定 非推奨、削除された機能 WebSphere Application Server V7 Announcement Workshop 2008 #5 © IBM Corporation. DB2との接続では、6個のトピックについて説明します。 5 SQLjのデプロイの改善(1/2) WAS WAS V7 V7 W/S W/S V6.1では、SQLjを構成するのに複数ステップが必要 アプリケーションのデプロイ デプロイしたEARファイルのUnJar EARファイル内の.serファイルをカスタマイズ/バインドする EARファイルを再度パッケージ化する デプロイオプションなしで、EARファイルを再度インストールする V7構成 New v7 管理コンソールでのインストール 管理コンソールで、再インストールすることなく、 DB2 SQLj profileをカスタマイズ可 能 WebSphere Application Server V7 Announcement Workshop 2008 #6 © IBM Corporation. SQLjとは、Javaで静的SQLを埋め込み型SQLとして記述・実行するための言語仕様です。 WAS V7以前は、SQLjアプリケーションのインストール、デプロイ、カスタマイズ、バインディング作 業は、管理コンソールやスクリプトが一連の作業方法を提供していなかったため、難しい作業でし た。WAS V7では、DB2 SQLjプロファイルのカスタマイズ管理が管理コンソールやスクリプトでサ ポートされました。 6 SQLjのデプロイの改善(2/2):管理コンソール WAS WAS V7 V7 W/S W/S エンタープライズ・アプリケーション > アプリケーション名 > SQLJプロファイル およびpureQueryバインド・ファイル プロファイルのカスタマイズと バインドが可能 WebSphere Application Server V7 Announcement Workshop 2008 #7 © IBM Corporation. エンタープライズ・アプリケーション > アプリケーション名 > データベース・プロファイル > SQLJプ ロファイルおよびpureQueryバインド・ファイル を選択する。 7 pureQueryサポート New v7 WAS WAS V7 V7 W/S W/S pureQueryとは pureQueryは、IBMの新しい高パフォーマンスのJavaのデータ・アクセス・テク ノロジー Eclipse IDE(Integrated Development Environment)に統合し、DBのデータにア クセスするJavaアプリケーションの開発、保守をシンプルにする 標準SQLで、DBやインメモリーJavaオブジェクトへのアクセスを提供する DBからオブジェクトへの自動変換を実行する pureQueryのオブジェクト化プロセス データベース駆動型オブジェクト化(DDO) クエリー駆動型オブジェクト化(QUD) オブジェクト・リレーショナル・マッピング(ORM) WASで動作させるには、Data Studio pureQuery runtime Version1.2のイ ンストールが必要 JPAは、DB2 pureQueryランタイム環境をオプションサポート WebSphere Application Server V7 Announcement Workshop 2008 #8 © IBM Corporation. pureQueryを使用する利点は、アプリケーション・ライフ・サイクルの開発、デプロイ、運用、管理の 生産性を向上させます。 pureQueryは、ツールや、API、ランタイム環境を使用して、データベースやインメモリーのJavaオ ブジェクトにアクセスします。 開発、デプロイ、運用、管理にわたる、Javaのデータアクセス・ライフサイクルを改善します。 pureQueryは、IBMの問題管理戦略のキー・コンポーネントです。 WAS V7 InfoCenter「Data Studio pureQuery」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere. nd.doc/info/ae/ae/tejb_jpapdq.html (参考)pureQueryについて学ぶ http://www.ibm.com/developerworks/jp/java/db2/library/techarticle/dm0708ahadian/index.html 8 DB2 Trusted Context(1/3) WAS WAS V7 V7 W/S W/S Trusted Contextとは データベースと中間層サーバーのような外部エンティティ(アプリケーション・ サーバーなど)との間の信頼関係を定義するデータベース・オブジェクト 前提条件 DB2 v9.5以降 (AIX, HP-UX, Linux, Solaris, Windows) DB2 v9.1以降 (z/OS) WAS v6.1.0.11以降 WebSphere Application Server V7 Announcement Workshop 2008 #9 © IBM Corporation. Trusted Contextとは、データベースと中間層サーバーのような外部エンティティ(アプリケーション・ サーバーなど)との間の信頼関係を定義するデータベース・オブジェクトです。Trasted Contextを 利用するには、WAS V6.1.0.11以降、DB2 V9.5以降(AIX、HP-UX、Linux、Solaris、Windows)、 DB2 V9.1以降(z/OS)を使用する必要があります。 9 WAS WAS V7 V7 W/S W/S DB2 Trusted Context(2/3) Trusted Contextのメリット 監査機能の向上 アプリケーション・ロジックごとに実行ユーザーを切り替える(スイッチする)ことで、実行ユー ザー毎のアクセス監査が可能 明示的なtrusted connection時のみ 特権や権限の適切な付与 特権の付与に対するコントロール強化ユーザーIDに加え、IPアドレスも照合する DB2サーバーに接続するための許可ID乱用の防止 IP:xxx.xxx.xxx.xx Mary Switchユーザー 照合 アプリケー ション Boss TABLE A db2inst1 Mary Boss クライアント クライアント Trusted Context appServer •SYSTEM AUTHID APPUSER •ADDRESS ‘XXX.XXX.XXX.XX’ •ENCRYPTION ‘HIGH’ WITH USE FOR PUBLIC WITHOUT AUTHENTICATION TRUSTED CONNECTIONと確認 DBクライアント DB DBクライアント クライアント DBクライアント DBサーバー DB DBサーバー サーバー DBサーバー WebSphere Application Server V7 Announcement Workshop 2008 # 10 © IBM Corporation. これまでのDBとの接続では、クライアントで誰が使用していても、DBとの接続では、アプリケーショ ン・ユーザーとして接続されていました。このため、DBではエンドユーザーが誰なのか判別できず、 エンドユーザーの誰がアクセスしたのか監査が不可能でした。 Trusted Contextを使うと、アプリケーションごとに実行ユーザーを切り替える(スイッチする)ことで、 実行ユーザー毎のアクセス監査が可能になります。 10 DB2 Trusted Context(3/3):管理コンソール WAS WAS V7 V7 W/S W/S 管理コンソールでの指定方法 インストール時:「リソース参照をリソースにマップ」のステップ インストール済みのアプリケーション:アプリケーション名 > 参照 > リソース参照 「リソース認証方式の変更」で 変更可能 「リソース認証方式の変更」で 構成可能 WebSphere Application Server V7 Announcement Workshop 2008 # 11 © IBM Corporation. WAS V6.1.0.11以降では、jaclの実行やカスタム・プロパティーの設定が必要でしたが、WAS V7 からはこれらの処理は必要なくなりました。 WAS V7 InfoCenter「Enabling trusted context for DB2 databases」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ ae/ae/tdat_trustedcontext.html WAS V6.x InfoCenter「 DB2データベースに対するトラステッド・コンテキストの使用可能化」 http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.nd.doc/info/ ae/ae/tdat_trustedcontext.html 11 拡張DB2データ・ソースのサポート(1/3) New v7 WAS WAS V7 V7 W/S W/S WAS V7は拡張DB2データ・ソース(Heterogeneous pool(異種プール))をサポート 利用可能JDBCプロバイダー DB2 Universal JDBC driver DB2 Using IBM JCC driver 特徴 データ・ソースについて、アプリケーション毎に異なるカスタム・プロパティーや非コ ア・プロパティーをオーバーライド可能 プロパティーが異なっていても、アプリケーションがコネクション・プールを共用可能 (オプション)get/use/close/接続パターンの最適化が可能 利点 コネクションの共用により、接続するコネクション数を抑えることができる。 WASのメモリー消費を抑えられる DBのメモリー消費を抑えられる パフォーマンスの向上 WebSphere Application Server V7 Announcement Workshop 2008 # 12 © IBM Corporation. DB2 Universal JDBC Driver、DB2 Using IBM JCC Driverは、拡張DB2データ・ソースをサポート します。 同じデータ・ソースを利用するアプリケーションは、アプリケーション毎に非コアなデータ・ソース・プ ロパティーを設定することができます。アプリケーションが異なるデータ・ソース・プロパティーを設定 していても、コネクション・プールを共用することができます。コネクションの共用により、接続するコ ネクション数を抑えることができ、WAS、DBの両方でメモリー消費を抑えることができます。 また、条件によって2phase-commitの利用を抑えられる場合、パフォーマンスの向上がはかれます。 12 拡張DB2データ・ソースのサポート(2/3):管理コンソール WAS WAS V7 V7 W/S W/S 拡張DB2データ・ソース・プロパティーの設定 アプリケーション名 > リソース参照 > 拡張プロパティー CMP使用の場合 アプリケーション名 > 2.xエンティティーBeanが含まれたモジュールのデフォル ト・データ・ソース・マッピングを提供 > 拡張プロパティー 拡張プロパティーでは、データ・ソースに共通の値は設定できない 拡張データ・ソース・プロパティーの設定 拡張データ・ソースをサポートして いない場合、警告メッセージが出力 WebSphere Application Server V7 Announcement Workshop 2008 # 13 © IBM Corporation. 拡張データ・ソース・プロパティーでは、名前、値のペアを指定します。アプリケーションが必要なカ スタム・プロパティー等を設定します。(例currentSchema、clientApplicationInformationなど) wasはアプリケーション・サーバーで事前定義されているプロパティー用に予約されているため、プ ロパティー名の接頭部として使用しないでください。 拡張データ・ソース・プロパティーでは、データ・ソースに共通の以下の値を上書きできません。 accountingInterval、dataSourceName、databaseName、kerberosServerPrincipal、 loginTimeout、logWriter、password、pkList、planName、portNumber、readOnly、 securityMechanism、serverName、user WAS V7 InfoCenter「Extend DB2 data source definitions at the application level」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ ae/ae/tdat_heteropool.html 13 拡張DB2データ・ソースのサポート(3/3):管理コンソール WAS WAS V7 V7 W/S W/S リソース > JDBC > データ・ソース > データソース名 > WebSphere Application Serverデータ・ソース・プロパティー 異機種混合プールで取得/使用/クローズ/接続 パターンの最適化にチェック WebSphere Application Server V7 Announcement Workshop 2008 # 14 © IBM Corporation. 取得/使用/クローズ/接続パターンを最適化するには、管理コンソールで、「異機種混合プー ルで取得/使用/クローズ/接続パターンの最適化」にチェックを入れます。 この指定により、アプリケーション・サーバーが取得/使用/クローズ/接続パターンを使用するこ とを指定します。アプリケーション・サーバーの接続プーリングは、同じトランザクション内の接続を 共用することができます。1つのトランザクションの間、1つの接続を共用することができます。 14 クライアント・リルート(1/3) WAS WAS V7 V7 W/S W/S 機能説明 接続先DBに障害が発生した場合、Client側で接続先を切り替える機能 前提 DB2 バージョン DB2 for z/OS Version 9.1 or later DB2 Version 9.5 or later (Linux, HP-UX, Solaris,Windows) DB2が以下いずれかの冗長構成を取っている Enterprise Server Edition データベース・パーティショニング(DPF) Data Propagator (DPROPR) レプリケーション HACMP HADR WASへのDB2データ・ソースの設定 切り替え時 接続先の切り替えが完了すると、クライアントにはSQLCode -4498が発生 例外はStaleConnectionExceptionにマップされる Purge PolicyをEntierPoolに設定しておくと、1つの接続オブジェクトでClient Reroute が発生すると、InFreePoolの接続オブジェクトをすべて解放可能 アプリケーション内でトランザクションをリトライする時、getConnection()をやり直す 必要がある。 WebSphere Application Server V7 Announcement Workshop 2008 # 15 © IBM Corporation. クライアント・リルート機能は、DB2サーバーの障害発生時、DB2クライアントからの接続先を自動的 に他のサーバーへ切り替えることができます。 クライアント・リルート機能を使用することで、アプリケーションは切断されてしまったDBサーバーへ の再接続処理を行う必要がなくなります。 15 WAS WAS V7 V7 W/S W/S クライアント・リルート(2/3) New v7 管理コンソールで、DB2の代替サーバー情報を設定可能 代替サーバー名、代替ポート番号、クライアント転送の再試行間隔、クライアント転送の最大再試行 回数などを設定可能 (オプション)「クライアント転送サーバー・リストJNDI名」を指定すると、転送情報(プライマリー DB、代替DB)をnamespaceにバインド可能 このオプションは、Type4ドライバーのみで利用可能 転送情報を複数のJVMにわたって持続させる 最初の接続失敗時に、代替サーバーのロケーションを提供する V7以前は、以下の作業が必要 アプリケーションロジックでDB2ClientRerouteServerListオブジェクトを生成し、JNDI名をオブジェクトにバインド clientRerouteServerListJNDINameをカスタム・プロパティーに登録 利点 最初の接続で、プライマリーDBがダウンしていてもリルート情報を元に、代替DBサーバーに接続可能 プライマリーDBがダウン 時もリルート可能 プライマリーDBに接続で きないと、リルートもでき ない ①接続 プライマリー DB ③メモリー上で保持 Application Server JDBC Driver ②クライアント・リルート 情報を渡す クライアント・リルート 情報を保持 プライマリー DB ①接続不可 WAS V7 JDBC Driver 代替DB ④プライマリーDBダウン時に クライアント・リルート情報から接続 代替DB ②保持したクライアント・ リルート情報から接続 WebSphere Application Server V7 Announcement Workshop 2008 # 16 © IBM Corporation. WAS V7から、管理コンソールでDB2の代替サーバー情報を設定することができます。 オプションで、Type4ドライバーでのみ、転送情報(プライマリーDB情報、代替DB情報)を namespaceにバインドすることも可能です。 WAS V7 InfoCenter「Configuring client reroute for applications that use DB2 databases」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.multiplatf orm.doc/info/ae/ae/tdat_clientreroute.html 16 クライアント・リルート(3/3):管理コンソール WAS WAS V7 V7 W/S W/S リソース > JDBC > データ・ソース > データ・ソース名 > WebSphere Application Server データ・ソース・プロパティーで設定可能 DB2自動クライアント転送オプション に値を設定 WebSphere Application Server V7 Announcement Workshop 2008 # 17 © IBM Corporation. 「クライアント転送サーバー・リストJDNI名」を指定すると、namespaceにプライマリーDB情報、代替 サーバー情報をバインドします。 「JNDIからのアンバインド・クライアント転送リスト」にチェックを入れると、テスト接続のみJNDIが利 用され、テスト接続後はnamespaceからアンバインドされます。 17 非推奨、削除された機能 WAS WAS V7 V7 W/S W/S JDBCレガシーType2ドライバーが削除 Support for DB2 legacy CLICLI-based Type 2 JDBC Drivers is removed from IBM WebSphere Application Server Version 7.0 http://www-01.ibm.com/support/docview.wss?uid=swg21316317 コネクションの妥当性確認 StaleConnectionExceptionをCatchする実装から、JDBC4.0のisValidの利用 WebSphere Application Server V7 Announcement Workshop 2008 # 18 © IBM Corporation. 注意点など詳しくは、13 マイグレーションのセッションを確認してください。 18 WAS WAS V7 V7 W/S W/S メッセージング関連 WebSphere Application Server V7 Announcement Workshop 2008 WAS WAS V7 V7 W/S W/S # 19 © IBM Corporation. 19 メッセージング関連 WAS WAS V7 V7 W/S W/S WebSphere MQ連携の強化 SIBus-WebSphere MQ連携の強化 シンプルな管理操作 MDBの管理機能の強化 WebSphere Application Server V7 Announcement Workshop 2008 # 20 © IBM Corporation. メッセージング関連では、4個のトピックについて説明します。 20 WAS WAS V7 V7 W/S W/S WebSphere MQ連携の強化 WebSphere MQのJCAリソース・アダプターを提供 New v7 JMSリソース構成のためのパネルとコマンド 接続ファクトリー、アクティベーション・スペックなど WMQとの同期的なsend/receive 双方向メッセージング JMSText メッセージ キュー・マネージャーへのクライアント接続が可能 アクティベーション・スペックを利用してMessage-Driven Bean にメッセージを配布するこ とが可能 リソース > JMS > アクティベーション・スペック で設定可能 アクティベーション・スペックで WebSphere MQ messaging provider が表示される リスナー・ポートの使用は非推奨(注) リスナーポートはアクティベーション・スペックに置き換え WebSphere Application Server V7 Announcement Workshop 2008 # 21 © IBM Corporation. WAS V7は、WebSphere MQ V7のJCAリソース・アダプター提供しています。 アクティベーション・スペックをサポートしており、アクティベーション・スペックを利用してMDBにメッ セージを配布することが可能です。 リスナー・ポートは非推奨となったため、アクティベーション・スペックへ置き換えください。(注) (注)2010年6月追記 V7.0リリース時点において、リスナー・ポートは「非推奨」機能でしたが、その後「安定化された フィーチャー」に変更されました。 「安定化されたフィーチャー」は「非推奨」とは異なり、将来のバージョンでも引き続き提供される機 能です。 詳細については、以下リンク先を参照してください。 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere. nd.multiplatform.doc/info/ae/ae/rmig_stabfeat.html (英語版InformationCenterで確認できます。上記URLをWebブラウザの言語設定を英語に変え て参照してください。) 21 WAS WAS V7 V7 W/S W/S SIBus-WebSphere MQ連携の強化(1/2) SIBusとは WAS V6から提供されているESB機能の実装 New v7 WMQサーバー構成はWMQ V7の全プラットフォームでサポート (WAS V6.1ではWMQ V6 for z/OSのみサポート) 作成方法 WebSphere MQサーバーの追加 追加したWebSphere MQサーバーをバス・メンバーに追加 バス・メンバーの追加 バス・メンバーに宛先の追加 宛先の追加 WebSphere MQサーバーを追加 WebSphere Application Server V7 Announcement Workshop 2008 # 22 © IBM Corporation. WMQサーバー構成が、WMQ V7の全プラットフォームでサポートされました。WMQサーバーを、 バス・メンバーとして利用できます。 SIBusとキュー・マネージャーやキュー共用グループ(z/OS)のキューと直接クライアント接続が可能 になりました。 作成方法は以下の手順で行います。 ・WebSphere MQサーバーの追加 (サーバー > サーバー・タイプ > WebSphere MQサーバー から新規作成する) ・追加したWebSphere MQサーバーをバス・メンバーに追加 (サービス統合 > バス > バス名 > ト ポロジー > バス・メンバー からバス・メンバーに追加する) ・バス・メンバーに宛先の追加 (サービス統合 > バス > バス名 > 宛先 から宛先を作成する) 22 SIBus-WebSphere MQ連携の強化(2/2) WAS WAS V7 V7 W/S W/S MQリンクの強化 拡張トレースとFFDC (First Failure Data Capture) ドキュメンテーションの改善 SIB JMSアプリケーションはWMQメッセージ属性にアクセス可能 (例)Message ID、Correlation ID WMQのキュー・ディスカバリーによるキュー表示と選択が可能 MQのキューが表示される WebSphere Application Server V7 Announcement Workshop 2008 # 23 © IBM Corporation. MQリンクも強化されています。以降のページで紹介しますが、外部バス接続作成時に、MQリンク も続けて作成することができます。 拡張トレースとFFDCが強化されており、問題判別に役立てることができます。またドキュメントが改 善されています。 SIB JMSアプリケーションが、WMQメッセージ属性にアクセスすることが可能となりました。JMSプ ロバイダー特有のプロパティーとして追加されました。プロパティー名としては以下のような名前が 使われます。 JMS_IBM_MQMD_<MQMDFieldName> e.g. JMS_IBM_MQMD_MessageID WMQのキューが、WASの管理コンソールで確認可能となりました。 23 WAS WAS V7 V7 W/S W/S (参考)WMQとの接続比較 バスなし WebSphere MQLink利用 WebSphere MQサーバー利用 New v7 JMSアプリケーション JMSアプリケーション WebSphere MQ Messaging provider Default messaging provider Default messaging provider SIBus SIBus 構成 JMSアプリケーション サーバー間 サーバー間 MQ Link チャネル接続 チャネル接続 WebSphere MQ WebSphere MQ (外部バス) クライアント接続 クライアント接続 WebSphere MQ (バス・メンバー) トピック サポートなし なし サポート WMQ キュー WMQ トピック 長所 SIBusの構成必要なし WMQに直接接続可能 キュー・マネージャーにクライアント・ モード/バインディング・モードで接続可 能 etc 短所 MDBを使用する場合、パフォーマンスが 低い メディエーションが使えない etc WMQ キュー WMQ トピック シームレスにWASとWMQを統合可能 Pub/subブリッジが構成可能 メディエーションが使える etc SIBus、MEの構成が必要 WASとWMQで協調した管理が必要 キュー・マネージャーにバインディング・ モードで接続できない 負荷分散が難しい ect WMQ キュー SIBusとキュー・マネージャー、キュー共用 グループ(z/OS)のキューと直接クライアント 接続が可能 キュー・マネージャーにクライアント・モー ド/バインディング・モードで接続できる WAS、WMQはそれぞれ独立した管理ができる メディエーションが使える Etc SIBus、MEの構成が必要 Pub/Subが使えない WMQのバージョン(V7以降、z/OS V6以降) etc WebSphere Application Server V7 Announcement Workshop 2008 # 24 © IBM Corporation. WMQとの接続方法に関する比較は以下を参考ください。 WAS V7 InfoCenter「Interoperating with WebSphere MQ: Comparison of architectures」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere. nd.multiplatform.doc/info/ae/ae/cmm_comp_arch.html WAS V7 InfoCenter「 Interoperation with WebSphere MQ」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere. nd.multiplatform.doc/info/ae/ae/cmm_interop.html 24 シンプルな管理操作(1/3):外部バス管理 New v7 WAS WAS V7 V7 W/S W/S 外部バスとは 別のSIBus、またはWMQ環境とのプロトコル(ルーティング・タイプ)を決める定義で、SIBus単位に定義する 外部バス接続を管理する新しいパネルを提供 外部バス接続 他のSIBusまたはWebSphere MQへのリンクを作成可能 SIBusをWebSphere MQに接続するMQリンク SIBusを他のSIBusに接続するSIBリンク (バス間リンク) 動的な構成変更が可能 (MEのリスタートは不要) 外部バス接続の作成 MQリンクの作成 SIBリンクの作成 WebSphere Application Server V7 Announcement Workshop 2008 # 25 © IBM Corporation. これまで、外部バス接続の作成と、MQリンクまたはSIBリンクの作成は別々になっており、名前など が同じであるか確認する必要がありました。 WAS V7から外部バス接続を作成すると、MQリンクお よびSIBリンクの作成を続けて設定することが可能なため、名前の確認などを行う必要がなくなりま した。 サービス統合 > バス > バス名 > 外部バス接続 から外部バス接続を作成します。 外部バス接続を作成後に、MEをリスタートする必要もなくなりました。動的に構成変更が可能です。 25 シンプルな管理操作(2/3):外部バス管理 New v7 WAS WAS V7 V7 W/S W/S 外部バス管理パネル 外部バスへの転送のためにキューイングされたメッセージの照会と操作 保留通知に対する操作 バス・リンクの安全な削除 例外宛先の管理 保留メッセージの 管理が可能 MQリンク、SIBリンクで 例外宛先を設定可能 WebSphere Application Server V7 Announcement Workshop 2008 # 26 © IBM Corporation. 外部バス接続で作成された、MQリンクやSIBusリンクの状況を確認することができます。 送信メッセージ数、受信メッセージ数を確認できます。メッセージが保留されている場合は、その メッセージを削除したり移動することが可能です。WAS V7以前は、保留されているメッセージにア クセスすることはできませんでした。この機能により、インダウト・メッセージの処理が可能です。 サービス統合 > バス > バス名 > 外部バス接続 > 外部バス接続名 > MQリンク or SIBリンク から メッセージの照会と操作ができます。 MQリンク、SIBリンクで例外宛先を設定することが可能です。 サービス統合 > バス > バス名 > 外部バス接続 > 外部バス接続名 > MQリンク or SIBリンク > リン ク名 から例外宛先を設定することが可能です。 26 シンプルな管理操作(3/3):セキュリティー構成 New v7 WAS WAS V7 V7 W/S W/S バス・リソースに対するロール・ベースのアクセス制御 以前のバージョンでは、wsadminのみ構成が可能だった ユーザーとグループのロール Sender / Receiver / Browser / Creator バス・リソースに対する アクセス制御が可能 ユーザーとロールを指定可能 セキュリティー構成(パスワード不要) XAリカバリー /メディエーション / ME間の認証エイリアスは不要 WebSphere Application Server V7 Announcement Workshop 2008 # 27 © IBM Corporation. WAS V6.1では、wsadminでのみ構成可能でしたが、WAS V7から管理コンソールで、バス・リソー スに対するロール・ベースのアクセス制御が可能になりました。 サービス統合バス > バス > バス名のセキュリティー から、許可ポリシー以下にアクセス制御に関 する項目が表示されます。ここで、ロール・ベースのアクセス制御が可能です。 またいくつかのセキュリティー構成で、パスワード不要のセキュリティー構成ができるようになってい ます。 27 New v7 MDBの管理機能の強化(1/2) WAS WAS V7 V7 W/S W/S MDBのメッセージ・エンドポイントの起動・停止が可能に 手動での操作や障害メッセージのしきい値に達した場合に停止できる メッセージのしきい値はアクティベーション・スペックに設定 関連リソースにエラーが広がるのを防ぐことができる 以前のバージョンまでは、MDBの停止はアプリケーションもしくはJCAリソースアダプターの停止で行うしかなかっ た 継続してエラーが発生する場合にJMX通知を送信するように構成可能 メッセージ・エンドポイントを再起動すると、キューや 永続トピックのメッセージを受信可能 非永続トピックのメッセージは受信できない アクティベーション・スペックに 障害メッセージのしきい値が指定可能 メッセージ・エンドポイントの 一時停止、再開が可能 receive ① MDBアプリケーション 繰り返し public void onMessage( ){ 例外発生! rollback ejbctx.setRollbackOnly(); ② } 例外宛先へ退避 WebSphere Application Server V7 Announcement Workshop 2008 ③ # 28 © IBM Corporation. 以前のバージョンでは、MDBを停止させるには、アプリケーション自身の停止、もしくはリソース・ア ダプターを停止させる必要がありました。WAS V7からメッセージ・エンドポイントを停止することがで きるようになりました。アプリケーション、リソース・アダプターは起動した状態のままで、管理コンソー ルから、一時停止、再開が可能です。 エンタープライズ・アプリケーション > MDB名 > ランタイム・タブ > メッセージ・エンドポイントの管理 からメッセージ・エンドポイントの起動・停止ができます。 アクティベーション・スペックに、障害メッセージのしきい値を設定することが可能です。障害メッ セージのしきい値を超えると、エンドポイントを自動停止することができます。障害メッセージが大量 に送信された場合に、例外宛先があふれるのを防いだり、他のリソースへの影響を抑えることができ ます。 リソース > JMS > アクティベーション・スペック > アクティベーション・スペック名 から障害メッセー ジのしきい値を設定できます。 WAS V7 InfoCenter「Managing messages with message endpoints」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere. nd.doc/info/ae/ae/tdat_msgendpoint.html WAS V7 InfoCenter「Protecting a message-driven bean from system resource problems」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere. pmc.nd.multiplatform.doc/tasks/tjn_mdb_0001.html 28 New v7 MDBの管理機能の強化(2/2) WAS WAS V7 V7 W/S W/S MDBとSIBus宛先の間の関係を管理コンソールで見ることが可能に キューに関連したアプリケーションを 確認可能 MDBに関連付けられたキューを 確認可能 WebSphere Application Server V7 Announcement Workshop 2008 # 29 © IBM Corporation. MDBと宛先の間の関係を管理コンソールで見ることができるようになりました。 サービス統合 > バス > バス名 > 宛先 > キュー名 > アプリケーション・リソース・トポロジー から キューに関連したアプリケーションを確認することができます。 エンタープライズアプリケーション > MDBを含んだアプリケーション名 > デフォルトのメッセージン グ・プロバイダー参照 からアプリケーションに関連するSIBusの宛先を確認することができます。 29 WAS WAS V7 V7 W/S W/S トランザクション・マネージメント WAS V7 W/S WAS V7 W/S WebSphere Application Server V7 Announcement Workshop 2008 # 30 © IBM Corporation. 30 WAS WAS V7 V7 W/S W/S トランザクション・マネージメント WAS V7は、JTA1.1をサポート 新規インターフェース TransactionSynchronizationRegistry インターフェース New v7 コンポーネントがトランザクションを登録する際に利用 JTA1.1で定義 JNDIルックアップで取得可能 java:comp/TransactionSynchronizationRegistry UOWSynchoronizationRegistry インターフェース 現行UOWの取得、登録、ステータス確認が可能 TransactionSynchronizationRegistryインターフェースと同等の機能を提供。 WASがサポートする3つの トランザクション・タイプ(グローバル・トランザクション、ローカル・トランザクション、ActivitySession)をサ ポート。 WASの拡張インターフェース WAS V6.0.2.19、WAS6.1.0.9以降で提供 JNDIルックアップで取得可能 java:comp/websphere/UOWSynchronizationRegistry UOWManager インターフェース WASはJTAのTransactionManagerインターフェースを提供していないが、UOWManagerは同等の機能を提供。 トランザクション・コンテキストを制御するインターフェース WAS6.0.2.19、WAS6.1.0.9以降で提供 JNDIルックアップで取得可能 java:comp/websphere/UOWManager WebSphere Application Server V7 Announcement Workshop 2008 # 31 © IBM Corporation. WAS V7では、JTA1.1をサポートします。新規インターフェースとして、 TransactionSynchronizationRegistryが追加されました。WASが提供している拡張JTAトランザク ション・サポートのいくつかを標準化したインターフェースです。さらに、WASはトランザクションを調 整するためのインターフェース、UOWSynchoronizationRegistryインターフェース、 UOWManagerインターフェースをWAS6.0.2.19、WAS6.1.0.9以降から提供しています。 WAS V7 InfoCenter「JTA support」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere. nd.doc/info/ae/ae/cjta_extjta.html 31 WAS WAS V7 V7 W/S W/S JTAで提供されているトランザクション機能 ① ② ③ 1. UserTransactionインターフェース ユーザー・アプリケーションが直接トランザクションを制御する際に利用 トランザクションの開始、Commit/Rollbackなどを行うことができる 2. TransactionManagerインターフェース EJBコンテナーなどがトランザクションの制御を行うために利用するAPI 直接アプリケーション開発者が利用することを意図してデザインされていない TransactionManagerインターフェースが提供する機能の中には、トランザクションのsuspend/resumeの機能など UserTransactionインターフェースでは提供されていないものがいくつかある これにより現在実行中のトランザクションを一時停止して別のトランザクションを開始することが可能、つまりネストした(入れ子になった)トランザ クションを実現できる(EJBのトランザクション属性へRequiresNewを指定したケースに相当) 3. XAResourceインターフェース トランザクションマネージャーがデータベースやメッセージングシステムなどのリソースマネージャーを操作するために利用 WebSphere Application Server V7 Announcement Workshop 2008 # 32 © IBM Corporation. JTAで提供されているトランザクション機能は、以下の3つです。 ・UserTransactionインターフェース ・TransactionManagerインターフェース ・XAResourceインターフェース 32 WAS WAS V7 V7 W/S W/S UOWManagerについて(1/2) WASのV6.0.2.19およびV6.1.0.9以降から提供されているインターフェース アプリケーションからWASのTransactionManagerの安全な制御を可能にする TransactionManagerインターフェースは、EJBコンテナでのみ使用がサポートされており、アプリケーション から利用することはサポート対象外だった 通常のUserTransactionインターフェースでは提供されていないトランザクション管理機能が使用 可能となる トランザクションのsuspend/resume機能など、NotSupportedやRequiredNewというトランザクション属性が指 定できる UOWManagerを を使用した 使用したコーディング したコーディング例 コーディング例 UOWManagerをJNDIでlookupして取得 Context ic = new InitialContext(); Context ic = new InitialContext(); UOWManager uowmgr UOWManager uowmgr = (UOWManager) ic.lookup("java:comp/websphere/UOWManager"); = (UOWManager) ic.lookup("java:comp/websphere/UOWManager"); ... ... try { try { uowmgr.runUnderUOW( uowmgr.runUnderUOW( UOW_TYPE_GLOBAL_TRANSACTION, UOW_TYPE_GLOBAL_TRANSACTION, false, false, new UOWAction() { new UOWAction() { public void run() throws Exception { public void run() throws Exception { << ここにトランザクション ここにトランザクション処理 記述する >> トランザクション処理を 処理を記述する << ここにトランザクション ここにトランザクション処理 トランザクション処理を 処理を記述する 記述する >> } } }); }); } catch (UOWActionException e) { } catch (UOWActionException e) { // 処理でチェック例外が発生 // 処理でチェック例外が発生 } UserTx1 Application } begin() UOWManagerインターフェースのrunUnderUOW()メソッドによりトランザクション・コンテキストを設定 (1)トランザクションのタイプを指定 - UOW_TYPE_GLOBAL_TRANSACTION : グローバル・トランザクション - UOW_TYPE_LOCAL_TRANSACTION : ローカル・トランザクション - UOW_TYPE_ACTIVITYSESSION : ActivitySession (WAS独自のトランザクション・タイプ) (2)同一種類のトランザクション・タイプが実行されていた場合にどうするか - true :既存トランザクションを引き継ぐ - false : 新規トランザクションを開始する なお、違う種類のトランザクション・タイプが実行されている場合には、 一時停止して、新規トランザクションを開始します (3)実行するトランザクション処理をUOWActionメソッド内に記述 TransactionManager UOWManager UserTx2 UOWAction トランザクション1 runUnderUOW() run () begin() commit() WebSphere Application Server V7 commit() Announcement Workshop 2008 トランザクション2 # 33 © IBM Corporation. WASのTransactionManagerのインターフェースは、EJBコンテナーでのみ使用がサポートされて おり、アプリケーションから利用することはサポート対象外でした。UOWManagerインターフェース は、アプリケーションからWASのTransactionManagerの安全な制御を可能にするインターフェー スです。 トランザクションのタイプの指定、トランザクションを引き継いで実行したり、新規トランザクションを開 始するなどができます。 33 WAS WAS V7 V7 W/S W/S UOWManagerについて(2/2) UOWManagerインターフェースは、UOWSynchronizationRegistry インターフェースをExtendsしており、JTA1.1で提供され るTransactionSynchronizationRegisitryインターフェースと同等の機能を提供 現在実行中のトランザクション・コンテキストにリソースをマップする機能、フレームワークなどがトランザクションの同期をおこなうた めの機能などを提供 トランザクションマネージャーが管理するトランザクションと、直接管理できないリソース(XAでないリソース)の同期をとることが可能 となる UOWManagerをJNDIでlookupして取得 UOWSynchronizationRegistryを取得してもよい UOWManagerを を使用した 使用したトランザクション したトランザクション同期処理 トランザクション同期処理の 同期処理の例 Context ic = new InitialContext(); Context ic = new InitialContext(); UOWManager uowmgr = (UOWManager) ic.lookup("java:comp/websphere/UOWManager"); UOWManager uowmgr = (UOWManager) ic.lookup("java:comp/websphere/UOWManager"); //UOWManager uowsr = (UOWSynchronizationRegistry) ic.lookup("java:comp/websphere/UOWSynchronizationRegistry"); //UOWManager uowsr = (UOWSynchronizationRegistry) ic.lookup("java:comp/websphere/UOWSynchronizationRegistry"); ... ... uowmgr.registerInterposedSynchronization( uowmgr.registerInterposedSynchronization( new Synchronization() { new Synchronization() { public void beforeCompletion() { registerInterposedSynchronization()メソッドの引数へSynchronizationを実装したインスタンスを渡す。 public void beforeCompletion() { // 2-Phase Commitの の前に行う処理 beforeCompletion()メソッドにxa_prepareに相当する処理を,afterCompletion()メソッドに引数に応じ // 2-Phase Commitの の前に行う処理 } てCommit/Rollback (xa_commit)に相当する処理を記述することにより、トランザクション中で処理さ } public void afterCompletion(int status) れるリソースと同期して、リソースを更新することが可能となります public void afterCompletion(int status) // 2-Phase Commitの の後に行う処理 // 2-Phase Commitの の後に行う処理 } } } } TransactionManager ); ); Application UserTx UOWManager Synchronization begin() new reigisterInterposedSynchronization() commit() 複数RMへの DB更新処理 beforeCompletion() afterCompletion() xa_prepare() WebSphere Application Server V7 Announcement Workshop 2008 xa_commit() Resouce Manager (non XA) Resouce Manager (XA) Resouce Manager (XA) # 34 © IBM Corporation. またUOWManagerインターフェースを使うと、トランザクション・マネージャーが管理するトランザク ションと、直接管理できないリソースの同期をとることが可能です。 34 ローカル・トランザクション内包の共有 New v7 WAS WAS V7 V7 W/S W/S ローカル・トランザクション内包とは ローカル・トランザクションにおける作業単位(UOW) ローカル・トランザクション内包が共有可能に グローバル・トランザクションで仕様されていないリソース参照を共有可能 デプロイメント記述子に共有属性を指定 <local-transaction boundary="BEAN_METHOD" resolver="CONTAINER_AT_BOUNDARY" <local-transaction boundary="BEAN_METHOD" resolver="CONTAINER_AT_BOUNDARY" unresolved-action="COMMIT" shareable="true"/> unresolved-action="COMMIT" shareable="true"/> 利点 リソースの共有によるパフォーマンスの改善 ロック競合の減少 Data Source A Data Source B ローカル・トランザクション内包を Component1, 2, 3が共有し、Component4が共有 しない場合、1, 2, 3間でコネクションを共有 できる コネクション共有境界 Web or EJB Component 1 Web or EJB Component 3 コネクション共有境界 Web or EJB Component 2 Web or EJB Component 4 WebSphere Application Server V7 Announcement Workshop 2008 # 35 © IBM Corporation. WAS V7ではローカル・トランザクション内包が共有可能になりました。リソース参照を共有可能に なり、リソースの共有によるパフォーマンスの改善、ロック競合の減少などが期待できます。 WAS V7 InfoCenter「Local Transaction Containment」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere. nd.doc/info/ae/ae/cjta_loctran.html 35 非推奨な機能 WAS WAS V7 V7 W/S W/S ExtendedJTATransactionインターフェース registerSynchronizationCallbackForCurrentTrans メソッド TransactionSynchronizationRegistryインターフェースの registerInterposedSynchronizationメソッド追加のため TransactionControl() インターフェース UOWManagerインターフェースが同等の機能のため WebSphere Application Server V7 Announcement Workshop 2008 # 36 © IBM Corporation. WAS V7 InfoCenter「Deprecated features」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere. nd.doc/info/ae/ae/rmig_depfeat.html 36 WAS WAS V7 V7 W/S W/S 分離された共用ライブラリー WebSphere Application Server V7 Announcement Workshop 2008 WAS WAS V7 V7 W/S W/S # 37 © IBM Corporation. 37 WAS WAS V7 V7 W/S W/S 共用ライブラリー 共用ライブラリー メモリー使用量をセーブでき、同じクラスを何度も読み込むのを避けられる WAS V7の共用ライブラリーのタイプ サーバーに関連付けられた共用ライブラリー アプリケーション/モジュールに関連付けられた共用ライブラリー 分離された共用ライブラリー New v7 WebSphere Application Server V7 Announcement Workshop 2008 # 38 © IBM Corporation. WAS V7は、分離された共用ライブラリーの新しい機能を持ちます。WAS上の任意のアプリケー ションに共通したライブラリーを共有する方法を提供します。分離された共用ライブラリーの主な利 点は、クラス・インスタンス数を減らすことで、JVMにロードされるクラス数を減らしメモリー使用量を 減少できることです。 38 WAS WAS V7 V7 W/S W/S (参考)クラス・ローダー クラス・ローダー クラスをJVMのメモリ空間上にロードする 複数のクラス・ローダーが親子関係をなし階層構造をとる WASでは、サーバー、アプリケーション、Webモジュールのクラス・ローダー順序を指定可能 「最初に親クラス・ローダーをロードしたクラス」(Parent First) 「最初にローカル・クラス・ローダーをロードしたクラス(親は最後)」(Parent Last) Bootstrap Class Loader Javaの基本クラスローダー Extensions Class Loader Application Class Loader WAS本体のクラス WebSphere Extensions Class Loader サーバー関連付け共有ライブラリー アプリケーションで共通に使うクラス (オプション、数は0からいくつでも可) WebSphere Server Class Loader Application Class Loader ServletなどのWebモジュール Webモジュール毎に一つ classpath:WebSphere/AppServer/classes WebSphere/AppServer/lib WebSphere/AppServer/lib/ext EJBのクラス、EARで共通に使うクラス など。アプリケーション毎に一つ WAR Module Class Loader WebSphere Application Server V7 Announcement Workshop 2008 # 39 © IBM Corporation. JDKはクラスローダーの委譲モデルを定義しています。JVMのブートストラップ・クラスローダーを除 く全てのクラスローダーは、関連する親クラスローダーがあります。Parent Firstでは、階層のボトム からトップに委譲されます。クラス・ローダー・モードは、Parent FirstかParent Lastを指定できます。 Parent Firstの場合、親クラス・ローダーに委譲し、親がロードできない場合、子がクラスをロードす るという方法をとります。Parent Lastの場合、子がクラスをまずロードし、クラスをロードできない場 合親に委譲する方法をとります。 39 WAS WAS V7 V7 W/S W/S サーバーの共用ライブラリー サーバーに関連付けられた共用ライブラリー 共用ライブラリーは、サーバーのクラス・ローダーを使用する すべてのアプリケーションが一つのライブラリーを共用する メリット ライブラリーのロードが一つで済む デメリット 異なるバージョンのライブラリーが使えない WebSphere Server Class Loader Shared Library xxxx.jar Application Class Loader 同じバージョンのライブラ リーを使う必要がある。 WAR Module Loader WebSphere Application Server V7 Announcement Workshop 2008 # 40 © IBM Corporation. サーバーに関連付けられた共用ライブラリーは、サーバー・クラス・ローダーを使用します。すべて のアプリケーションでひとつのライブラリーを共用します。サーバーに関連付けられた共用ライブラ リーを使用するデメリットは、バージョンの異なるライブラリーを使用できないことです。 40 WAS WAS V7 V7 W/S W/S アプリケーション/モジュールの共用ライブラリー アプリケーション/モジュールに関連付けられた共用ライブラリー 共用ライブラリーは、アプリケーション/モジュールのクラス・ローダーで使用する 各アプリケーション/モジュールは各々が保持するライブラリーを使用する メリット 異なるアプリケーション/モジュールは、ライブラリーの異なるバージョンを使用できる デメリット 同じクラスの重複したコピーをロードする 同じバージョンのライブラ リーが複数ロードされる WebSphere Server Class Loader yyyy1.0.jarは4個 yyyy1.1.jarは2個 Application Class Loader Shared Library xxxx1.0.jar Application Class Loader Shared Library xxxx1.0.jar WAR Module Loader WAR Module Loader Shared Library yyyy1.0.jar Shared Library yyyy1.1.jar Shared Library yyyy1.1.jar Shared Library yyyy1.0.jar Shared Library yyyy1.0.jar Shared Library yyyy1.0.jar WebSphere Application Server V7 Announcement Workshop 2008 # 41 © IBM Corporation. アプリケーションに関連付けられた共用ライブラリーは、アプリケーションのクラスローダーにロード されます。各アプリケーションは、アプリケーション毎に共用ライブラリーのインスタンスを持ちます。 つまり、あるアプリケーションがVersion1.0で、他のアプリケーションがVersion1.1であることを許容 します。アプリケーション共用ライブラリーのデメリットは、すべてのアプリケーションが独自のインス タンスを持つことです。図の例ですと、4個のアプリケーションがVersion1.0を持ち、2つのアプリ ケーションがVersion1.1を持つ場合、各アプリケーションがそれぞれオブジェクトを持ち、6個のイン スタンスをメモリー上にロードすることになります。 41 分離された共用ライブラリー New v7 WAS WAS V7 V7 W/S W/S 分離された共用ライブラリー 共用ライブラリーは、分離されたクラス・ローダーを使用する アプリケーションは共用ライブラリーのコピーを排他的に共用する メリット 複数バージョンを使用でき、バージョン数のみロードされる WebSphere Server Class Loader 複数バージョンを使用可能、 ロードもバージョンで一回のみ Application Class Loader Isolated Shared Library Shared Library yyyy1.0.jar Isolated Shared Library Application Class Loader Shared Library yyyy1.1.jar WAR WAR Module WAR Module Loader Module Loader Loader WAR WAR Module WAR Module Loader Module Loader Loader WebSphere Application Server V7 Announcement Workshop 2008 # 42 © IBM Corporation. 分離された共用ライブラリーを使用すると、前の2つのメリットを合わせることができます。分離された 共用ライブラリーは、独自のクラス・ローダーを持ち、全てのアプリケーションに共通した単一のイン スタンスを持ちます。アプリケーションは、参照したい分離された共用ライブラリーを指定可能となり ます。複数バージョンを使用でき、クラスのロードもバージョンで一回のみとなり、メモリー上に必要 以上にクラスをロードしません。 42 WAS WAS V7 V7 W/S W/S 利用法と挙動 ロードを試みる順番 Parent Firstを設定した場合 1、2、3、4 Parent Lastを設定した場合 4、3、1、2 注意点 デフォルトでは、分離された共用ライブラリーと設定されない 分離された共用ライブラリーを、サーバーに関連する共用ライブラリーに設定すると、分離された共 用ライブラリーとして扱わない 分離された共用ライブラリーからは、アプリケーション・クラス・ローダーのクラスは見えない WebSphere Server Class Loader 2 Application Class Loader Isolated Shared Library 3 1 Application Class Loader 3 Key WAR WAR Module WAR Module Loader Module 4 Loader Loader WebSphere WAR WAR Module WAR Module Loader 4 Module Loader Loader Parent Delegation Library Delegation Application Server V7 Announcement Workshop 2008 # 43 © IBM Corporation. 分離された共用ライブラリーを使用する場合、ライブラリーのロードの順番が変わります。 上の図では、分離された共用ライブラリーが2つのアプリケーションで共用されています。クラス・ ローダー順序が全て、Parent Firstに指定されている場合、ロードを試みる順番は、1(分離された 共用ライブラリー)、2(サーバー・クラスローダー)、3(アプリケーション・クラスローダー)、4(Webモ ジュール・クラスローダー)。クラス・ローダー順序が全てParent Lastに指定されている場合、 4,3,1,2の順に呼ばれます。 注意点として以下があります。 ・アプリケーション、Webモジュールに関連する共用ライブラリーは、デフォルトでは分離された共用 ライブラリーには設定されません。 ・分離された共用ライブラリーを、サーバーに関連する共用ライブラリーとして設定すると、分離され た共用ライブラリーとして扱われません。アプリケーション、Webモジュールに関連付けます。 ・分離された共用ライブラリーからは、アプリケーション・クラス・ローダーのクラスは見えません。 43 WAS WAS V7 V7 W/S W/S 管理コンソール 環境 > 共用ライブラリー で共用ライブラリーを設定可能 アプリケーション・インストール時に 共用ライブラリーをマップ可能 「この共用ライブラリーでの分離された クラス・ローダーの使用」にチェックを 入れる。 ライブラリーを選択する WebSphere Application Server V7 Announcement Workshop 2008 # 44 © IBM Corporation. 分離されたクラス・ローダーの使用にチェックを入れると、分離された共用ライブラリーとして設定さ れます。 アプリケーションへの設定は、インストール時およびインストール後にマップすることが可能です。 44 WAS WAS V7 V7 W/S W/S Summary WAS V7の新機能として以下を紹介 DB2との接続 SQLj、pureQueryのサポート DB2 Trusted Contextのサポート 拡張DB2データ・ソースについて DB2 クライアント・リルートの設定方法 メッセージング関連 WebSphere MQ連携の強化 SIBus-WebSphere MQ連携の強化 シンプルな管理操作 MDBの管理機能の強化 Transaction Management UOWManagerについて ローカル・トランザクション内包の共用 分離された共用ライブラリー WebSphere Application Server V7 Announcement Workshop 2008 # 45 © IBM Corporation. 45 WAS WAS V7 V7 W/S W/S Reference WebSphere Application Server Version 7.0 Information Center http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp IBM Education Assistant http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/index.jsp developerWorks Understanding pureQuery, Part1, Part2 http://www.ibm.com/developerworks/db2/library/techarticle/dm-0708ahadian/ http://www.ibm.com/developerworks/db2/library/techarticle/dm-0801ahadian/index.html developerWorks Japan 一歩進んだFlexible Webインフラソリューション http://www.ibm.com/developerworks/jp/websphere/library/was/was61_db_tips/2004.html DB2 9.5技術資料 セキュリティー機能強化 http://www-06.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/001C70DF クライアント・リルートとWAS連携の考慮点 http://www-06.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/000DB513 WASV6.1による基幹システム設計Workshop トランザクション設計 http://www.ibm.com/developerworks/jp/websphere/library/was/was61_guide/index.html developerWorks Japan Sesar2:第2回 UOWManagerによるトランザクションの制御 http://www.ibm.com/developerworks/jp/java/library/j_j-seasar02/ developerWorks Japan WAS × Webフレームワーク連携手法 http://www.ibm.com/developerworks/jp/websphere/library/was/was61_framework/2004.html developerWorks Japan クラスローダーとJ2EEパッケージング戦略を理解する http://www.ibm.com/developerworks/jp/websphere/library/java/j2ee_classloader/index.html WebSphere Application Server V7 Announcement Workshop 2008 # 46 © IBM Corporation. 46 WAS WAS V7 V7 W/S W/S 付録 その他の新機能 WebSphere Application Server V7 Announcement Workshop 2008 WAS WAS V7 V7 W/S W/S # 47 © IBM Corporation. 47 WAS WAS V7 V7 W/S W/S JMSクライアント WebSphere Application Server V7 Announcement Workshop 2008 WAS WAS V7 V7 W/S W/S # 48 © IBM Corporation. 48 Thin JMS クライアント WAS WAS V7 V7 W/S W/S SIBusへアクセスするJava SE Thin Clientを提供 Java SE 5 以上 クライアントからのアウトバウンド通信が可能で1-phase commitをサポート Eclipse Rich Client Platform (RCP) level 3.2 によって実現しているOSGi (Open Service Gateway Initiative) サービス・プラットフォームをサポート com.ibm.ws.sib.client.thin.jms_7.0.0.jar Webサービスや管理用Thin Client同様、runtimesフォルダーに配置 EJB、JAX-WS、JAX-RPCクライアントと共存可能 WebSphere Application Server V7 Announcement Workshop 2008 # 49 © IBM Corporation. SIBusへアクセスするJava SE Thin Clientが提供されます。 com.ibm.ws.sib.client.thin.jms_7.0.0.jarファイルは、WASのruntimesフォルダーに配置されてい ます。 以前のクライアントは、EJBやJAX-RPCクライアント・アプリケーションと共存させた場合、問題があ りましたが、EJB、JAX-WS、JAX-RPCクライアントと共存することが可能です。 49 WAS WAS V7 V7 W/S W/S JCAリソースアダプターの提供 リソース・アダプターとは リソース・アダプターはJavaアプリケーションがエンタープライズ情報システム(EIS)への接続に 使用する、ソフトウェア・ドライバー 3rdベンダー・アプリケーションサーバー用のJCAリソースアダプター(RAR file)を提供 WebSphere Application Server Community Edition (CE) Apache Geronimo v2.0 以降 JBoss Application Server 4.0.5 以降 SIBusリソースへのアクセス インバウンド・アウトバウンド通信 2フェーズ・コミット・サポート WebSphere Application Server CE WebSphere Application Server v7.0 RA for JMS WebSphere Application Server V7 Announcement Workshop 2008 # 50 © IBM Corporation. WAS V7は、他のアプリケーション・サーバーにデプロイ可能なサービス統合バス用JCAリソース・ アダプターを提供します。 リソース・アダプターは、サービス統合バスとインバウンド/アウトバウンド接続が可能です。 サポートされているアプリケーションサーバーは、以下です。 WebSphere Application Server Community Edition Apache Geronimo V2.0以降 JBoss Application Server V4.0.5以降 WAS V7 InfoCenter「Using JMS from a third party application server http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.pmc.nd.doc /tasks/tjj_sibra.html 50 WAS WAS V7 V7 W/S W/S Single Instanceリソース・アダプターWAS V7 W/S WAS V7 W/S WebSphere Application Server V7 Announcement Workshop 2008 # 51 © IBM Corporation. 51 Single Instanceリソース・アダプター WAS WAS V7 V7 W/S W/S WAS v7 新機能 特定のリソース・アダプターのインスタンスを一つに制限するオプションが追加 いくつかのリソース・アダプターの実装は、複数のインスタンスを許容しない “Single Instance”のオプションが選択されている場合、同じJVMにリソース・アダプ ターのインスタンスは2つ存在できない 構成情報の違いにかかわらず、equals()メソッドがtrueを返す場合、2つのインスタンスは同じものとなる WebSphere Application Server V7 Announcement Workshop 2008 # 52 © IBM Corporation. リソース・アダプターの実装には、複数のリソース・アダプターのインスタンスを許容しない実装があ ります。この機能では、ユーザー指定のリソース・アダプターが一つのインスタンスで実行することが できます。 52 WAS WAS V7 V7 W/S W/S Single Instance RAの設定方法 リソース > リソース・アダプター > リソース・アダプター > リソース・アダプター名 > 拡張リソース・アダプター・プロパティー 「リソース・アダプターのインスタンスを 1つしか許可しないようにJVMを制限する」に チェックを入れる WebSphere Application Server V7 Announcement Workshop 2008 # 53 © IBM Corporation. シングル・インスタンス・リソース・アダプターは、RARファイルのインストール後に、管理コンソール あるいはwsadminを使用して構成可能です。 管理コンソールでは、リソース > リソース・アダプター > アダプター名 > 拡張リソース・アダプター・ プロパティーを選択し、「リソース・アダプターのインスタンスを1つしか許可しないようにJVMを制限 する」にチェックを入れます。 デフォルトでは、チェックボックスはチェックされておらず、リソースアダプターに制限はありません。 サーバー起動の効率性のためには、リソース・アダプターがシングル・インスタンスである必要がな い場合は、チェックボックスはチェックしないことをお勧めします。 シングル・インスタンス・リソースアダプターを一つ以上インストールすることに意味はありませんが、 同じリソース・アダプターを構成しようとした場合、あるいはされた場合、エラーメッセージが出力さ れます。 53 エラー発生条件 WAS WAS V7 V7 W/S W/S 次の場合にエラーが発生する Single Instanceリソース・アダプターを、2個目起動しようとした場合 単体のリソース・アダプター、同じリソース・アダプターの組み込みバージョン、一方が シングル・インスタンスとして構成された場合 停止されたリソース・アダプターが再起動されるまで、XAのリカバリー処理がで きない。 WebSphere Application Server V7 Announcement Workshop 2008 # 54 © IBM Corporation. 54 WAS WAS V7 V7 W/S W/S インバウンド・リソース・アダプターの高可用性 WAS WAS V7 V7 W/S W/S WebSphere Application Server V7 Announcement Workshop 2008 # 55 © IBM Corporation. 55 インバウンド・リソース・アダプターの高可用性(HA) WAS WAS V7 V7 W/S W/S JMSベースのWebSphere Business Integrationアダプターに高可用性を構成可能 特徴 管理コンソール、スクリプトで指定可能 インバウンド・メッセージを処理するJCA1.5リソース・アダプターにHAを提供する 一時点でリソース・アダプターの一つだけが、アクティブなエンドポイントを持てる 一時点でリソース・アダプター・インスタンスの一つだけが存在する ホットスタンバイで動いているアプリケーションは、特別なことはしなくて良い アプリケーションのプログラミングに影響を与えることなくフェイルオーバーが可能 3rdベンダーは、リソース・アダプターの実装、プログラミング・モデルを変更する必要はない HA機能は、HAグループで管理される WebSphere Application Server V7 Announcement Workshop 2008 # 56 © IBM Corporation. この機能は、JMSベースのWebSphere Business IntegrationアダプターにHA機能を提供します。 リソース・アダプターのイベントの連続性を保障するため、リソース・アダプターのエンドポイントは、 常にサーバーやクラスター環境で一つだけアクティブとします。リソース・アダプターのフェイルオー バーは、HAグループで一つのリソースアダプターだけ、起動されます。 この構成でJCAリソース・アダプター・ベンダーは、リソース・アダプターの実装や、プログラミング・ モデルを変更することなく、HAに参加することができます。 HAを構成しているサーバーに障害があった場合、バックアップサーバー上のリソース・アダプター のエンドポイントのいずれかが稼動されます(エンドポイントのフェイルオーバーを行う場合)、ある いは、バックアップサーバーのリソース・アダプターが稼動されます。 56 WAS WAS V7 V7 W/S W/S 指定方法 リソース > リソース・アダプター > リソース・アダプター > リソース・アダプ ター名 > 拡張リソース・アダプター・プロパティー 「このリソース・アダプターをHAマネー ジャーに登録する」にチェックを入れる スクリプトのオプション isEnableHASupport {true/false} haCapability RA_ENDPOINT_HA haCapability RA_INSTANCE_HA WebSphere Application Server V7 Announcement Workshop 2008 # 57 © IBM Corporation. リソース・アダプターのHA機能は、RARファイルをインストールした後、構成可能です。スタンドア ローン、組み込みアプリケーションのいずれも、管理コンソール、wsadminで構成可能です。リソー ス・アダプター・パネルに新しいチェックボックスが表示され、リソース・アダプターをHAにするかどう かを指定可能です。チェックボックスは、ビルトインされているリソース・アダプターは表示されませ ん。(RRA、JMS、SIB)。 リソース・アダプターのHAサポートを有効/無効にするのに、J2CResourceAdapter構成オブジェク トの、isEnableHASupportが使われます。デフォルト値は、false。J2CResourceAdapter構成オブ ジェクトのhaCapability属性は、HAサポートの推奨レベル、サポートレベルを指定します。 haCapability、isEnableHASupport属性は、resources.xmlファイルの、 resource.j2c:J2CresourceAdapterエレメントに保持されます。 WAS V7 InfoCenter「Configuring resource adapters」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ ae/ae/tdat_configra.html 57 エラー発生条件 WAS WAS V7 V7 W/S W/S エラー条件 WebSphere Business Integrationアダプター以外のアダプターにHAを構成した 場合(リソース・アダプターの機能とHA機能は相容れない) HAを構成したリソース・アダプターに停止/再開始を行った場合(RAはHAマネー ジャーの管理下にあるため) WebSphere Application Server V7 Announcement Workshop 2008 # 58 © IBM Corporation. WebSphere Business Integrationアダプターにとって、高可用性の機能とリソース・アダプターは 相容れません。これは構成検証でみつけられず、実行時にエラーメッセージが出力されます。 HAマネージャー管理のリソースアダプターに、停止、再開始が行った場合、実行時にエラーメッ セージが出力されます。 58 WAS WAS V7 V7 W/S W/S JCAメッセージ・エンドポイントMBean WAS V7 W/S WAS V7 W/S WebSphere Application Server V7 Announcement Workshop 2008 # 59 © IBM Corporation. 59 WAS WAS V7 V7 W/S W/S JCAメッセージ・エンドポイントMBeans メッセージ・エンドポイントBeanから、一時的にメッセージ・エンドポイントを一時停止(非活 動化)、再開(活動化)することが可能 エンドポイントを停止することで、失敗メッセージをハンドリングするなど管理者が問題の あるリソースを修復できる 修復したエンドポイントを再開し、メッセージ・リクエストを再開可能 アプリケーション名 > ランタイムタブ > メッセージ・エンドポイントの管理 メッセージ・エンドポイントの 一時停止、再開が可能 WebSphere Application Server V7 Announcement Workshop 2008 # 60 © IBM Corporation. MDBの管理機能の強化でも一部紹介しましたが、WAS V7に新しい機能、メッセージ・エンドポイ ントMBeansが追加されました。アプリケーション(リソースにアクセスするメッセージエンドポイントを 提供する)の内在する問題を軽減することが可能です。エンドポイントがリソースエラーがある状態 でオペレーションが実行されるときはいつでも、メッセージは失敗します。例えば、エンドポイントの MDBが、停止しているDBサーバーにトランザクションをコミットを試みるなど。失敗したメッセージは 追加のプロセスが必要。例えば、再実行、failure/exception/standby/dead letterに送るなど。メッ セージ・プロバイダーはメッセージをエンドポイントに無限に送信し続け、メッセージは特別なキュー にリダイレクトされます。 メッセージ・エンドポイントMBeanは、ユーザーに特定のメッセージ・エンドポイントを一時停止、再 開させることができます。この機能により問題を楽にできます。管理者が失敗メッセージをハンドル するエンドポイントを停止することができます。一旦、エンドポイントを一時停止し、管理者は失敗の 原因を修復できます。 エンドポイントを一時停止、再開することは、リソース・アダプターやアプリケーションには影響を与 えません。 MBeanは、管理コンソール、wsadmin、JEEアプリケーションから利用可能です。 WAS V7 InfoCenter「 Managing messages with message endpoints」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ ae/ae/tdat_msgendpoint.html WAS V7 InfoCenter「 Managing the message endpoint lifecycle using scripting」 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ ae/ae/txml_7msgend.html 60 メッセージ・エンドポイントMBeanのメソッド WAS WAS V7 V7 W/S W/S メッセージ・エンドポイントは動作中、停止中の状態を持てる pauseメソッドは、エンドポイントを停止する resumeメソッドは、エンドポイントを開始する getStatusメソッドは、現在の状態を返す getActivationPropertiesは、エンドポイントのactivation propertiesを取 得する WebSphere Application Server V7 Announcement Workshop 2008 # 61 © IBM Corporation. MDBを含むJEEアプリケーションを開始する際に、WAS V7はメッセージ・エンドポイントを作成し 開始する。同時に対応するメッセージ・エンドポイントMBeanを作成します。一旦メッセージ・エンド ポイントMBeanが作成されると、MBeanは、JEEアプリケーション、wsadminスクリプトを使用しプロ グラムでアクセスされます。 pause()とresume()メソッドは、メッセージング・プロバイダー(すなわちメッセージング・リソース・ア ダプター)上のエンドポイントを一時停止、再開します。getActivationProperties()メソッドは、エンド ポイントのアクティベーションスペック・プロパティーと、デプロイ時にセットされるエンドポイントのバ インディング情報を返します。これはランタイムでエンドポイントが実行されている実際のプロパティ 値です。 エンドポイントが止まっているとき、Mbeanのpauseとresumeメソッドは、エラーメッセージを発行し、 ResourceExceptionをスローします。リソース・アダプターがHAをサポートしている場合、エンドポイ ントは停止、再始動ができません。この場合、pauseとresumeメソッドが実行されると、MBeanは、 エラーメッセージを出力し、InvalidStateExceptionをスローします。 エンドポイントがinactive(active)の場合、 pause(resume)メソッドが実行されると、Mbeanは警告 メッセージを出力します。 61