注! 本書および本書で紹介する製品をご使用になる前に、
特記事項に記載されている情報をお読みください。
23 March2005
本書は、WebSphere Product Center (5724-I68) バージョン 5.2 および新しい版で明記されていない限り、以降のすべてのリリースおよびモディフィケーションに適用されます。
© Copyright International Business Machines Corporations 2001, 2005. All
rights reserved.
第 1 章 WebSphere Product Center のモニター
WebSphere Product Center のサービス
サービスの簡略状況を入手する
サービスの詳細状況を入手する
データベースのモニタリングおよび管理
1. 必要に応じてより多くのスペースを割り振る
2. フィックス・パック / パッチを適用する
3. データベース / データベース・マネージャーを始動したりシャットダウンしたりする
4. データベース・スキーマを分析し、統計を収集する
5. テーブルや索引を再編成する
6. スケジュール済みのバックアップ・ジョブの状況をチェックする
7. データベースをリストアしたりリカバリーしたりする
8. データベースのパフォーマンスを調整する
第 2 章 WebSphere Product Center のパフォーマンス
ディスク・スペースの管理
一時ファイル
Web ページのキャッシュ
ハードウェア仕様
データベース・ユーザー
データベースのバックアップ
物理バックアップ
論理バックアップ
データベースの正常性検査
DB2 ヘルス・センター・アラートのセットアップ
データベース管理ツールキット
ディレクトリー
アーキテクチャー
テーブル・スペースの管理
ファイルの削除
オプションの BLOB の GZIP 圧縮
デフラグ
文書ストアでよく尋ねられる質問
WebSphere Product Center のバックアップ
データベースのバックアップ
リカバリー
第 6 章 WebSphere Product Center のロガー
WebSphere Product Center のサービス・ログ構成ファイル
ランタイム生成ログ
ログ・ファイルの構成
ロケーションの変更
ファイル・サイズの変更
ファイル・バックアップ・オプションの変更
変換パターンの変更
変換指定子
形式修飾子
変換文字
WebSphere Product Center のロギング・セットアップ・ファイル
制限事項
スペル・チェック機能
スペル・チェックを有効にする
要件
WebSphere Product Centerfor WinterTree Spelling Engine Runtime Configuration の構成
LDAP の統合
フィーチャーの概要
機能概要
前提事項
制限事項
5.2 以前のバージョンのマイグレーションを行う場合の影響
WebSphere Product Center への LDAP の統合
1. ユーザーおよび役割用の LDAP スキーマの構成
2. LDAP 構成ファイルの編集
3. システムの再始動
ツール
アプリケーション・サーバーに関する問題
環境に関する問題
構成ファイル設定の一般的な誤り
アプリケーション・サーバーが応答しない
データベースに関する問題
1. データのエクスポート / インポート時の文字変換
2. データベースのスペース割り振りに関する問題
3. 実行中のジョブを kill すると WebSphere Product Center の動作が遅くなる
4. ログの切り替えの再実行に関する問題
5. WebSphere Product Center ミドルウェアが停止し、GUI がフリーズする
6. スキーマ・ジョブの停止を分析する
エラーがないかどうかログ・ファイルをモニターする
接続に関する問題
HTTP ポスト・エラー
FTP フェッチ・エラー
Java 接続のテスト
その他の問題
WebSphere Product Center の停止および再始動
4.2.0.x から 5.2 へのマイグレーション
会社のエクスポート
会社のインポート
マイグレーションの影響
4.2.1 から 5.1 へのマイグレーション
Web サービス記述言語 (WSDL) サポート
Web サービス・ユーザー・インターフェース
Web サービスをサポートするスクリプト操作
ドキュメント/リテラル・スタイルのサポート
IBM Tivoli Workload Scheduler とのスケジューラーの統合
コマンド行インターフェースを使用したスケジューラー制御
定義および頭字語
統合の各次元
ソース・システムまたはターゲット・システムとしての WebSphere Product Center
システムの制御
プロトコル
形式
データのサイズ
通信のタイプ
頻度
統合スレッド
頭字語
設計原則
再利用性
情報の共有
情報処理
イベント処理
トラッキングの変更
再利用可能なコネクター
インプリメンテーション
インプリメンテーションのスケール調整
パフォーマンス・チューニング
検証
安定性
スケーラブルなテスト
可視性
レポート
文書
WebSphere Product Center の統合において最も重要な 10 のガイドライン
明確で一般的な用語を使用して、統合について説明する
再利用性
可視性
小さな統合
典型的な環境と完全な環境
スケーラブルな処理のテスト
パフォーマンス
単一スレッドを早期に確立する
仕様および文書の設計
単一の所有者
EAI プラットフォームの統合
アプローチ
追加の利点
WebSphere Product Center のモニターは、 rootadmin の使用、 rmi_status スクリプトまたは GUI を使用して行うことができます。WebSphere Product Center では、独立型のモニター・ツールは提供されません。
モニター・ツールの作成は、この文書では紹介されません。ただし、以下に簡単なアイデアについて言及しておきます。
- アプリケーション・サーバーに仮想ホストを作成するか、おそらく個別のモニター用サーバーを作成します。 rmi_status および rootadmin.sh ではシステム負荷が発生するので、多くの環境では、モニター用のサーバーを別にすることをお勧めします。
- Perl などのスクリプト言語を使用して、サービスの状況を制御したり、表示したりする rootadmin.sh の CGI ラッパーを作成します。
- Web サーバーに、ログ・ファイルのブラウズを容易にする $TOP/logs を指す別名を作成します。
- 例外やその他のエラーがないかどうか $TOP/logs 内のログを解析し、 オプションでサービス状況をチェックするユーティリティーを作成します。このユーティリティーは、E メールを送信したり、エラーが発生した場合には管理者用の他の幾つかの通知方法を提供することができます。このユーティリティーは cron から実行します。
サービスの簡略状況を入手するには、以下のパラメーターを渡します。
-cmd=check -svc=<service name>
簡略状況には次のものがあります。
実行中 サービスが実行中であり、ハートビート機能に応答しています。 見つかりません サービスが見つかりません。サービスが開始されていなかったか、または破損していることなどが考えられます。 見つかりましたが、応答していません サービスが RMI レジストリーに登録されたものとして見つかりましたが、ハートビート機能に応答しません。サービスを再始動する必要があるかもしれません。
サービスの詳細状況を入手するには、以下のパラメーターを rootadmin.sh に渡します。
-cmd=status -svc=<service name>
HTML ファイルが作成されるので、任意のブラウザーを使用して参照することができます。 ターミナルでは、Lynx (または同様のツール) を使用して出力をフォーマットします。
この詳細状況は、サービス内で実行されている異なるスレッドの概要に加え、サービスが現在採用しているデータベース接続の状況も示します。
例:
スケジューラーの状況を入手するには以下のようにします。
rootadmin.sh -cmd=status -svc=scheduler > /tmp/sch_status.html; lynx /tmp/sch_status.html
または、以下の方法もあります。
rootadmin.sh -cmd=status -svc=scheduler > /tmp/sch_status.html; lynx -dump /tmp/sch_status.html
注: 上記の例で使用している「>」は、 状況の詳細情報を出力ファイルに書き出します。
リレーショナル・データベースは、大量の製品情報コンテンツの主要なストレージであるため、パフォーマンスの低下や損失を避ける管理アクションを提供することは重要です。
WebSphere Product Center でアラートを設定することにより、 発生する可能性のある問題に関して通知が行われ、問題が手におえなくなる前に解決できる場合があります。 モニタリング・システムをインプリメントして、WebSphere Product Center データベースを常にモニターする必要もあります。
以下のタスクは、定期的に実行されなければなりません。
- 必要に応じてより多くのスペースを割り振る
- 必要に応じてフィックス・パック / パッチを適用する
- 必要に応じて、データベース・マネージャー、データベース、他のサービスを始動したりシャットダウンしたりする
- より良いパフォーマンスを得るために、必要に応じてデータベース・スキーマを分析し、統計を収集する
- より良いパフォーマンスを得るために、定期的にテーブルや索引を再編成する
- スケジュール済みのバックアップ・ジョブの状況をチェックする
- 必要に応じて、データベースをリストアしたりリカバリーしたりする
- データベースのパフォーマンスを調整する
1. 必要に応じてより多くのスペースを割り振る
スペース管理は、管理者にとって継続的なタスクとなります。完全な静的データベースを持っている場合を除き、 テーブルおよび索引は、サイズが定期的に増加したり縮小したりします。継続的な処理が中断することなく行われるように、 使用可能な十分のスペースがあることを確認する必要があります。また、 スペースが効率よく使用されているかどうか確認する必要があります。 必要な場合には、DB2 コントロール・センターを使用してスペースを割り振ります。 コマンド行インターフェースを使用して、同じタスクを完了することもできます。
2. フィックス・パック / パッチを適用する
フィックスパック / パッチは、製品の修正で、データベース・システム・ベンダーが定期的に配信しています。 バグの修正を目的としているため、新規の機能は含まれていません。したがって、ターゲット・システムでの認証は必要ありません。 データベース・システムに関する既知の問題を回避するために、フィックスパック / パッチが提供されている場合には、 これらを適用することは重要です。修正情報について詳しくは、データベース・システムのベンダーに連絡してください。
3. データベース・マネージャー、データベースを始動したりシャットダウンしたりする
フィックスの適用 (サーバーから別のサーバーへデータベースを移動するなど) の一環として、 データベース・マネージャー / データベースをシャットダウンする必要があります。必要に応じて、データベースを始動およびシャットダウンする必要があります。
4. データベース・スキーマを分析し、統計を収集する
データベース・スキーマは分析され、データベース内のテーブルおよび索引に関する最新の統計を収集します。コスト・ベースの最適化手法では、統計を使用して、それぞれの実行プランのコストの見積もりを判別します。統計は定期的に収集され、スキーマ・オブジェクトに関する最良の情報をオプティマイザーに提供します。たとえば、かなりの行数がテーブルにロードされた場合には、テーブルの新規の統計を収集する必要があります。
データベース・スキーマを分析するには、$TOP/src/db/schema/util ディレクトリーにあるシェル・スクリプト analyze_schema.sh を実行します。
5. テーブルや索引を再編成する
より良いパフォーマンスを得るために、定期的にテーブルや索引を再編成することをお勧めします。
今日のデータベースは以前に比べて急速に拡大しているため、DBA は、 最適なパフォーマンスを達成するためのスペース管理や再編成に膨大な時間を費やす必要があります。
最適なパフォーマンスとは、最適な応答時間のことを意味します。 しかし、膨大なスペース管理の問題ゆえに、パフォーマンスが低下する可能性があります。 これらの問題の大半は、3 つの主要な領域、つまり、テーブルに関する問題、索引の分断化、I/O バランスとデータの分割化などに分けられます。
テーブルに関する問題については、ほとんどの DBA がよく通じています。 これらの問題には、テーブル・ブロック内の十分に活用されていないスペース、チェーニングされた行、 データ近接性の低さ、フラグメント化された (拡張しすぎた) テーブルなどが含まれます。
パフォーマンスの課題に関する 2 番目の問題は、大きくなってしまい、データが散在している索引です。
これによって、索引範囲スキャンのパフォーマンスが大幅に低下する可能性があります。 また、大量のディスク・スペースを浪費する可能性があります。
パフォーマンスの課題に関する 3 番目の主要な問題は、I/O バランスおよびデータの分割化です。 頻繁にアクセスされるオブジェクトが同じデータ・ファイルに常駐している場合、I/O ボトルネックが生じる可能性があります。 DB2 での reorgchk のようなツールは、再編成する必要があるオブジェクトに関する情報を明らかにします。 データベース・オブジェクトを再編成するのに使用可能なメソッドおよびツールは数多く存在します。 これらについては、テーブルや索引の再編成に関する、データベース・システム・ベンダーの特定の資料をご一読ください。
6. スケジュール済みのバックアップ・ジョブの状況をチェックする
バックアップは、リストアおよびリカバリー処理における重要な部分です。 すべてのバックアップ・ジョブの状況を検証して、これらのジョブがスケジュール通りに実行していることを確認してください。
バックアップの状況のチェックは、バックアップ手順の定義方法およびバックアップを行うのに使用するツールによって異なります。詳しくは、ベンダー・データベース・システムのバックアップに関するベンダー固有の資料を参照してください。
7. データベースをリストアしたりリカバリーしたりする
データベースに障害が発生した場合、障害のタイプおよび程度を判別します。 この分析により、システムをリカバリーするために実行するステップが示されます。 IT サポート・グループによって定義されたとおりにリストアおよびリカバリー処理を使用します。
物理的なバックアップのリストアとは、データベースを再構築し、それをデータベース・サーバーで使用可能にすることを意味します。 リストア済みのデータ・ファイルのリカバリーとは、再実行レコード、 つまりバックアップを取った後にデータベースに加えられた変更のレコードを使用して、データベースを更新することです。
8. データベースのパフォーマンスを調整する
DBA が担う最大の責任の 1 つは、データベースが正しく調整されているかどうか確認することです。 RDBMS は、幅広い調整が可能であり、データベースがそのパフォーマンスを向上させるためにモニターおよび調整することができます。
パフォーマンス調整を行わなければならない理由として、以下の点が挙げられます。
- 計算の速度によって、貴重な人的時間 (ユーザーが応答を待機する) が浪費される可能性があります。
- 以下のようにして、ご使用のシステムがビジネスが行われるスピードに追いつくことができるようにします。
ハードウェアの使用法を最適化し、コストを削減します (会社はハードウェアに多額のコストを費やしています)。
データベースのパフォーマンスを調整するのに使用可能な各種の方法について詳しくは、DB2 製品に付属している製品資料を参照してください。
WebSphere Product Center ミドルウェア区画および一時区画の両方に、30 から 50 ギガバイトの使用可能なスペースを持つことをお勧めします。
- WebSphere Product Center ミドルウェア区画: 30GB をお勧めします。ミドルウェアのサイズは、およそ 65 から 70 メガバイトです。
- 一時区画: 2 GB から 4 GB の使用可能なディスク・スペース (この区画は、作成および削除される大容量の一時作業ファイルを数多く保持するのに使用されます)。
クラスター構成において、アプリケーション・サーバーは共用ストレージを必要としています。静的 HTML およびイメージ・ファイルは同期化して、rsync などのユーティリティーを使用することができますが、Web サーバーには共用ストレージを使用することをお勧めします。
アプリケーション・サーバー、$TOP では、FTP ディレクトリーおよび Web サーバーの文書ルート (静的 HTML およびイメージのロケーション) は通常、共用デバイス上にあります。一方、 Apache などのサポートされるアプリケーション、JDK およびアプリケーション・サーバーは、ローカル・ストレージにインストールされます。ログはローカル・ストレージまたは共用ストレージに保持されます。common.properties で指定される一時ディレクトリーは、ローカルでなければなりません。
一時ファイル
以下のディレクトリーは、一時ランタイム生成ファイルを保持し、ファイル・システム上に配置されます。
注: 一時ファイル・ディレクトリーは、 インストールされている WebSphere Product Center のバージョンによって異なる場合があります。
$TOP/public_html/created_files/distributor
- 目的: アウトバウンド FTP 配布の場合、キュー・マネージャーはデータベースからこのディレクトリーへ文書をダウンロードし、FTP ファイルをその宛先へダウンロードします。
- 存続期間: システム管理者は、スケジュールされたアプリケーションのダウン時間中に、このディレクトリーにあるすべてのファイルを削除する必要があります。すべてのファイルを日付別にソートし、会社がこのディレクトリーのすべてのファイルに対して設定した回転周期よりも古いファイルを削除します。推奨される回転周期は 7 日間です。
Linux を使用した例
cd $TOP/public_html/created_files/distributor
find . -type f -mtime +7 -exec ls -l {} ¥; <-- 削除するファイルを表示する
find . -type f -mtime +7 -exec rm -f {} ¥; <-- ファイルを削除する
$TOP/public_html/suppliers/company code/aggregated_files/
- 目的: FTP フェッチ経由で取り出されるアップロードされたインポートおよびエクスポート・ファイルは、このディレクトリーに配置されます。
- 存続期間: このディレクトリーをファイル・システムから削除してはなりませんが、必要に応じて WebSphere Product Center GUI から削除します。
$TOP/public_html/suppliers/company code/tmp_files:
- 目的: このディレクトリーは一時作業ファイルを保持します。
- 存続期間: このディレクトリーにファイルを数週間保管して、定期的に除去することをお勧めします。必要であれば、WebSphere Product Center の再始動時に、あるいは定義されたスケジュール (たとえば、2 週間以上経過したファイル) に基づいて、ファイルを自動的に除去します。
$TOP/logs
- 目的: このディレクトリーは、WebSphere Product Center ミドルウェア・ログを保持します。
- 存続期間: ログ・レベルに基づいて、十分なディスク・スペースを指定する必要があります (エラー --> デバッグ)。管理者はこのディレクトリー・サイズを完全に制御します。デバッグ・モードが必要な場合には、使用可能なディスク・スペースを 2 ギガバイト から 3 ギガバイトにしておくことをお勧めします。通常のレベルでの 1 日分のログとして、およそ 30 ~ 40 メガバイトのログが生成され、自動パージに設定することができます。
WebSphere Product Center のデフォルト・インストールでは、プロキシー・サーバーにページをキャッシュしないよう指示する設定になっています。ページのキャッシュを許可すると、ブラウザーの「戻る」ボタンを使用する機能は大幅に制限され、エラー・メッセージおよび有効期限が切れたページが作成されます。キャッシュを希望する場合は、GUI ナビゲーション・フィーチャーを使用して、「戻る」ボタンは使用しないようにしてください。
ファイルの編集: common.properties
パラメーター: no_cache_directive=on/offデフォルトでは、パラメーターは off に設定されています。
パラメーターを on に設定すると、応答に対するパラメーターは、ページをキャッシュしないようプロキシー・サーバーに指示するよう設定され、ブラウザーの「戻る」ボタンの機能は大幅に制限されます。
off に設定すると、ブラウザーの「戻る」ボタンは有効になり、エラーは発生しなくなります。
ハードウェア仕様は、WebSphere Product Center から最適のパフォーマンスを引き出すために、最良事例、過去の経験、および容量要件に基づいて選択する必要があります。
アプリケーション・サーバー
WebSphere Product Center のデータ・オブジェクトの大半は、データベース・サーバーに保管されます。このため、アプリケーション・サーバー上のディスク・ストレージは、OS コンポーネント、WebSphere Product Center 実行可能プログラム、サード・パーティー・コンポーネント、WebSphere Product Center の一時作業ファイル、および WebSphere Product Center ログの保管にのみ使用します。
WebSphere Product Center ミドルウェアは、それぞれが大量のメモリーを持つことのできる、幾つかの J2EE コンポーネントを使用します。WebSphere Product Center は、アプリケーション・サーバーが 4GB のメモリーを持つことを推奨しますが、そのうちの 2.5GB は通常、WebSphere Product Center ミドルウェアのインスタンス用に使用されます。
データベース・サーバー
データベース・サーバーのサイズは、さまざまな要因によって異なります。これには、カタログ・アイテムの数、各アイテムに関連した属性の数、およびカタログ属性のサイズが含まれます。
経験則では、各属性に 8KB のスペースが割り振られます。たとえば、500,000 アイテムが含まれるカタログがあったとして、それぞれのアイテムに 14 個の属性を持つ場合、最小で 56GB のデータベース・ストレージ (500,000 アイテム x 14 属性 x 8KB) が必要になります。
このスペースには、データベース・バイナリー、undo セグメント、一時テーブル・スペースなどに必要なものは含まれません。
推奨アーキテクチャー
WebSphere Product Center を使用して大きなバッチ・ジョブを処理する場合、バックグラウンド・トランザクションを処理するオプション・スケジューラー・サーバーを使用するオプションをお勧めします。
WebSphere Product Center のインストール時に作成されたデータベース・ユーザーおよびパスワードは、common.properities で定義されます。common.properties ファイルを更新せずにデータベース・ユーザーのパスワードを変更すると、WebSphere Product Centerミドルウェアが破損してしまいます。データベース・ユーザーのパスワードを変更する必要がある場合、common.properties にあるプロパティー db_password を更新してください。パスワード認証は、DB2 におけるオペレーティング・システム・レベルで行われます。
データベースのバックアップおよびリカバリーは、データベース管理者 (DBA) が実行する最も重大な操作のうちの 1 つです。このため、適切に定義されたバックアップおよびリカバリー・ストラテジーをインプリメントすることは大変重要です。WebSphere Product Center を使用して最適なパフォーマンスを保つためには、以下のバックアップ・ストラテジーをお勧めします。
物理バックアップ
WebSphere Product Center では、データベースのバックアップを毎日取ることをお勧めします。システムのダウン時間の可用性に基づいて、オフラインでデータベースの物理バックアップ (イメージ・バックアップ) を取ったり、オンラインでの物理バックアップ (ホット・バックアップ) を取ることができます。多くの WebSphere Product Center データベースでは、365 日 24 時間、常時アクセスがあるため、データベースのオフライン・バックアップを行えるダウン時間が存在しない可能性があります。データベースは、データベースのオンライン・バックアップを行うことができるように、DB2 で logretain モードで実行していなければなりません。データベースのオンライン・バックアップを行うことによって、データベースを特定の時点の状態にリカバリーすることができます。詳しくは、DB2 製品資料を参照してください。
論理バックアップ
論理バックアップは、データベースに対して作成されたスキーマ・オブジェクトに関する情報を保管します。DB2 の DB2MOVE ユーティリティーを使用して、データベースのバックアップ・ストラテジーにおける補足的な保護および柔軟性を与えるために、特定のオブジェクトを選択的にエクスポートすることができます。データベース・エクスポートは、物理バックアップの代わりになるものではなく、物理バックアップが提供するのと同じ完全リカバリーの利点を提供することはできません。論理バックアップは、QA をセットアップしたり、実働データを使用してインスタンスをテストするのにとても便利な場合があります。WebSphere Product Center DBM ツールキットには、WebSphere Product Center データベース・スキーマの論理バックアップに関する WebSphere Product Center 固有の指示も含まれます。
定期的な間隔でデータベース・システムの正常性を検査することは、システムの高い可用性につながります。
DB2 ヘルス・センター・アラートのセットアップ
DB2 ヘルス・センターを使用して、データベース環境の状況をモニターし、必要に応じて変更を加えます。ヘルス・モニターは、一連のヘルス・インディケーターを継続的にモニターします。ヘルス・インディケーターの現行値が、警告しきい値およびアラームしきい値で定義された許容される操作範囲の外側にあると、ヘルス・モニターによりヘルス・アラートが生成されます。DB2 には、事前定義されたしきい値が付属しており、あとでカスタマイズすることができます。
以下は、ヘルス・センターを使用して実行できる主要なタスクの一部です。
データベース環境の状況を表示します。
インスタンスまたはデータベースのアラートを表示します。
アラートに関する詳細情報、および推奨されるアクションを表示します。
特定のオブジェクトのヘルス・モニター設定、およびインスタンス内のオブジェクト・タイプあるいはすべてのオブジェクトのデフォルト設定を構成します。
E メールまたはページャー・メッセージを使用してアラートについての通知を出す連絡先を選択します。
インスタンスのアラートの履歴を確認します。
WebSphere Product Center データベースを管理するのに使用できる DB 管理スクリプトが幾つかあります。これらのスクリプトはすべて、ツールキットの形式で 1 つにまとめられます。
DB2 のツールキットで扱われる各種のタスクには、以下のものがあります。
- WebSphere Product Center データベースからデータを除去する
- WebSphere Product Center スキーマを分析し、統計を収集する
- WebSphere Product Center スキーマの論理バックアップを行う
- sysinfo.sql を使用して WebSphere Product Center データベースの構成詳細を収集する
文書ストアは、すべての着信および発信ファイルが保管される WebSphere Product Center 内の領域です。これには、インポート・フィード、スクリプト、レポート、仕様ファイルが含まれます。
GUI 構造は、データベースで保管されるファイルに対するハイパーリンクを提供します。これは、基本的にファイルのロケーションへのポインターになります。
ディレクトリー
文書ストアはファイル構造の方法で表示されます。ファイルは、以下の文書ストア・ディレクトリーからアクセスできます。
archives
public_html
eventprocessor
schedule_logs
feed_files
scripts
ftp
tmp
params
users
FTP および public_html は、文書ストアにマウントされるファイル・システム・ディレクトリーです。これらは、$TOP/etc/docstore_mount.xml で定義されます。このファイルは、さまざまな OS ファイル・システムのマウント・ポイントのロケーションを提供します。
使用される変数は、"$ftp_root_dir" および "$supplier_base_dir" であり、common.properties 構成ファイルで定義されます。
アーキテクチャー
データベースには、文書ストアに保管されるファイルに対して指定されたテーブル・スペースがあります。ファイルが文書ストアに保管されると、新規のレコードが DB に作成されます。データベースは、ファイルを BLOB (バイナリー・ラージ・オブジェクト) ファイルとして保管します。
BLOB ファイルは、画像ファイルまたはサウンド・ファイルなど、データベースに保管する必要のある、ランダムな大きさのビットのブロックを指しています。BLOB に関して重要な点は、BLOB はデータベース自体の中では解釈できないオブジェクトであるということです。
データベースは、データベース自体にあるテーブル・スペース内に BLOB を保管します。この方式の利点は、バックアップ・リカバリーおよびセキュリティー・メカニズムなどの、その他のすべてのテーブル・データのタイプを保護するデータベース・サーバー・メカニズムを使用して、データベースがデータを保護するという点です。
テーブル・スペースの管理
スペース管理は、継続的なタスクです。文書ストア・テーブルのサイズは変化することがあります。継続的な処理を中断せずに大きなバイナリー・ファイルをサポートするための、使用可能な十分のスペースがあることを確認する必要があります。さらに、スペースが効率よく使用されているかどうか確認する必要があります。
ファイルの削除
WebSphere Product Center が BLOB ファイルおよび対応する参照を削除する場合、データベース・エンジンは割り振られたスペースを解放せずに、新規ファイルのスペースを再使用します。
このようにして、各ファイルは、ファイルの削除時にメモリー・ブロックに保管され、メモリー・ブロックは、新規ファイルの追加時に再使用されます。
オプションの BLOB の GZIP 圧縮
BLOB に保管されている文書を圧縮するには、以下のようにします。
編集するファイル: common.properties
パラメーター: gzip_blobs=true/false
- 有効値は true または false です。
- 値が存在しない場合は、デフォルトで false になります。
- true の場合、BLOB に保管されている文書は圧縮されます。
デフラグ
文書ストアでは、ファイルの追加や削除が何度も行われるため、メモリー・ブロックがフラグメント化される可能性があります。フラグメント化は、ファイルの作成、削除、および変更などでディスクを頻繁に使用すると自動的に発生します。
ある時点で、オペレーティング・システムは、不連続クラスターで構成されているファイルの部分を保管する必要があります。これは、ユーザーには全く見えませんが、データにアクセスする速度が遅くなる可能性があります。これは、ディスク・ドライブがディスクの異なる部分を検索して、1 つのファイルにまとめる必要があるためです。
文書ストアのパフォーマンスを向上させるには、compress=y を使用して DBL テーブルをエクスポートしてからインポートするのが最善です。これにより、ファイルのすべてが 1 つの連続したクラスターにまとめられるため、ファイルをインポートする速度が上がります。
注: テーブル・スペースの割り振りによっては、デフラグを定期的に行う必要がない場合があります。ディスク速度を定期的にモニターして、ディスク・スペースのデフラグが必要かどうかを判別してください。
文書ストアでよく尋ねられる質問
問題: BLOB を削除すると、WebSphere Product Center の速度に影響し続けますか?
いいえ。行を削除すると、文書ストア・ページの速度は改善されます。
問題: スペースを割り振ったままだと、エクスポート / インポートの速度は低下しますか?
はい。これを修正するには、DBL テーブルを compress=y でエクスポートおよびインポートするしかありません。
特定のバックアップ方式および使用されるソフトウェアは、本書では扱われていません。ただし、バックアップの概念は本書で説明されています。
WebSphere Product Center のバックアップは、以下の 2 つのコンポーネントで構成されています。WebSphere Product Center がインストールされたファイル・システム・ディレクトリーのバックアップと、データベースのバックアップです。
WebSphere Product Center のバックアップ
WebSphere Product Center をバックアップするには、common.properties で定義されたとおりに $TOP ディレクトリーを単にバックアップします。これらのディレクトリー内ではファイルが変化するので、毎日バックアップすることをお勧めします。定期的な完全バックアップと毎日のインクリメンタル・バックアップで構成されるバックアップ・スケジュールをたてるようお勧めします。
データベースのバックアップ
データベースのバックアップの方法は、エクスポート、ホット・バックアップ、コールド・バックアップ、ミラーリングなどの使用可能なさまざまな方式があるため、本書では扱われていません。どの方法を選択した場合でも、common.properties で定義されているように、WebSphere Product Center データベース・ユーザーのスキーマは、バックアップする必要のあるものです。
WebSphere Product Center が稼働するためにデータベースは使用可能である必要があるため、毎日のオンライン・バックアップあるいは「ホット」バックアップを使用することをお勧めします。エクスポートまたはオフライン・バックアップも定期的に行う必要があります。
データベースのバックアップについて詳しくは、セクション "データベースのバックアップ" を参照してください。
リカバリー
リカバリーは、以下の 2 つのカテゴリーに分けることができます。WebSphere Product Center およびサポート・ファイルのリカバリーと、データベースのリカバリーです。
WebSphere Product Center およびサポート・ファイルをリカバリーするには、単に欠落しているファイルまたはディレクトリーを元のロケーションにリストアして、WebSphere Product Center を始動します。
データベースをリカバリーするには、以下のステップを実行します。
- アプリケーション・サーバーをシャットダウンする
- WebSphere Product Center ミドルウェアをシャットダウンする
- スキーマをリストアする
- WebSphere Product Center ミドルウェアを始動する
- アプリケーション・サーバーを始動する
WebSphere Product Center は、ログを生成する事前定義されたファイルを提供します。これは、WebSphere Product Center 内の問題をトラブルシューティングするのに使用することができます。本書では、ロギング・メカニズムの概要について説明し、ログ・ファイルのセットアップ方法について説明します。
以下のファイルは、WebSphere Product Center 全体にあるさまざまなサブシステムを制御します。生成されるログのロケーションは各ファイルで定義されます。
注: すべてのパスは $TOP と相対関係にあります。
/etc/logs/eventprocessor.log.xml
/etc/logs/scheduler.log.xml
/etc/logs/system.log.xml
/etc/logs/appsvr.log.xml
/etc/logs/workflowengine.log.xml
ランタイム生成ログを使用して、エラーがないかどうか確認できます。これにより、WebSphere Product Center または内部のサポート・インフラストラクチャーに関連した問題がある場合に、その問題をトラブルシューティングするのに役立ちます。
WebSphere Product Center によって生成されたログ・ファイルは $TOP/logs/*.log に保管されます。
WebSphere Product Center ログ・ファイルのプロパティーは、必要に応じて編集することができます (たとえば、ロケーション、最大サイズ、形式など)。以下のセクションでは、ログを構成するのに使用されるエレメントについて説明し、WebSphere Product Center ログ・ファイルの構成時に使用されることのある値のリストを提供します。
ロケーションの変更
注: ファイルおよびローリング付加にのみ適用されます。
生成されたログ・ファイルのロケーションを変更するには、指定されたログ構成ファイルのパラメーターを変更します。
たとえば、以下のようにします。
<param name="File" value="${TOP}/logs/webserver_db.log " />
ファイル・サイズの変更
注: ローリング付加にのみ適用されます。
ログ・ファイルのサイズは、出力の上位オーダーの交替およびパージを開始する前に、指定したストレージ・サイズに設定することができます。ファイルがいつ切り捨てを開始するかを制御するには、ログ・ファイル・サイズのパラメーター値を変更します。
たとえば、以下のようにします。
<param name="maxFileSize" value="10MB" />
ファイル・バックアップ・オプションの変更
注: ローリング付加にのみ適用されます。
ロガーを定義して、指定したログ・ファイルのバックアップ数を保つことができます。最大値に達すると、最も古いファイルが消去されます。
たとえば、以下のようにします。
<param name="maxBackupIndex" value="2" />
変換パターンの変更
ログのレイアウト構成は、変換パターンを再定義することによって変更することができます。
たとえば、以下のようにします。
<param name="ConversionPattern" value=
"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>この変換パターンは、C における printf 関数の変換パターンと密接に関連しています。変換パターンはリテラル・テキストと、変換指定子と呼ばれるフォーマット制御式で成り立っています。
注: 変換パターン内にリテラル・テキストの挿入は任意です。
それぞれの変換指定子は、パーセント記号 "%" で始まり、オプションの形式修飾子および変換文字が後に続きます。
% (形式修飾子)(変換文字)
たとえば、以下のようにします。
%-5p [%t]: %m%n
- 形式修飾子は、フィールド幅、埋め込み、左右の位置調整などを制御します。
- 変換文字は、データのタイプ (たとえば、カテゴリー、優先順位、日付、およびスレッド名) を指定します。
デフォルトでは、関連情報はそのまま出力されます。ただし、形式修飾子を使用して、フィールドの最小幅、フィールドの最大幅および位置調整を変更することは可能です。
パーセント記号と変換文字の間に、オプションのフォーマット修飾子が配置されます。この例では、変換指定子
%-5p は、ロギングの優先順位を 5 文字の幅になるよう左に位置調整することを意味しています。最初のオプションのフォーマット修飾子は、単にマイナス (-) 文字で表される左位置調整フラグです。さらに、オプションのフィールドの最小幅修飾子が続きます。これは、出力する最小文字数を表す 10 進定数です。データ・アイテムに必要な文字数がもっと少ない場合は、最小幅に達するまで、データ・アイテムは左または右のいずれかに埋め込まれます。
デフォルトでは、左に埋め込まれ (右位置調整) ますが、左の位置調整フラグを使用して右の埋め込みを指定することができます。埋め込み文字はスペースです。データ・アイテムがフィールドの最小幅より大きい場合、フィールドはデータを収容できるように拡張されます。値が切り捨てられることはありません。
この振る舞いは、10 進定数が後に続くピリオドによって指定された、フィールドの最大幅修飾子を使用して変更できます。データ・アイテムが最大フィールドより大きい場合、余分の文字がデータ・アイテムの最後ではなく先頭から除去されます。
たとえば、フィールドの最大幅が 8 であり、データ・アイテムが 10 文字の長さである場合、データ・アイテムの最初の 2 文字が除去されます。
注: この振る舞いは、切り捨てが最後から行われる C における printf 関数から逸脱しています。
以下のページでは、変換指定子の定義に使用する値を提供します。
以下は、カテゴリー変換指定子のさまざまなフォーマット修飾子の例です。
フォーマット修飾子
左位置調整
最小
幅
最大幅
コメント
%20c
False
20
なし
カテゴリー名が 20 文字より短い場合、スペースを使用して左に埋め込みます。
%-20c
True
20
なし
カテゴリー名が 20 文字より短い場合、スペースを使用して右に埋め込みます。
%30c
NA
なし
30
カテゴリー名が 30 文字より長い場合、先頭から切り捨てます。
%20.30c
False
20
30
カテゴリー名が 20 文字より短い場合、スペースを使用して左に埋め込みます。ただし、カテゴリー名が 30 文字より長い場合、先頭から切り捨てます。
%-20.30c
True
20
30
カテゴリー名が 20 文字より短い場合、スペースを使用して右に埋め込みます。ただし、カテゴリー名が 30 文字より長い場合、先頭から切り捨てます。
以下は、認識される変換文字のリストです。
変換文字
効果
c
ロギング・イベントのカテゴリーを出力するのに使用されます。精度指定子はオプションで、括弧内の 10 進定数であるカテゴリー変換指定子の後に置くことができます。
精度指定子が指定されると、カテゴリー名の一番右にある対応する数のみが出力されます。デフォルトでは、カテゴリー名は全体が出力されます。
たとえば、カテゴリー名 "a.b.c" の場合、パターン %c{2} は "b.c" を出力します。
d
ロギング・イベントの日付を出力するのに使用されます。中括弧で囲まれた日付形式指定子を、日付変換指定子の後に続けることができます。
たとえば、%d{HH:mm:ss,SSS} あるいは %d{dd MMM yyyy HH:mm:ss,SSS}。日付形式指定子を指定しなかった場合、ISO8601 形式が想定されます。
日付形式指定子は、SimpleDateFormat の時刻パターン・ストリングと同じ構文を許可します。標準 JDK の一部ですが、SimpleDateFormat のパフォーマンスは非常に貧弱です。
結果を改善するには、log4j 日付フォーマッターを使用することをお勧めします。これは、AbsoluteTimeDateFormat、DateTimeDateFormat、および ISO8601DateFormat をそれぞれ指定するための、ストリング "ABSOLUTE"、"DATE"、および "ISO8601" のいずれかを使用して指定することができます。例、%d{ISO8601} または %d{ABSOLUTE}。
これらの専用日付フォーマッターのパフォーマンスのほうが、SimpleDateFormat よりも良好です。
m
ロギング・イベントに関連した WebSphere Product Center 提供のメッセージを出力するのに使用されます。
n
プラットフォーム依存の行区切り文字を出力します。
この変換文字は、"¥n"、または "¥r¥n" などの可搬性のない行分離文字を使用した場合と同じパフォーマンスを実際に提供します。このため、これは行分離文字を指定する好ましい方法です。
p
ロギング・イベントの優先順位を出力するのに使用されます。
r
WebSphere Product Center を始動してからロギング・イベントが作成されるまでに経過したミリ秒数を出力するのに使用されます。
t
ロギング・イベントを生成したスレッドの名前を出力するのに使用されます。
x
ロギング・イベントを生成したスレッドに関連した NDC (ネストされた診断コンテキスト) を出力するのに使用されます。
%
シーケンス %% は単一のパーセント記号を出力します。
以下の例では、WebSphere Product Center のログ・ファイルを定義する方法を示します。太字のエントリーは、WebSphere Product Center ログ・ファイルの構成を設定します。
<!-- basic ASYNC appender -->
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="DEFAULT"/>
</appender>
<!-- basic CONSOLE appender. This is the same as doing system.out-->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>
<!-- simple FILE appender. The file will be opened and if append is true -->
<!-- it will not be truncated -->
<appender name="DEFAULT" class="org.apache.log4j.FileAppender">
<param name="File" value="${TOP}/logs/tomcat_default.log " />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>
<!-- Rolling FILE appender. The file will be opened and if append is true -->
<!-- it will not be truncated -->
<!-- maxFileSize: How big before you rotate -->
<!-- maxBackupIndex: How many backups do you keep? -->
<appender name="DB" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${TOP}/logs/tomcat_db.log " />
<param name="Append" value="true" />
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="2" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>
<!-- For the austin.db category, you want to have only a few logs kept hence -->
<!-- the rollingappender -->
<category name="austin.db" additivity=" false">
<priority value="INFO" />
<appender-ref ref="DB" />
</category>
<!-- ROOT CATEGORY -->
<!-- MUST ALWAYS BE LAST ENTRY AND HAVE AN APPENDER-->
<!-- If a logging event is not caught by any other logger it will be handled by this-->
<!-- rule. -->
<root>
<priority value="error"/>
<appender-ref ref="DEFAULT"/>
</root>
</log4j:configuration>
WebSphere Product Center でのスペル・チェック機能は、WinterTree 社のサード・パーティー製品である「Sentry Spell Checking Engine」のフレームワークを使用することによって有効になります。このため、WebSphere Product Center には他のスペル・チェック機能はバンドルされていません。スペル・チェック機能を使用可能にするには、WinterTree Software 社の Spelling Service Engine バージョン 5.10 の購入が必要です。
注: WebSphere Product Center のスペルチェック機能を使用するには、 Wintertree Sentry Spelling Checker Engine Java SDK 5.10 が前提条件となります。
このリリースではスペル・チェック機能が使用可能ですが、ユーザーは「アイテム詳細 (Item Detail)」および「単一編集内容オーサリング (Single Edit Content Authoring)」画面でのみスペル・チェックを行うことができます。 「マルチ編集」または「一括編集」画面におけるスペル・チェック機能のサポートは今後のリリースで行われる予定です。
この資料では、実行時に WebSphere Product Center を WinterTree Software 社の Spelling Service Engine バージョン 5.10 と連動させるために必要な構成セットアップについて説明します。
WebSphere Product Center for WinterTree Spelling Engine Runtime Configuration の構成を行うためには、3 つのプロパティー・ファイルの変更が必要です。
注: すべてのプロパティー・ファイルをいったん変更した後に、WebSphere Product Center を再始動し、Spelling Engine の実行時構成パラメーターを設定します。
common.properties
ロケーション: <WPC5.2_INSTALL_DIR>/etc/default/common.properties ファイル
値: common.properties ファイルを編集して、以下のプロパティー値を含めてください。
spell_check=true (スペル・エンジンを有効にする)
spell_check_vendor=wintertree (スペル・エンジン・ベンダーを WinterTree SSCE に設定)
spell_check_vendor_class=common.plugins.wintertree.WinterTreePlugin (Wintertree SSCE のプラグインを設定)
spell_license=<license_key> (プロパティー <license_key> で、WinterTree 社より購入した Spelling Engine バージョン 5.10 ソフトウェアのライセンス・キーの値をキー入力する。)
spellservice.properties
ロケーション: <WPC5.2_INSTALL_DIR>/etc/default/plugins/wintertree/spellservice.properties ファイル
値: MainLexicon<n> プロパティーに対する <WINTERTREE_INSTALL_DIR> のすべてのオカレンスを、お客様のシステムで WinterTree 社の Spelling Engine ソフトウェアをインストールしたロケーションに置き換えてください。これにより、用語集または辞書、および Spelling Engine の実行時プロパティーが構成されます。
ccd.rc
ロケーション: <WPC5.2_INSTALL_DIR>/setup/ccd.rc ファイル
<WPC_INSTALL_DIR>/jars/ssce.jar から、インストール済み WinterTree jar ファイル (<WINTERTREE_INSTALL_DIR>/runtime/lib に位置する「ssce.jar」というファイル) へのシンボリック・リンクを作成します。以下の例にあるように、コメントが外された行をこのファイルに追加してシンボリック・リンクを作成することができます。
例:
- AddJar $JARDIR/ssce.jar
LDAP (Lightweight Directory Access Protocol) の統合により、WebSphere Product Center のセキュリティー・インフラストラクチャーが向上し、以下に示す 3 つの機能が WebSphere Product Center に組み込まれます。
LDAP の統合により、認証のためにサード・パーティーの LDAP システムを使用できます。認証のためにサード・パーティーの LDAP 機能を使用すると複雑になる場合、WebSphere Product Center 5.2 で使用可能な既存の認証インフラストラクチャーを利用して LDAP ユーザーを認証できます。この場合、認証は、LDAP の領域で行われます。WPC への LDAP ユーザーと役割の登録は、ランタイムで、ユーザーまたはシステムが呼び出すスクリプト操作に基づいて行われます。WebSphere Product Center 内の LDAP ユーザーは、LDAP フラグを使用して区別されます。
LDAP を WebSphere Product Center に統合することにより、セキュリティー認証インフラストラクチャーが強化され、さまざまな (内部および外部を含む) 役割の許可を必要とする 1000 以上のカジュアル・ユーザーをサポートできます。 たとえば、カテゴリー・マネージャーは内部役割となり、アシスタント・ブランド・マネージャーは外部役割になります。
WebSphere Product Center 5.2 の場合、LDAP の統合は、IBM Tivoli Directory Server バージョン 5.2 (LDAP v3 対応) に対してのみ保証されています。 ただし、次に示す LDAP サーバーと連動するように拡張できます。 Sun Java System Directory Server 5.2、Weblogic 8.1 - Embedded LDAP Server、および Novell® eDirectory™ 8.7.3
注: このリリースでは、シングル・サイン機能はサポートされません。シングル・サインのインプリメンテーションは、今後のリリースで計画されています。
ユーザーがセッション中に認証される場合、その間にユーザーの固有情報が変更される (たとえば、役割、パスワードなどの変更) 場合でも、ユーザー認証はセッションの終了まで継続されます。
このリリースでは、LDAP エントリー検索でのロケール固有のストリングの抽出は保証されていません。
LDAP ユーザーと Product Center ユーザーを区別する新規 LDAP フラグを導入した結果、WPC USER ENTITY のスキーマが変更されています。
このセクションでは、IBM Tivoli Directory Server バージョン 5.2 の LDAP を WebSphere Product Center 5.2 に統合するために実行する必要のあるタスクについて説明します。 まず前提条件として、IBM Tivoli Directory Server バージョン 5.2 が適切にインストールされている必要があります。 LDAP の構成には、IBM Tivoli Directory Server バージョン 5.2 のユーザーおよび役割用に構成された LDAP スキーマが必要になります。
LDAP を WebSphere Product Center に統合するために、以下を行ってください。
1. LDAP 構成用の構成ファイル・パッケージを見付ける。
2. IBM Tivoli Directory Server バージョン 5.2 のユーザーおよび役割用に LDAP スキーマを構成する。
3. LDAP 構成ファイルを編集する。
4. WebSphere Product Center で LDAP フラグを使用可能にする。
5. WebSphere Product Center を再始動する。
<WPC5.2_INSTALL_DIR>/etc/default/ldap_config.xml
新しいレルムの作成
1. IBM Tivoli Directory Server Web Administration Tool から、「レルムとテンプレート (Realms and Templates)」>「Add Realm」メニューを選択して新しいレルムを作成する。
2. すべての必要フィールドへの入力を完了する。
3. オブジェクト・クラスのドメイン を親 DN として選択する。
たとえば、以下のようにします。相対 DN 親 DN
cn=myrealm dc=wpcdomain.dc=isl.dc=com新規ユーザー・テンプレートの作成
1. IBM Tivoli Directory Server Web Administration Tool から「レルムとテンプレート (Realms and Templates)」>「ユーザー・テンプレートの追加 (Add User Template)」をクリックして新しいユーザー・テンプレートを作成する。
2. 上記で作成されたレルム・エントリーに、親 DN としてキー入力する。構造オブジェクト・クラスを inetOrgPerson として選択する。
3. 必要属性タブを編集し、以下のすべての必要属性リストを含める。
- Cn
- Sn
- Uid (名前付き属性)
- TelephoneNumber
- TelexNumber
- postalAddress
4. 「レルムとテンプレート (Realms and Templates)」>「レルムの管理 (Manage Realms)」>「編集 (Edit)」メニューを使い、このユーザー・テンプレートを上記で作成したレルムに関連付ける。
たとえば、以下のようにします。
親 DN
dc=wpcdomain,dc=isl,dc=com
cn=mytemplate,dc=wpcdomain,dc=isl,dc=com
新規ユーザーの作成1. IBM Tivoli Directory Server Web Administration Tool から、「ユーザーとグループ (Users and Groups)」>「ユーザーの追加 (Add User)」メニューを使い、新規ユーザーを作成する。
2. 上記で作成されたレルムをこのユーザー用のレルムとして選択する。
3. 「必須 (Required)」属性タブの入力を行い、上記の属性すべてを含める。
新規グループの作成
1. IBM Tivoli Directory Server Web Administration Tool から、「ユーザーとグループ (Users and Groups)」>「グループの追加 (Add Group)」メニューを使って新規グループを作成する。
2. 上記で作成されたレルムをこのグループ用のレルムとして選択する。このグループのオブジェクトは、groupOfNames です。
3. ユーザーをグループに関連付ける。
以下の LDAP 構成ファイルは、LDAP を WebSphere Product Center に統合するために必要なファイルです。
<WPC5.2_INSTALL_DIR>/etc/default/ldap_config.xml
ldap_config.xml ファイルの括弧内に示されている値を、LDAP インストール・システムの適切な値に置き換えて、LDAP 実行時認証のための編集を行います。
<?xml version="1.0" encoding="UTF-8"?>
<LdapConfiguration>
<connectionInfo>
<connectionParam name = "java.naming.provider.url"> (LDAP サーバーの URL を入力する)</connectionParam>
<connectionParam name = "java.naming.security.principal">(LDAP サーバーにログインするユーザー名を入力する)</connectionParam>
<connectionParam name = "java.naming.security.credentials">(LDAP サーバーにログインするパスワードを入力する)</connectionParam>
<connectionParam name = "java.naming.security.authentication">simple</connectionParam>
<connectionParam name = "java.naming.referral">follow</connectionParam>
<connectionParam name = "java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</connectionParam>
<connectionParam name = "java.naming.ldap.version">3</connectionParam>
</connectionInfo>
<RoleMapping>
<Object name = "Role Class">groupOfNames</Object>
</RoleMapping>
<WPCUserCredentialMappings ParentDN="(ユーザー・オブジェクト用の基本 DN を入力する)" ObjectClass="inetOrgPerson">
この例の場合、基本 DN は cn=myrealm,dc=wpcdomain,dc=isl,dc=com です。
<WPCUserParam name = "UserName">uid</WPCUserParam>
<WPCUserParam name = "FirstName">cn</WPCUserParam> >
<WPCUserParam name = "LastName">sn</WPCUserParam> >
<WPCUserParam name = "Email">mail</WPCUserParam> >
<WPCUserParam name = "Address">postalAddress</WPCUserParam> >
<WPCUserParam name = "Phone">telephoneNumber </WPCUserParam>
<WPCUserParam name = "Fax"> TelexNumber</WPCUserParam> >
</WPCUserCredentialMappings>
</LdapConfiguration>
WebSphere Product Center の common.properties ファイルから、LDAP フラグを使用可能にします。
たとえば、以下のようにします。
enable_ldap=true
前述の 4 つのステップを完了して LDAP を構成した後に、WebSphere Product Center を再始動します。
- ログ・ファイル分析
- netstat
- ps
- kill
- svrmgrl または sqlplus
- telnet
- jar
- tar
- gunzip
- 多くの場合に Web サーバーおよびアプリケーション・サーバーへのスーパーユーザー・アクセスが必須
環境に関する問題
アプリケーション・サーバー上の WebSphere Product Center の疑似ユーザーは、WebSphere Product Center を始動する前に、以下の環境変数を構成していなければなりません。
- TOP: WebSphere Product Center インストールの上位ディレクトリー
- DB2_HOME: DB2 クライアント・バイナリーに必要
- JAVA_HOME: JDK に必要
- PATH: $DB2_HOME/bin および $JAVA_HOME/bin が含まれている必要がある
さらに、WebSphere Product Center を始動する前に、シェル・スクリプト init_ccd_vars.sh のソースとなる場所を定義する必要があります。これは通常、ユーザーの .bashrc ファイル内で行われます。
CLASSPATH 環境変数は、init_ccd_vars.sh のソースとなる場所を定義した後に変更しないでください。
構成ファイル設定の一般的な誤り
- common.properties
最も一般的なエラーは、common.properties 内のデータベース指定子が誤っているというものです。誤って構成されたデータベースには、以下の徴候があります。
appsvr、eventprocessor、queuemanager、scheduler、および workflowengine が始動しない
ログ・ファイル logs/db_pool および logs/svc/ 内のエラー
smtp_address。Smtp_address は、localhost 上の sendmail である SMTP リレー、あるいは組織外から E メールを送信できる別のシステムのいずれかを指している必要があります。
- ライセンス・ファイル
ライセンス・ファイル (WPC_license.xml) が欠落していたり誤っている場合、サービスは開始しません。このエラーは、logs/svc の下のログ・ファイルに反映されます。
アプリケーション・サーバーが応答しない
シナリオ
アプリケーション・サーバーの反応が極端に低下します。サーバーを ping することは可能ですが、ユーザーは環境にログインできず、管理者もアプリケーション・サーバーにログインできなくなります。
以下の点を点検します。
ユーザーが最近非常に大きなジョブを起動したかどうかを調べます。そのジョブが意図したものであった場合、ジョブによって使用されたスクリプトをチェックします。
1. データのエクスポート / インポート時の文字変換
2. データベースのスペース割り振りに関する問題
3. データ・ブロックの破損および索引の破損に関する問題
4. 長い時間ステータス・バーに変更を加えないとインポートまたはエクスポートがハングする
5. 実行中のジョブを kill した後にアプリケーションがとても遅くなる
6. ログの切り替えの再実行に関する問題
7. WebSphere Product Center ミドルウェアが停止し、GUI がフリーズする
8. スキーマ・ジョブの停止を分析する
9. SQL 接続が自動的に再始動する
1. データのエクスポート / インポート時の文字変換
問題
データベースのエクスポート / インポート時に、データベースのコピーを使用してテスト環境を作成すると、使用した文字セットに関するエラー・メッセージが表示されます。
症状
たとえば、文字セット US7ASCII を使用するデータベースをエクスポートすると、以下のエラー・メッセージがエクスポート・ログに表示されます。
US7ASCII 文字セットおよび UTF8 NCHAR 文字セットでエクスポートが完了しました。サーバーは UTF8 文字セット (可能な文字セット変換) を使用します。(Export done in US7ASCII character set and UTF8 NCHAR character set server uses UTF8 character set (possible charset conversion))
解決方法
データベースのエクスポート / インポートの際には常に、NLS_LANG パラメーターを設定して、文字セット american_america.utf8 を使用します。
2. データベースのスペース割り振りに関する問題
問題
時折、テーブル、索引、ロールバック・セグメントおよび一時セグメントに割り振られたスペースが不十分であるため、ジョブのインポートおよびエクスポートに失敗します。
症状
ロールバック・セグメントがいっぱいになるか、ロールバック・セグメントのテーブル・スペースがいっぱいになると、アラート・ログ・ファイルに以下のようなエラー・メッセージが表示されます。
ORA-1650: テーブル・スペース RBS 内でロールバック・セグメント RBS8 を 512 だけ拡張することができません。(unable to extend rollback segment RBS8 by 512 in tablespace RBS)
設定されているロールバック・セグメント 9 が状態 1650 の FULL 状況のためにロールバック・セグメントの拡張に失敗しました。
解決方法
- テーブル・スペース内に十分なフリー・スペースがあることを確認してください。より大きいジョブでは、ロールバック・セグメントおよび一時セグメントに、より多くのスペースが必要になる場合があります。
- データベース内のスペースの問題に関連してエラーが生成されたかどうかを調べるために、データベースのアラート・ログ・ファイルを毎日チェックします。
3. 実行中のジョブを kill すると WebSphere Product Center の動作が遅くなる
問題
ジョブを kill する場合は常に、インポートまたはエクスポートのように、データベース・システムは完全なトランザクションをロールバックして、データベースを整合性のある状態にする必要があります。このロールバック処理は、CPU 時間およびメモリーなどのシステム・リソースを最大限使用します。
症状
実行中のジョブを kill すると WebSphere Product Center ミドルウェアの動作が遅くなります。
解決方法
ロールバックが完了するまで待機すると、システムは通常の状態に戻ります。必要でないかぎり、実行中のジョブを kill しないでください。
4. ログの切り替えの再実行に関する問題
問題
ログ・ファイルの数またはサイズが不適切であるため、データベース・システムがログの切り替えの際に長い時間待機する可能性があります。
症状
すべての再実行ログ・ファイルがアクティブである場合、データベース・システムは、ログの切り替えの際に非常に長い時間待機中になります。
解決方法
- ログ・ファイルの数を増やします。
- 再実行ログ・ファイルのサイズを増やします。
5. WebSphere Product Center ミドルウェアが停止し、GUI がフリーズする
問題
WebSphere Product Center ミドルウェアへのアクセス中にエラーが現れると、データベースへの接続が失われることがあります。
症状
WebSphere Product Center ミドルウェアがフリーズするか、常に待機状態になります。WebSphere Product Center ミドルウェアにアクセスしようとするとエラーが現れます。
解決方法
- リスナー・プロセスの状況をチェックします。
- データベースまたは WebSphere Product Center ミドルウェア画面への接続を確立できない場合は常に、データベースの状況をチェックします。
6. スキーマ・ジョブの停止を分析する
問題
大量のデータをデータベースにロードしたり、データベース内のテーブルをパージする場合に、時々スキーマを分析することをお勧めします。
分析スキーマを実行する前に WebSphere Product Center ミドルウェアを停止する必要があります。ミドルウェアを停止しないと、テーブルがミドルウェアによって使用されているため、分析スキーマのジョブがハングしてしまう場合があります。
症状
分析スキーマを実行すると WebSphere Product Center がハングします。
解決方法
分析スキーマがハングする場合、分析ジョブを kill し、WebSphere Product Center ミドルウェアを停止して、スキーマを再度分析してから WebSphere Product Center を始動します。
定期的な間隔でスキーマを分析し、データベース内のデータ分布に関する最新の統計を収集します。
システム・ログ・ファイルをモニターして検討することは、多くの問題を診断して解決するのに役立ちます。
注: この章は次バージョンの資料で拡張される予定です。 ログ・ファイルの使用およびトラブルシューティングの技法についての詳細な情報が提供されます。
HTTP ポスト・エラー
HTTP ポスト・エラーが発生した場合、以下の点を考慮してください。
1. WebSphere Product Center ボックスにターゲット宛先を表示することができるか?
- "Lynx" などの Linux / Unix HTTP ブラウザーを使用し、WebSphere Product Center ミドルウェアの URL を入力して、ターゲットにアクセス可能かどうかを調べます。
- ブラウザーが WebSphere Product Center サーバーから使用できない場合、宛先のポート 80 に Telnet を試みます。たとえば、宛先 URL が http://myserver/<urlname> の場合、"telnet myserver 80" と入力します (ポート 80 は、ほとんどの Web サーバーのデフォルトの HTTP ポートです)。
2. WebSphere Product Center に宛先を表示できる場合、WebSphere Product Center Distributor は正常に作動しているか?
- $TOP/public_html/created_files/distributor の下の新規ファイルが存在するかどうかチェックします。ファイルをプッシュした時刻に関するおおよそのタイム・スタンプがファイルに含まれているかどうかを調べます。
- runaway スクリプトが正しくない出力ファイルを生成した可能性があります。ファイル・サイズをチェックします。ファイル・サイズは予期したものに対応していますか? ファイルが XML であるかその他の読み取り可能なファイルである場合、そのファイルを表示してみます。そのファイルには、予期していた正しい情報が含まれていますか?
3. ファイルが存在する場合、転送が進行しているか?
- さまざまなツールを使用して、実際の転送が進行中であるかどうかを調べることができます。最低限のこととして、"netstat" および "snoop" (Solaris の場合) あるいは "tcpdump" (Linux の場合) の組み合わせを使用する必要があります。
- 期待が現実的であるかどうかを考慮します。ファイル・サイズが 300 MB であり、それがインターネットを介して URL にポストされている場合、そのファイルはインターネット接続の最高速度でのみ転送することができます。
FTP フェッチ・エラー
WebSphere Product Center がターゲット FTP サーバーにログインしようとして、 指定したディレクトリーの検索に失敗すると、 「リモート・ディレクトリーに変更することができません。(Unable to change to remote directory.)」 というエラーが発生します。
このエラーには以下の 2 つの理由があります。
- ターゲット FTP アドレスが WebSphere Product Center サーバーからアクセスできない。WebSphere Product Center サーバーから、FTP でファイルをターゲット FTP に直接転送して、ファイル転送が正常に行われるかどうかを検証してください。
- 使用されているファイル名が正しくない可能性がある。大文字になっていないかどうか、またスペルの間違いがないかどうかをチェックしてください。
Java 接続のテスト
JDBC URL はファイル common.properties で定義されます。WebSphere Product Center ミドルウェアから JDBC URL への Java 接続をテストするには、以下のスクリプトを使用します。
$TOP/bin/test_java_db.sh
スクリプトはデータベースに接続を試み、簡単な 'select count(*) from dual' を実行します。接続が確立されると、テスト・スクリプトからの結果が表示されます。
WebSphere Product Center の停止および再始動
Linux / Solaris で通常の停止スクリプトを使用した際の問題が報告されています。WebSphere Product Center が正常またはスムーズに停止しないようです。このような場合には、以下のステップを使用して WebSphere Product Center を停止して始動します。
1. 以下のスクリプトを実行して WebSphere Product Center を停止します。
$TOP/bin/go/stop_local.sh
2. 約 1 分待機してから、以下のコマンドを入力します。
ps -u (USERNAMEWITHOUT THE PARANTHESIS)
3. アクティブな Java プロセスがある場合、スケジュールされたジョブが進行中である可能性があります。必要であれば、ジョブを完了してください。そうでない場合は以下のスクリプトを使用してジョブを手動で停止してください。
$TOP/bin/go/abort_local.sh
4. 約 30 秒待機してから、以下のコマンドを入力します。
ps -u (USERNAMEWITHOUT THE PARANTHESIS)
5. 依然としてアクティブな Java プロセスが存在する場合、JVM は破損していると思われます。以下のコマンドを使用して、Java プロセスを手動で kill する必要があります。
kill `ps -u (括弧なしでユーザー名を指定)
| grep java | cut -b10-15`注: java のプロセスが何かまだ残っている場合には、 システムを再始動する必要がある場合があります。
6. Java プロセスをすべて kill したら、以下のスクリプトを使用して WebSphere Product Center を再始動します。
$TOP/bin/go/start_local.sh
7. 約 1 分待機して、WebSphere Product Center が正常に始動したかどうかを検証します。スクリプト $TOP/bin/go/rmi_status.sh を実行するか、WebSphere Product Center 環境にログインします。
WebSphere Product Center バージョン 4.2.0.x からバージョン 5.2 にマイグレーションを行うために、マイグレーション・フレームワークを使用できます。WebSphere Product Center 5.0 および 5.1 から 5.2 へのマイグレーション・フレームワークは、今後提供される予定です。5.0 と 5.2 リリース間には大きな変更がほとんどないため、必要に応じて手動でマイグレーションが実行できます。詳しくは、WebSphere Product Center 担当営業員にご確認ください。
4.2.0.x に用意されているシェル・スクリプトを以下に示します。これらは、WebSphere Product Centerの特定の会社のすべてのオブジェクトをエクスポートおよびインポートするのに役立ちます。
エクスポート
インポート
上記のスクリプトを使うと、バージョン 4.2.0.x のすべての WebSphere Product Center オブジェクトを ZIP ファイルに容易にエクスポートできます。次いで、この ZIP ファイルを 5.2 にインポートして、マイグレーション・アクティビティーを実行します。
WPC 4.2.0.x の会社は、2 つの方法でエクスポートできます。
1. $TOP/bin/exportCompanyAsZip.sh という名前のシェル・スクリプト・ユーティリティーを使用する。
使用法:
exportCompanyAsZip --company_code=<code> --script_path=<path/to/trigo/script>
ここで、それぞれの意味は以下のとおりです。
以下のサンプル・スクリプトが用意されています。
envObjList = new EnvObjectList();
envObjList.addAllObjectsToExport("CATALOG");
envObjList.addAllObjectsToExport("HIERARCHY_MAPS");
envObjList.addAllObjectsToExport("MAPS");
envObjList.addAllObjectsToExport("FEEDS");
envObjList.addAllObjectsToExport("LOOKUP_TABLE");
envObjList.addAllObjectsToExport("ATTRIBUTE_COLS");
envObjList.addAllObjectsToExport("CONTAINER_ACCESSPRV");
envObjList.addAllObjectsToExport("HIERARCHY");
envObjList.addAllObjectsToExport("COMPANY_ATTRIBUTES");
envObjList.addAllObjectsToExport("SPEC");
envObjList.addAllObjectsToExport("DATASOURCE");
envObjList.addAllObjectsToExport("USERS");
envObjList.addAllObjectsToExport("ACG");
envObjList.addAllObjectsToExport("ROLES");
envObjList.addAllObjectsToExport("CATALOG_CONTENT");
envObjList.addAllObjectsToExport("HIERARCHY_CONTENT");
envObjList.addAllObjectsToExport("LOOKUP_TABLE_CONTENT");
envObjList.addAllObjectsToExport("DOC_STORE");
envObjList.addAllObjectsToExport("MY_SETTINGS");
envObjList.addAllObjectsToExport("DISTRIBUTION");
envObjList.addAllObjectsToExport("DOC_STORE");
sDocFilePath = "archives/company.zip";
exportEnv(envObjList, sDocFilePath);
2. 上記のスクリプトを使用して、このスクリプトを直接 WebSphere Product Center のスクリプトが使用可能な環境で実行する (たとえば、インポート・ジョブ、レポート、または直接スクリプト・サンドボックスで実行する)。
いくつかの事前定義 WPC オブジェクトは、$TOP/bin/exportCompany.sh シェル・スクリプトを利用して、WPC 環境からスクリプトとしてエクスポートできます。このようにシェル・スクリプトとしてエクスポートしたオブジェクトを別環境で実行すれば、WPC オブジェクトを再作成することができます。しかし、このユーティリティーは WPC オブジェクトのコンテンツ (たとえば、階層にあるアイテム情報またはカテゴリー情報) をエクスポートできないため、このユーティリティーがマイグレーションの一部として、WPC オブジェクトのエクスポートのために使用されることはありません。
会社のインポートは 3 つの方法で行うことができます。
1. シェル・スクリプト $TOP/bin/importCompanyFromZip.sh を使用する。
使用法: importCompanyAsZip --company_code=<code> --zipfile_path=<path/to/import/archive>
ここで、それぞれの意味は以下のとおりです。
company_code はインポートする会社の会社コードです。
zipfile_path は、会社の ZIP アーカイブの置かれている文書ストア内のロケーションです。
2. WPC スクリプト操作 importEnv(String sDocFilePath) を使用する。
ここで、それぞれの意味は以下のとおりです。
sDocFilePath は、会社の ZIP アーカイブが置かれている文書ストア内のロケーションです。
WPC の会社は、exportCompany.sh の結果を使用してインポートすることもできます。しかし、 exportCompany.sh は WPC オブジェクトのコンテンツ (たとえば階層にあるアイテム情報またはカテゴリー情報)を エクスポートできないため、これがマイグレーションの一部として使用されることはありません。
3. アプリケーション GUI の「環境のインポート」オプションを使用する。
アプリケーションの GUI を使用してデータをインポートする。
以下の WPC オブジェクトは、WPC 4.2.0.x で提供されているインポート/エクスポート・ツールの既存フレームワークの一部としてエクスポートされません。
選択
4.2.0.x で提供されているエクスポート機能は、上記の WPC オブジェクトのエクスポートをサポートするために更新される予定です。
WPC 5.2 では、これまでのバージョンにすでに存在している RPC/エンコード形式に加えて、ドキュメント/リテラル・ベースの SOAP 要求に対応するサポートが提供されます。このマイグレーションは、まずテストする必要があります。
4.2.1 には、インポート/エクスポート・ツールの公式リリースが含まれます。このリリースには、「環境のインポート」に GUI の機能が提供されています。この GUI 機能により、WebSphere Product Center が同じバージョンであれば、ある会社から ZIP ファイルを介してエクスポートしたデータを、WebSphere Product Center 内の別の会社にインポートすることができます。
XML 制御ファイルはインポートの順序を定義します。この制御ファイルは、エクスポート中に作成され、ZIP ファイルに圧縮されます。 マイグレーション・フレームワークとして、4.2.0.x で exportCompanyAsZip.sh を使用し、すべての会社データをエクスポートすることをお勧めします。このスクリプトの出力 ZIP ファイルは、「環境のインポート」または 5.2 の importCompanyFromZip.sh によるインポートとも互換性があります。
Web サービス記述言語 (WSDL) サポート - 簡単な要求メッセージに対する WSDL 1.2 および SOAP 1.2 要求/応答のサポートです。 コラボレーション・マネージャー・メニューには、Web サービス・コンソール内でサービスをセットアップするための Web サービス・モジュールが組み込まれています。現在は、SOAP over HTTP のみがサポートされたプロトコルです。
定義
WebSphere Product Center では、API レイヤーとして使用できるスクリプト・レイヤーが提供されています。 こうしたスクリプトは、後ほど Web サービスとして公開できます。WebSphere Product Center で公開する必要のあるすべてのビジネス機能に対して、Web サービスを作成します。Web サービスと対話するため、対応する要求側アプリケーションを作成します。 Web サービスは 1 つ以上のスクリプトを WebSphere Product Center で実行し、所要のビジネス機能を提供するため他の Web サービスと連動します。
以下の図は、簡単な要求メッセージ用の WSDL 1.2 および SOAP 1.2 要求/応答のユース・ケースを示しています。
Web サービスは、Web サービス・コンソールを使用してセットアップします。以下のステップでは、一般的な WSDL ユース・ケースを使用しています。
1. Web サービス・コンソール -「新規」をクリックして、以下のフィールドに必要な情報を入力します。
- Web サービス名 (たとえば、Item_Request)
- Web サービスの説明 (たとえば、「外部アプリケーションが、GTIN、UPC、GLN、および Target Market などのアイテムの ID 属性に基づいてアイテムの詳細情報を要求できるようにする」)
- Web サービス定義ファイル (下記の説明を参照)
- Web サービス・インプリメンテーション・スクリプト (Web Services Implementation Script)(下記の説明を参照)
2. Web サービス定義ファイル
Web サービス定義ファイルは Web サービス・コンソールからアップロードされ、このファイルには Web サービスの説明が WSDL 1.2 形式で含まれます。この Web サービスは SOAP 1.2 要求/応答エンコードを使用し、WSDL ファイルには以下が含まれています。
- 要求メッセージの XSD
- 応答メッセージの XSD
- フォールト・メッセージの XSD
- WSDL 1.2 で必要な他のすべてのコンテンツ
注: Web サービス定義ファイルはデフォルトの HTTP サーバーに発行されます。このサーバーは、WebSphere Product Center 用の HTTP サーバーです。また、このサーバーは Web サービス定義スクリプトが発行される場所でもあります。 このシステムでは、「ヘルプ」ボタンを使用すると必要な情報が得られます。
3. Web サービス・インプリメンテーション・スクリプト - Web サービス・インプリメンテーション・スクリプトは、前述の Web サービス定義を満たす SOAP 1.2 要求メッセージが着信すると呼び出されます。 Web サービス・インプリメンテーション・スクリプトは以下の事柄を行います。
- 前述の Web サービス定義ごとに、SOAP 1.2 要求メッセージを解析します。
- 通常、1 つ以上の WebSphere Product Center コンテナーから製品情報を照会します。
- 製品情報を含む SOAP 1.2 応答メッセージを作成します。
- SOAP 1.2 応答メッセージを要求側アプリケーションに伝送します。
- 要求および応答メッセージを文書ストアに記録し、さらに文書ストア内のメッセージに対するリンクを、メッセージ・コンソールでアクセスできる方法で記録します。
4. 要求側アプリケーションの要求メッセージ - 要求側アプリケーションの管理者は、ステップ 2 で説明されている Web サービス定義に従って SOAP 1.2 メッセージを作成するプロセスを書き込みます。
5. 要求側アプリケーションの応答メッセージ - 要求側アプリケーションの管理者は、ステップ 2 で説明されている Web サービス定義に従って SOAP 1.2 メッセージを受け取って処理するプロセスを書き込みます。
Web サービスをセットアップした後、次のイベントが発生します。
1. ユーザーは、要求側アプリケーションから WebSphere Product Center HTTP サーバーへの SOAP 1.2 メッセージを起動する要求側アプリケーション内のプロセスを実行します。
2. 要求メッセージには、GTIN、UPC、GLN、および Target Market などの ID 属性のみが含まれます。
3. WebSphere Product Center は、Web サービス・インプリメンテーション・スクリプトを実行して、SOAP 1.2 要求メッセージを解析し、製品情報にアクセスして、SOAP 1.2 応答メッセージを作成し、さらにその応答メッセージを伝送します。
4. (オプション) - システムは、要求メッセージおよび応答メッセージを文書ストアに記録します。文書ストアのメッセージに対するリンクを、メッセージ・コンソールでアクセスできる方法で記録します。
5. 要求側アプリケーションが、応答メッセージを受け取ります。
6. 要求側アプリケーションは、応答メッセージに基づいて行動します。
以下のファイルは、WebSphere Product Center 全体にあるさまざまなサブシステムを制御します。生成されるログのロケーションは各ファイルで定義されます。
注: すべてのパスは $TOP と相対関係にあります。
/etc/logs/eventprocessor.log.xml
/etc/logs/scheduler.log.xml
/etc/logs/system.log.xml
/etc/logs/appsvr.log.xml
/etc/logs/workflowengine.log.xml
Web サービス・コンソールによって、ユーザーは、 WebSphere Product Center が公開する Web サービスを作成および管理することができます。 サービスを定義するために WSDL 文書を書くことができ、 サービスの実行方法を制御するためのインプリメンテーション・スクリプトが作成されます。
Web サービス・コンソールには、次の列があります。
- 名前: Web サービスの名前。名前をクリックすると、Web サービスの詳細が表示されます。
- 説明: Web サービスの簡単な説明。
- プロトコル: 現在は、SOAP_HTTP のみ利用できます。
- トランザクション: サービスのトランザクションの数。 数をクリックすると、トランザクションが表示されます。または、「削除」ボタンをクリックすると、 コンソールから Web サービスが除去されます。
Web サービス・コンソールにアクセスするには、次のメニューを使用します。
「コラボレーション・マネージャー」>「Web サービス」>「Web サービス・コンソール」
新規 Web サービスを作成するには、次のメニューを使用します。
「コラボレーション・マネージャー」>「Web サービス」>「新規 Web サービス」
「Web サービスの詳細」画面が表示されます。新規 Web サービスを定義するために必要な情報を入力します。
このセクションでは、「Web サービスの詳細」画面の各フィールドについて説明しています。
注: 文書リテラル・スタイルの Web サービスのサポートに加えられた変更に関しては、以下のセクションを参照してください。
Web サービス名: Web サービスの名前を入力します。この名前は SOAP サービスの URL の一部になります。 空白を含んではいけません。
Web サービスの説明: Web サービスの説明を入力します。
プロトコル: Web サービスで使用されるプロトコル。現在は、SOAP over HTTP のみがサポートされたプロトコルです。 デフォルト値は“SOAP_HTTP”です。
スタイル: スタイルは、「DOCUMENT_LITERAL」か「RPC_ENCODED」のどちらかです。ドキュメント/リテラル・サービスをインプリメントする WPC スクリプトには要求本体すべてが渡され、応答本体すべてを戻します。 RPC/エンコード・サービス WPC スクリプトにはストリング・パラメーターの配列が渡され、単一ストリングを戻します。 RPC/エンコード・サービスは単純なアプリケーションに容易に対応でき、ドキュメント/リテラル・サービスはより複雑なサービスに対応する点で高い柔軟性を発揮します。
URL: このサービスにアクセスするための URL です。Web サービスを保管した後、このフィールドに自動的にデータが取り込まれます。
WSDL URL: この Web サービスの WSDL にアクセスするための URL です。Web サービスを保管した後、このフィールドに自動的にデータが取り込まれます。
WSDL: このサービスの WSDL を入力します。WSDL 文書は、このサービスのインターフェース、URL、およびプロトコルについて説明した XML 形式の文書です。この文書を手動で入力する必要があります。WSDL 文書のサンプルについては以下をご覧ください。正しく保管するには、Web サービスに有効な XML を入力する必要があります。
インプリメンテーション・スクリプト: このサービスをインプリメントする WPC スクリプトを入力します。RPC/エンコード・サービスの場合、サービスの着信パラメーターは、配列変数 "soapParams" で使用でき、サービスの戻り値はストリングでなければならず、"out" 書き出し変数に書き出されます。 ドキュメント/リテラル・サービスの場合には、SOAP 要求本体はストリング変数 "soapMessage" で提供され、応答本体は "out" 書き出し変数に書き出されます。 どちらのスタイルの場合も、SOAP フォールトを戻すには、フォールト・コードを "soapFaultCode" 書き出し変数に書き出し、フォールト・メッセージを "soapFaultMsg" 書き出し変数に書き出します。インプリメンテーション・スクリプトのサンプルについては、以下をご覧ください。
要求を保管しますか?: これにチェック・マークを付けると、WPC はすべての着信要求のパラメーターを文書ストアに保管します。これはトランザクション・コンソールから使用できます。
応答を保管しますか?: これにチェック・マークを付けると、WPC はすべての応答の内容を文書ストアに保管します。これはトランザクション・コンソールから使用できます。
デプロイ済み: これにチェック・マークを付けると、サービスがデプロイされます。チェック・マークを付けない場合、このサービスを利用できません。
以下のドキュメント/リテラル Web サービスは、指定されたティッカー・シンボルの株価情報を戻します。 この限定された例では、「IBM」ティッカー・シンボルの値のみを戻し、その他すべての引数は SOAP フォールトになります。
この Web サービスのエンドポイントは、以下のシグニチャーの Java メソッドと同じです。
java.math.BigDecimal getStockQuote(String ticker);
インプリメンテーション・スクリプト
// parse the request document
var doc = new XmlDocument(message);
// get the ticker parameter
var ticker = parseXMLNode("ticker");
// we only give out ibm quotes around here...
if (ticker == "IBM") {
out.println("<ibm:getStockQuoteResponse
xmlns:ibm=¥"http://ibm.com/wpc/test/stockQuote¥">");
out.println(" <ibm:response>123.45</ibm:response>");
out.println("</ibm:getStockQuoteResponse>");
}
else {
soap_fault_msg.print("Only quotes for IBM are supported");
}
WSDL
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:y="http://ibm.com/wpc/test/stockQuote"
targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote"
elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address
location="http://example.wpc.ibm.com/services/StockQuoteService"/>
</port>
</service>
</definitions>
すべての Web サービスのトランザクションを検索するには、以下のメニュー・パスを使用して、トランザクション・コンソールを表示します。
「コラボレーション・マネージャー」>「Web サービス」>「トランザクション・コンソール」
1. トランザクション・コンソールの Web サービス・トランザクション・テーブルからトランザクションのリストを表示します。
2. 「応答」または「要求」列から、「表示」ボタンをクリックします。 新規ブラウザー・ウィンドウにトランザクションの詳細が表示されます。
1. トランザクション・コンソールで、 「Web サービス・トランザクション検索」テーブルの「到着開始日」と「到着終了日」 フィールドを使用して、日付の範囲を選択します。
2. 「検索」ボタンをクリックします。検索テーブルの下の「Web サービス・トランザクション」テーブルに、 すべてのトランザクションの結果が表示されます。
サプライヤーのポータルと統合することには、以下のものを含め小売業者には数多くの利点があります。
WebSphere Product Center では、WebSphere Portal Server と適切に統合するための Web サービス・フレームワークが用意されており、以下の機能が含まれています。
WebSphere Portal Server と統合するため、Web サービスには以下の機能のサポートが組み込まれています。
そのため、Web サービス・フレームワークには以下の機能が含まれています。
以下にリストされているスクリプト操作は、Web サービスの WebSphere Product Center サポートに対応しています。スクリプト・サンドボックスで使用可能です。
注: 各スクリプト操作のさらに詳細な情報 (プロトタイプおよび説明) については、WebSphere Product Center のスクリプト・サンドボックスを参照してください。
· createWebService
· deleteWebService
· getDesc
· isDeployed
· getLoginString
· getImplScriptPath
· getName
· getProtocol
· getStoreIncoming
· getStoreOutgoing
· getStyle
· getUrl
· getWebServiceByName
· getWsdlDocPath
· getWsdlUrl
· invokeSoapServer
· saveWebService
· setDeployed
· setDesc
· setImplScriptPath
· setName
· setProtocol
· setStoreIncoming
· setStoreOutgoing
· setStyle
· setWsdlDocPath
このセクションでは、WebSphere Product Center における Web サービスのドキュメント/リテラル・スタイルのサポートの詳細について取り上げます。Web サービスの RPC/エンコード・スタイルは、以前のバージョンで既に使用可能でした。しかし RPC/エンコード Web サービスは、簡単なストリング・タイプに限りサポートしていました。 複合タイプの送受信のサポートに対する要求に応えるため、WebSphere Product Center には Web サービスのドキュメント/リテラル・スタイルのサポートが組み込まれています。
ドキュメント/リテラル・スタイルの Web サービスをデプロイするには、サービスのスキーマ、および要求の受信時に起動するための Websphere Product Center トリガー・スクリプトを定義する WSDL が含まれる Web サービスをユーザーが作成する必要があります。 Web サービスを保管する際、そのサービスがデプロイされるよう、ユーザーは明示的に選択しなければなりません。デプロイメント時には、Websphere Product Center は、デプロイ済みの WSDL にアクセス可能な Web サービスの URL を作成します。Web サービスの URL は、以下の形式をとります。
http://<application-webserver>:<application-port-number>/services/<stored-webservice-name>
URL の最後に「?wsdl」というストリングを追加すると、Web サービスの保管済み WSDL へのパスとなります。
ドキュメント/リテラル Web サービスに対する要求は SOAP エンベロープに入れられ、SOAP メッセージの本体には要求文書全体が組み込まれます。 この要求文書は適切な XML 形式で記され、Websphere Product Center Web サービス・ハンドラーにそのまま渡されます。呼び出し側は、呼び出す Web サービスの保管済み WSDL のスキーマ・ノードの形式に関する予備知識によって、この要求を作成します。
Websphere Product Center Web サービスの処理メカニズムがこの要求を受け取り、ドキュメント/リテラル・スタイル要求の WSDL スキーマに基づいてコンテンツを検証します。要求が WSDL スキーマに従っていない場合には、AxisFault がスローされます。スキーマに準拠している場合、Websphere Product Center は要求本体からネーム・スペース参照を除去して、その変更された要求を、デプロイメント時に保管された Websphere Product Center トリガー・スクリプトに渡します。Websphere Product Center のスクリプト・コンテキストはネーム・スペースが使用された XML 文書を処理することができないため、ネーム・スペースの除去が必要となります。 Websphere Product Center トリガー・スクリプトは要求のコンテンツを取得して、スクリプト作成者の定義に従ってそれを使用します。スクリプトは、着信要求に対する有効な応答としてその結果を出力します。 そのため、出力が戻される前に、WSDL に関して応答が検証されます。
例:
ドキュメント/リテラル・スキーマは、以下のようになります。
<element name="getStockQuote"/>
<complexType>
<sequence>
<element name="ticker" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getStockQuoteResponse"/>
<complexType>
<sequence>
<element name="response" type="xsd:decimal"/>
</sequence>
</complexType>
</element>
クライアントが getStockQuote("IBM") を呼び出した場合、フローは以下のようになります。
1. Websphere Product Center は Axis SOAP スタックから SOAP 要求を受け取る。
2. Websphere Product Center は、前述のスキーマに基づいて要求メッセージを検証する。
3. Websphere Product Center は、要求本体からネーム・スペース・プレフィックスすべてを除く。 このスキーマではデフォルト・ネーム・スペースにすべてが定義されているため、除去は必要ありません。
4. Websphere Product Center は、Web サービス・トリガー・スクリプトを起動する。入力変数は、以下のとおりです。
- operationName = "getStockQuote"
- message =
"<getStockQuote>
<ticker>IBM</ticker>
</getStockQuote>"5. トリガー・スクリプトは、"out" 書き出しに応答を書き出す。
- out =
"<getStockQuoteResponse>
<response>83.76</response>
</getStockQuoteResponse>"6. Websphere Product Center は、前述のスキーマに基づいて応答を検証する。
7. Websphere Product Center は、Axis SOAP スタックを介して、SOAP 応答全体をクライアントに戻す。
以下にリストされているのは、ドキュメント/リテラル・スタイルをサポートするために加えられた変更です。
WebSphere Product Center のバージョンによっては、データベース (DB2/Oracle) に若干の変更を実行する必要がある場合もあります。 マイグレーションについては、WebSphere Product Center 担当営業員にご相談ください。
http://java.sun.com/developer/technicalArticles/xml/jaxrpcpatterns/
(Xerces バージョン 2.4.0 で提供される) Websphere Product Center に同梱の XML 解析インプリメンテーションでの制限により、ネーム・スペース宣言は WSDL のスキーマ・ノード上でローカルに定義する必要があります。 ドキュメント/リテラル・スタイル Web サービスをデプロイする際には、特にこれに注意してください。 たとえば、以下は有効な WSDL ですが、Websphere Product Center はこれを正しく認識できません。
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>
正しく解析されるには、WSDL を以下のように書く必要があります。
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>
ケース ID: P16473
問題: 新しい Web サービスを作成し、WebSphere Product Center を再始動します。新しく作成された Web サービスを呼び出そうとすると、エラーが表示されます。
対処方法: 「public_html/WEB-INF」ディレクトリーの下にある「server-config.wsdd」Axis 構成ファイルへの書き込みアクセスを許可します。 さらに、WebLogic を使用する環境の場合には、 WebSphere Product Center インスタンスを拡張されたディレクトリー形式でデプロイしなければなりません。 そのようにしないと、再始動の際に Axis の自動再デプロイ機能によって WebSphere Product Center が作成した Web サービスがデプロイされずに、エラーが生じます。
ケース ID: P16059
ドキュメント/リテラルを使用して Web サービスを作成します。新しく作成した Web サービスを保管してから、再びそのサービスに戻り、その後スタイルを RPC/エンコードに変更してもう一度保管します。ドキュメント/リテラル・スタイルが表示されます。
これは、既知の制限です。ユーザーが、デプロイ済みの Web サービスのスタイルを変更することはできません。
1. common.properties に移動します。「soap_company」と「soap_user」の値を定義します。これは、データベースにアクセスしてスクリプトを実行するために、着信 SOAP 要求を使用する会社およびユーザーです。 さらに、「wpc_web_url」の値を定義します。
例:
soap_company=acme
soap_user=Admin
wpc_web_url=http://myinstance.acme.com:1234/
2. WebSphere Product Center を再始動します。「コラボレーション・マネージャー」->「Web サービス」->「新規 Web サービス」の順に移動します。以下に指定されている値を入力または選択します。
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Dave Marquard (IBM) -->
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>
// parse the request document
var doc = new XmlDocument(soapMessage);
// get the ticker parameter
var ticker = parseXMLNode("ibm:ticker");
// we only give out ibm quotes around here...
if (ticker == "IBM") {
out.println("<ibm:getStockQuoteResponse xmlns:ibm=¥"http://ibm.com/wpc/test/stockQuote¥">");
out.println("<ibm:response>123.45</ibm:response>");
out.println("</ibm:getStockQuoteResponse>");
}
else {
// do I need to print to soapFaultCode too?
soapFaultMsg.print("Only quotes for IBM are supported");
}
3. トランザクション・コンソールから要求履歴を表示できるようにするには、「要求を保管 (Store Requests)」にチェック・マークを入れます。
4 トランザクション・コンソールから応答履歴を表示できるようにするには、「応答を保管 (Store responses)」にチェック・マークを入れます。
5. Web サービスをデプロイするためには「デプロイ済み」にチェック・マークを入れます。Web サービスは、このオプションにチェック・マークを入れない限りは使用できません。
6. com.ibm.ccd.soap.test.StockQuoteTest.java を使用して、Web サービスを呼び出します。
使用法:: $JAVA_RT com.ibm.ccd.soap.test.StockQuoteTest <URL> <NUM_CASE>
例: $JAVA_RT com.ibm.ccd.soap.test.StockQuoteTest http://trillian:9099/services/DocumentWebServiceTest 0
<NUM_CASE> は、0 から 5 までの任意の整数が可能です。
0 は、IBM の株価情報を照会するために使用できます。詳しくは、StockQuoteTest.java を参照してください。
7. 応答は以下のようになります。
Called SOAP service at URL 'http://trillian:9099/services/TestingDocumentStyle14'
Request was '<ibm:getStockQuote xmlns:ibm="http://ibm.com/wpc/test/stockQuote">
<ibm:ticker>SNM</ibm:ticker>
</ibm:getStockQuote>'
SOAP call was successful.
Result was '<ibm:getStockQuoteResponse xmlns:ibm="http://ibm.com/wpc/test/stockQuote">
<ibm:response>123.45</ibm:response>
</ibm:getStockQuoteResponse>'
WebSphere Product Center のスケジューラーのコマンド行インターフェースは、外部スケジューラーとの統合が可能で、希望する場合は自動化された方法で実行できるようにインプリメントされています。 現在、このフィーチャーは IBM Tivoli Workload Scheduler で認証されます。 このフィーチャーによってユーザーは、 コマンド・インターフェースまたは Tivoli Workload Scheduler ユーザー・インターフェースのいずれかを使用して、 WebSphere Product Center のインポートまたはエクスポートを起動できます。
制限事項: このフィーチャーは、「English」のロケールの場合のみサポートされます。 言語として「US English」を使用してサーバーにインストールする場合、このフィーチャーを使用することができます。 出力コンソールに表示されるすべてのメッセージは英語なので、他のすべての言語は完全にサポートされているわけではありません。 他のすべてのグループ 1 ロケールは、将来のフィックスパックまたは WebSphere Product Center のメジャー・リリースでサポートされる予定です。
WebSphere Product Center のインポートおよびエクスポート・ジョブを実行する 2 つの方法があります。 1 つはコマンド・インターフェースを使用し、WebSphere Product Center スケジューラーを使用してジョブを起動するというもので、もう 1 つはTivoli Workload Scheduler ユーザー・インターフェースを使用するというものです。 後者の方法を呼び出すには、以下の前提条件を満たす必要があります。
1. Tivoli Workload Scheduler 8.2、Tivoli Management Framework 4.1、および Tivoli Management Framework 言語サポート 4.1 がアプリケーション・サーバーにインストールされている。
2. スケジューラー・ジョブが実行する環境で、シェル・スクリプト "run_job_template.sh" が "$TOP/bin/”フォルダーの下で確実に使用可能である。
3. ジョブの実行またはスケジューリングを行うために使用するデスクトップ上に、Tivoli Management Framework 4.1 をインストールする。
WebSphere Product Center のスケジューラーは、 WebSphere Product Center インストール $TOP/bin/run_job_template.sh が提供するシェル・スクリプトによって、 IBM Tivoli Workload Scheduler と統合します。 このシェル・スクリプトはスケジュールされたジョブが実行する環境で使用可能であることが必要で、 それぞれのジョブに固有のシェル・スクリプトが必要です。
たとえば、以下のようにします。
ジョブの名前 |
関連シェル・スクリプト |
Feed 1 |
run_job_feed1.sh |
Feed 2 |
run_job_feed2.sh |
DailyFeed3 | run_job_dailyfeed3.sh |
run_job_template は、実行するジョブごとにすべてのテスト環境または実稼働環境で変更が必要です。
たとえば、以下のようにします。
run_job_feed1.sh を開くと、以下の断片が表示されます。
#export TOP=<Path to WPC Installation home directory> # E.g. /usr/appinstalls/wpc52
#WPC_INIT_VARS=$TOP/setup/init_ccd_vars.sh
#. $WPC_INIT_VARS# Set the job related variables as needed and do not modify anything else after this
# CCD_JOB_NAME=<Job Name> # [Required]
# CCD_JOB_TYPE=<Job Type> # [Required, Valid values are import|export]
# CCD_COMPANY_CODE=<Company Code> # [Optional, Default Value is trigo]
# CCD_USERNAME=<User Name> # [Optional, Default Value is Admin]
# CCD_DEBUG=<Debug on or off> # [Optional, Default Value is off]
注: CCD_COMPANY_CODE のデフォルト値は "trigo" で、これは create_schema.sh の実行時に作成されるデフォルトの企業です。
上記のパラメーターの断片は、以下のように変更されます。
export TOP=/usr/trigo/wpc52_41/bin
WPC_INIT_VARS=$TOP/setup/init_ccd_vars.sh
. $WPC_INIT_VARS# Set the job related variables as needed and do not modify anything else after this
CCD_JOB_NAME=Feed1 # [Required]
CCD_JOB_TYPE=import # [Required, Valid values are import|export]
CCD_COMPANY_CODE=test # [Optional, Default Value is trigo]
CCD_USERNAME=m # [Optional, Default Value is Admin]
CCD_DEBUG=on # [Optional, Default Value is off]
Tivoli Workload Scheduler ユーザー・インターフェースを使用して、WebSphere Product Center のインポートまたはエクスポートを起動できます。 ユーザー・インターフェースは、どのジョブを実行またはスケジュールするかを定義するシェル・スクリプトを使用します。 このセクションでは、IBM Tivoli Workload Scheduler を使用したジョブの実行方法の詳細ステップを説明します。
WebSphere Product Center のジョブを Tivoli Workload Scheduler を使用して実行できるようにする前に、そのジョブを定義するタスクを作成する必要があります。
タスクの作成
タスクの作成によって、スケジュール・ジョブを実行するために使用するホストと、 必須シェル・スクリプト・ファイルへのパスが定義されます。
1. Tivoli デスクトップを開き、「Tivoli Management Environment」ダイアログ・ボックスで、 必須アプリケーションがマージ・スケジューラー・フィーチャーを使用するための必須アプリケーションが入っているサーバーの情報を入力します。 このフィーチャーには WebSphere Product Center 5.2、 Tivoli Workload Scheduler 8.2、 Tivoli Management Framework 4.1、および Tivoli Management Framework 言語サポート 4.1 があります。 完了したら、「OK」をクリックします。
- 「ホスト・マシン (Host Machine)」- ホスト・マシンの IP アドレスを入力します。
- 「ログイン名 (Log In As)」- ユーザー名を入力します。
- 「パスワード (Password)」- ユーザーのパスワードを入力します。
2. Tivoli Workload Scheduler のインストール先のホスト・マシンの名前をダブルクリックします。 「ポリシー領域 (Policy Region)」ダイアログが表示されます。
3. メニュー・バーから「作成」>「タスク・ライブラリー (Task Library)」を選択すると、「タスク・ライブラリーの作成 (Create Task Library)」ダイアログが表示されます。 新規タスク・ライブラリーの名前を入力し、「作成してクローズ (Create & Close)」をクリックします。
4. タスク・ライブラリーをダブルクリックして、タスクを作成します。 タスクの作成は、WebSphere Product Center でのジョブの作成に似ています。
5. メニュー・バーから、「作成」>「タスク (Task)」を選択し、タスクの名前を入力します。 たとえば、「Task for Feed 1」などです。
6. タスクの編集時に、タスクの実行に必要になる役割を選択します。
7. タスクを実行するプラットフォームを選択します。 タスクを AIX プラットフォーム上で実行する場合、AIX オプションをチェックすると、 「タスク用の AIX 実行可能ファイル (AIX Executable for Task)」が表示されます。 必須情報を、必須シェル・スクリプト run_job_template を使用可能にする場所に入力します。
- 「ホスト上 (On Host)」: run_job_template を使用可能にするホスト名を入力します。
- 「ファイルへのパス (Path to file)」: run_job_template を使用可能にするファイルへのパスを入力します。
注: run_job_template.sh に加えられる変更は、タスクに動的に反映されることはありません。 「タスクの編集 (Edit Task)」画面から、 プラットフォーム・オプションをチェック解除およびチェックして、 更新されたシェル・スクリプトのパスを指定して、加えられた最新の変更を反映するようにします。
"run_job_template.sh" の変更については、『run_job_template.sh の変更』のセクションを参照してください。8. 「作成してクローズ (Create & Close)」ボタンをクリックして、タスクに加えた編集を保管します。
タスクの実行
タスクをタスク・ライブラリーで作成したら、手動でまたはスケジュール時刻に実行できます。 実行時にタスクは、定義されたホストと "run_job_template.sh" スクリプト・ファイルを使用して、 WebSphere Product Center のインポート/エクスポートを開始します。
1. 「タスク・ライブラリー (Task Library)」画面から、希望するタスクをダブルクリックします。
2. 「デスクトップに表示 (Display on Desktop)」オプションをチェックして、実行の詳細およびジョブ完了の状況を表示します。
3. 「使用可能なタスク・エンドポイント (Available Task Endpoints)」から、適切なホストを選択し、 それが「選択されたタスク・エンドポイント (Selected task Endpoints)」で使用可能になるようにします。
4. 「実行 (Execute)」をクリックして、 「フォーマット出力 (Formatted Output)」画面で結果を確認します。 デスクトップにジョブ実行の詳細が表示されますが、 これは「ファイルに保管 (Save to File...)」をクリックして、ファイルに保管できます。
ジョブをスケジュールする前に、スケジュールする必要がある WebSphere Product Center ジョブのタスクを作成します。
タスクの作成
1. Tivoli デスクトップから、ホストをクリックし、 ジョブを作成したいタスク・ライブラリーをダブルクリックします。
2. 「作成」メニュー・オプションの下で、「タスク (Task)」を選択し、タスク名を入力します。
3. ジョブをスケジュールする必要があるタスクを選択します。
4. 「デスクトップに表示 (Display on Desktop)」オプションをチェックして、実行の詳細およびジョブ完了の状況を表示します。
5. 「使用可能なタスク・エンドポイント (Available Task Endpoints)」から、希望するホストを選択し、 それが「選択されたタスク・エンドポイント (Selected Task Endpoints)」で使用可能になるようにします。
6. 「作成してクローズ (Create & Close)」をクリックします。
タスクの実行
1. 「タスク・ライブラリー (Task Library)」ページに移動して、デスクトップを開いた状態にします。
2. ジョブ「Job for Feed 1」をドラッグして、それをデスクトップ上の「スケジューラー (Scheduler)」にドロップします。
3. ジョブ・ラベルを入力します。
ユーザーの要求に応じて、ここにはジョブの実行のためのいくつかのオプションがあります。 たとえば、ジョブは無期限に実行するようにスケジュールしたり、ユーザーの希望によって定期的な時間間隔で実行したりすることができます。 それで、要求に応じてユーザーは「スケジュールされたジョブの追加 (Add Scheduled Job)」ページの設定を変更できます。
ユーザーがジョブを、1 時間 (60 分) ごとの時間間隔内で 3 回実行するようにスケジュールしたいとします。 このようなシナリオでは、現在時刻がそれぞれのタイム・ゾーン設定で正確なサーバー時刻を示しているかを確認することが重要です。
4. 「ジョブを繰り返す (Repeat the Job)」をチェックして、3 を入力します。
5. 分数に 60 を入力します。
6. ユーザーが特定のグループに通知したい場合は、 「Tivoli 通知を送信 (Post Tivoli Notice)」をチェックして、 「選択可能なグループ (Available Groups)」をクリックし、 「選択可能な通知グループ (Available Notice Groups)」リストにあるグループを選択し、 「設定 (Set)」をクリックしてウィンドウをクローズします。
7. 「通知状況ダイアログをデスクトップに表示 (Post Status Dialog on Desktop)」をチェックします。
8. E メールがユーザー環境にすでにセットアップされている場合は、通知のために E メール ID を指定します。
9. 「ファイルに記録 (Log to File)」をチェックして、ログ・ファイル・パスを指定し、希望に応じてホスト名とファイル・パスを指定します。
10. 「ジョブのスケジュール (Schedule Job)」または「ジョブをスケジュールしてクローズ (Schedule Job & Close)」をクリックします。
ジョブの状況は、IBM Tivoli Workload Scheduler の通知機能により表示できます。 希望する場合、WebSphere Product Center にログインして、ジョブの状況を確認することもできます。
1. 「デスクトップ (Desktop)」ページで、「通知 (Notices)」をダブルクリックします。
2. 指定のグループを選択し、「開く (Open)」をクリックします。
希望する場合は、コマンド行インターフェースを使用して、WebSphere Product Center スケジューラーを使用したインポートまたはエクスポートを実行できます。 この場合は、スケジュールされたジョブを制御するサーバーへのアクセスに必要な権限をユーザーが持っている必要があります。
ジョブを起動するには、以下のコマンド行を使用します。
$JAVA_RT com.ibm.ccd.scheduler.common.RunJob --job_name="aaaa" --job_type=import|export [--company_code=bbbb --username=cccc --debug=on / off]
- job_name - スケジュールしたインポート/エクスポートの名前
- job_type - インポート/エクスポート・ジョブの選択
- company_code - スケジュールされたジョブのリンク先の会社名
- username - スケジュールされたジョブを起動できるユーザーの名前
- debug - ジョブ実行時のデバッグ詳細が入る
例:
$JAVA_RT com.ibm.ccd.scheduler.common.RunJob --job_name="Item Feed " --job_type=import --company_code=test --username=user1 --debug=on
これにより、「test」という会社からの「Item Feed」というインポート・ジョブが起動されます。
この章の目的は、WebSphere Product Center インプリメンテーションの統合の最良事例を要約することです。これらの最良事例を使用することは、高品質で信頼性の高いシステム間の統合を達成するのに役立ちます。統合のすべての局面を扱うために、本書は、統合の異なる局面のいずれかに関連した最良事例を識別するために開発されました。
統合のかぎとなる要素には以下のものがあります。
- 設計原則
- インプリメンテーション
- 検証
- 可視性
統合の各次元: 下にリストされている次元を使用して、WebSphere Product Center インプリメンテーションにあるさまざまな種類のインプリメンテーションを理解することができます。本書の残りの部分では、それぞれの最良事例やガイドラインが適している次元やインプリメンテーションの種類に焦点を当てます。
ソース・システムまたはターゲット・システムとしての WebSphere Product Center
最も明確な次元は、WebSphere Product Center がソース・システムであるか、 情報を交換するためのターゲット・システムであるかということです。ソース・システムはその制約を統合に適用しますが、 それに関して最も重要なのは、(a) デルタ・シンジケートを実行する能力、 (b) 統合を開始する能力、(c) データ送信の成功または失敗に関する通知を受け取り、 適切なアクションを実行する能力、(d) サポートされるプロトコルおよび形式、さらに EAI インフラストラクチャーのサポート、といった点などです。
システムの制御
ここでは、制御システムを、統合の内部トリガーに応じてアクションを実行するシステムとして定義しています。1 つの例では、WebSphere Product Center がシンジケートをジョブとしてスケジュールに従って実行します。別の例では、アイテムを追加すると、SAP が WBI アダプターをトリガーします。WebSphere Product Center が統合のためのソース・システムになるか、あるいはターゲット・システムになるかは、統合においてどのシステムが制御システムになるかに完全に依存しています。いくつかのケースが考えられます。FTP サーバーや EAI ツールなどの仲介者が関係している場合、ソース・システムとターゲット・システムの両方が制御システムになる可能性があります。レガシー・システムがスケジュールに従ってファイルを FTP サーバーに置きます。一方、WebSphere Product Center はスケジュールに従ってファイルを選択します。WebSphere Product Center が制御された宛先システムになる (つまり、データのインポートをトリガーする外部のものを待機する) 例では、IBM WBI は、たとえば Transora からアイテムを更新するというメッセージの内容とともに WebSphere Product Center に起動側を経由してメッセージをポストします。WebSphere Product Center が制御されたソース・システムになる (つまり、データのエクスポートをトリガーする外部のものを待機する) 例では、IBM WBI は WebSphere Product Center キューを定期的にポーリングし、すでに選択されたファイルがないかどうか調べます。
プロトコル
WebSphere Product Center インプリメンテーション・チームと顧客リソースには、プロトコル、形式、およびメッセージ対ファイル・ベースの統合において多くの混乱が存在します。このため、本書の目的の 1 つは、これらの概念に関する共通のノーメンクレチャー (銘板) が確立されたことを示すことです。プロトコルの例には、ファイル転送プロトコル (FTP)、Hyper Text Transfer Protocol (HTTP)、Simple Message Transfer Protocol (SMTP、E メールなど)、Java Messaging Service (JMS)、および IBM WebSphere Message Queuing (IBM WebSphere MQ) があります。プロトコルは、エンベロープ、数値などのデータのエンコード、および予期される応答を定義しますが、転送される内容とは無関係です。すべての統合において、常に少なくとも 1 つのプロトコルがあるため、使用されるプロトコルに関しては非常にはっきりしています。さらに、統合のさまざまな段階では、実際には異なるプロトコルを使用している場合があります。SAP の WBI アダプターは、HTTP を使用して SAP から WBI Inter Connection Server (ICS) へデータを転送している可能性があります。続いて、WebSphere Product Center が MQ クライアントとして接続している別のキュー・マネージャーにそのデータが転送されるように、IBM MQ キュー・マネージャーに渡します。
形式
データがレイアウトされている形式は、プロトコルとは独立しています。形式の例には、コンマ区切り値 (CSV)、パイプ区切り、eXtensible Markup Language (XML)、あるいは、単に事前定義された幾つかのフィールドおよび電子データ交換 (EDI) メッセージなどのレコード構造があります。それぞれの形式は、ロケーション・パラメーターおよび長さパラメーター、あるいはタグを使用してフィールドを定義します。特定の形式に必要になる可能性があるエンコードについて留意することは重要です。たとえば、不等号括弧 ('<'、'>') などの文字を XML ではエスケープする必要があるということや、CSV ではコンテンツに実際にはコンマが含まれる可能性があるということは、インプリメンテーションにおいてしばしば見落とされます。
データのサイズ
この次元は、"メッセージ・ベース" の通信あるいは "ファイル・ベース" の通信と混乱してしまうことが非常に多いため、この点を正しく理解することは重要です。"メッセージ・ベース" の統合には通常、小さいデータの交換、および以下のようなプロパティーが含まれると想定されます。
- データは、より頻繁に、より小さい塊として交換されているため、エクスポートおよびインポートが毎週行われる、伝統的な "バッチ" 指向のシステムよりも非常に短い時間間隔で変更を通信することができます。
- 2 つのシステム (ソースおよび宛先) は、互いに連絡を取り、処理用に選択される前に FTP で送信されたり、一週間ファイル・システムにとどまる可能性のある生成ファイルではなく、送信されたメッセージが処理され、受信確認が戻されます。
ただし、ファイル・ベースまたはバッチ統合からメッセージ・ベースを区別する明確な線引きはありません。それで、混乱したり重複した次元ではなく、明確な次元のセットを定義することは重要です。こうして、データの全体のサイズは、"メッセージ・ベース" か "バッチ" 統合としてラベルが付けられるかということよりも、考慮すべき重要な次元といえます。
通信のタイプ
考慮すべき別の次元は、統合に関係する通信のタイプです。同期式通信によって、特定のアクションの結果としてユーザーまたはシステムへの直接フィードバックを提供します。たとえば、HTTP を使用して通信することによって、アクションがポストされた後にシステムまたはユーザーへの自動フィードバックが提供されます。一方、非同期式通信は、"応答不要送信" ストラテジーの多くを使用します。たとえば、その後システムによって選択される FTP サーバー上でのファイルのデポジットが、統合に関係している場合、アクションの結果のファイルをデポジットするシステムへの自動フィードバックはありません。
頻度
"データのサイズ" という次元とともに、この "頻度" という次元は、定期的に処理する必要のあるデータの合計量を捉えます。
統合スレッド
この仲介システムおよびインフラストラクチャーの次元は、EAI インフラストラクチャーを使用するかどうかを捉えます。さらに、レガシー・システムとの統合では時折、データをレガシー・システムへアップロードまたは抽出するために、仲介プログラムが書かれる可能性があります。これらの仲介システムまたはプログラムは、ほとんどの場合統合チェーンにおいて最も弱いリンクであるため、これを理解および文書化することは重要です。
特に、複数のホップが必要になる可能性のある複雑な統合 (例、WebSphere Product Center と WBI と宛先システムなど)、標準ではない方法 (データベースの直接更新など)、複数のプロトコル、あるいは他の通信方法 (ファイアウォールを介した通信など) では、早めに単一の作業スレッドまたは統合の完了パスを確立します。これによって、問題を識別し、他の関係者 (ネットワーク管理者、あるいは IBM WBI で作業するチームなど) にこれらの接続問題を並行して解決するための適切な時間を提供します。
上にリストされている統合の各次元は、WebSphere Product Center インプリメンテーションでの統合について説明する際の標準の用語になります。分析 / 設計の段階で PS チームによって提供される文書は、これらの次元を明確にまた一貫して使用する必要があります。
頭字語
頭字語
定義
EAI
エンタープライズ・アプリケーション統合
FTP
ファイル転送プロトコル
HTTP
Hyper Text Transfer Protocol
MQ
IBM のメッセージ・キューイング・ミドルウェア。すべての接続ソリューションは、現在 WebSphere ブランドの下にあるため、しばしば IBM Websphere MQ と呼ばれます。
ICS
IBM の WBI Inter Connect Server
WBI
IBM の WebSphere Business Integration スイート、IBM からの EAI スイート。
再利用性
統合のインプリメンテーション方法の基礎となる全体的な基盤は、再利用性です。WebSphere Product Center が成長し、より多くのクライアント・インプリメンテーションが実行されるにつれて、事前に統合されていないシステムとの統合と、事前インプリメンテーションで統合されたシステムとの統合の両方をすばやくスケーリングおよび解決することが必要です。この要件を解決するには、別のクライアント用に同じシステムを統合する場合に最大の効果性をもってこれを行うことができる、という再利用性を念頭に置いてすべての統合努力を行う必要があります。
再利用性は次のように実現されます。(a) IBM WBI などの EAI ツールおよび汎用ビジネス・オブジェクトのそのモデルを利用する、(b) データ・モデルから独立した形式を選択する、(c) データ・モデルから独立し、他のインプリメンテーションで再利用できる WebSphere Product Center スクリプト (肯定応答、ポーリングなど) のライブラリーを書く。
情報の共有
統合する方法としての通信
概念上は、統合は、制御システム WebSphere Product Center および制御されるシステムとの通信によってトリガー可能な、単なる一連のイベントと見なすことができます。これらのイベントは、システム間で渡されるメッセージ、コンテンツまたはファイルをポーリングする自動処理、あるいはその他の基本的な通信方法によってトリガーできます。たとえば、通信には、加えられる変更のタイプ (追加、更新、削除)、固有の通信 ID (追跡 / 確認用)、および WebSphere Product Center 内または統合システム内のいずれかでの変更に影響する関係するコンテンツが含まれます。
信頼性の尺度
変更を通信するためにシステム間で情報を渡すことに加えて、特定のトランザクションの成功および失敗を知らせるための手段も必要です。このようなハンドシェーク通信は、通信の同期フォームを使用して最も直感的にインプリメントし、統合システムが、もう一方の終端で受信に失敗したために特定のトランザクションを再送信する必要があるかどうか追跡できるようにし、これによって統合の信頼性を向上させ、究極的に保証することができます。
情報形式
これらの通信の特定の形式は、その周囲の形式と処理機能の両方をインプリメンテーション全体で再利用できる、十分に汎用性のある仕方で設計する必要があります。
システム間の通信に使用する一般形式について考慮する場合、以下の必要に照らして形式の再利用性に注目することは重要です。
- 国際文字セットおよび特殊文字 (コンマ、引用符、不等号括弧など)
- 複雑な構造 (コンテンツの階層および関係)
- コンテンツの複数インスタンス、またはインスタンスごとに異なる値を持つアイテム・プレースホルダーを処理できること
情報処理
システム間で送信される情報の形式はいくらか一般的であると考えられますが、特に WebSphere Product Center と統合システムの間の直接リンクとして統合を表示する場合、すべてのインプリメンテーションが事前定義された形式に当てはまるわけではないことを理解できます。データ・モデルなどの相違のためにインプリメンテーションごとに形式と WebSphere Product Center スペックとの間の形式およびマッピングを再度ツールにかける必要を避けるため、XML 形式と WebSphere Product Center 仕様との間で再利用可能なマッピング機能を使用することをお勧めします。
EAI プラットフォームの使用
これを行う 1 つの方法は、WBI または webMethods スイートなどの EAI プラットフォームを使用することです。これにより、再利用可能な接続の作成が可能になり、たとえば WebSphere Product Center は、完全に再利用可能な単一のメッセージ形式 (例、単一の XML DTD) を介して通信できるようになります。インプリメンテーションの詳細事項のために生じる相違点は、情報を処理する WebSphere Product Center 機能を再度ツールにかける必要なしに、WBI によって解釈することができます。WebSphere Product Center 機能を再度ツールにかける必要がなければ、同じ機能性をインプリメンテーション全体で利用することができます。
その他のオプション
しかし、考慮すべき別の点は、特定のクライアントは、企業全体を通してその他のシステムですでに使用されている形式の再利用を必要とする場合があるという点です。これにより、WebSphere Product Center がすでに存在する DTD を使用できるようにするのではなく、WebSphere Product Center が企業内のその他のシステムが理解できるように翻訳する必要のある別個の DTD を完全に導入するのは困難になります。このような場合には、WebSphere Product Center 内の仕様と DTD の間で翻訳するための再利用可能機能を使用しなければなりません。
EAI プラットフォームを使用している場合でさえ、内部 DTD への WebSphere Product Center 管理の情報のマッピングを理解するという観点からすれば、この方法が特定のクライアントに対してより有用で、より理想的な方法になる場合があります。
イベント処理
理想的には、WebSphere Product Center 内の自動処理がイベントを処理します。たとえば、WebSphere Product Center リリースで紹介されたキューイング機能を使用して、メッセージの送信 (アウトバウンド・キュー) と、応答および着信メッセージの受信 (インバウンド・キュー) の両方を処理することができます。さらに、キュー処理スクリプトを使用して、メッセージの実際の処理を扱い、実質的には、特定のメッセージの結果としてトリガーするイベントを実際に実行することができます。
ただし、イベント処理は、WebSphere Product Center の特定の機能あるいは特定のバージョンと直接結びついている必要はありません。イベントを処理するその他の方法には、FTP サーバーをポーリングする WebSphere Product Center 内のスケジュールされたジョブ、ファイルのローカル・ファイル・システムをチェックする (文書ストア経由) スケジュールされたジョブ、起動側ベースのトリガー・スクリプトがポストされた情報あるいは他の方法に基づいたイベントの起動を含めることができます。選択されるメソッドは最終的に、データのサイズと、特定の統合の頻度ディメンションの要件を注意深く考慮することに依存しています。
トラッキングの変更
システム間の完全な同期化のインプリメントを可能にするには、統合システムあるいはそれ以外のシステムと通信したとおりに、より効果的にタグを付けることが可能な、コンテンツおよびアイテムに加えられた変更を追跡する WebSphere Product Center 内の方法が必要になります。たとえば、WebSphere Product Center (ソース・システムとしての) 内でアイテムを削除する場合、同じアイテムを削除するようターゲット・システムに通知する、ターゲット・システムに送信されるメッセージをトリガーするだけでなく、アイテムが実際にターゲット・システムから削除されたかどうかを WebSphere Product Center が認識できるように、特定の通信の成功あるいは失敗をトラッキングできるようにしたい場合があるかもしれません。
再利用可能なコネクター
コネクター・リポジトリー
インプリメンテーションの進展と協力関係が発展するにつれて、さまざまなシステムへの再利用可能なコネクターのリポジトリーが徐々に構築されます。可能な場合にはいつでも、これらのコネクターを通して流れるアイテムなどの処理に関連した機能性を、特定のインプリメンテーションの観点から、ほとんどあるいは全く変更されずに再利用することができるように、これらのコネクターを再利用できるよう努力する必要があります。もちろん、これによって、インプリメンテーションの実行時の速度は全体として非常に速くなり、問題が見つかってやがて解決されるにつれて、コネクターとそれを使用するインプリメンテーション全体の信頼性や安定性は向上します。
コネクターをまだ定義していないシステムと統合する場合、特定のインプリメンテーションでの統合に使用でき、別のインプリメンテーションでシステムと統合する必要がある場合に、後で使用するためにコネクターのリポジトリーで保管することもできる、再利用可能なコネクターをすばやく作成できる統合のエキスパートが関与する必要があります。
コネクターの使用法
コネクターを使用して、システム間で渡される任意の情報の情報を処理する EAI レイヤーを通し、実行する必要のある変更を実行しなければなりません。言い換えると、EAI を介して渡される情報を処理するために WebSphere Product Center 内の再利用機能のいずれかを書き直す前に、必要な変換を実行する EAI プラットフォームの機能を利用すべきです。そうすれば、WebSphere Product Center の機能を書き直す必要はありません。
インプリメンテーションのスケール調整
小さな統合
全体の統合の大きなタスクは、より小さい、より容易に管理できるタスクに分けるべきです。これは、たとえば、単一の完全な統合をより小さな統合に分けることによって行うことができます。つまり、それぞれのアイテム・タイプ (スペック) ごとの "個別の" 統合から、それぞれのコンテナー (カタログ) ごとの統合へ、属性のグループ (必要に応じて) ごとの統合に至るまで分けることができます。 これらの "小さな統合" が完全に動作するという確信がある場合、それらを結合して単一の完全な統合を作成することができます。
機能の細分性
システム間の統合が発生するレベルに注意する必要があります。たとえば、変更をターゲット・システムに送信するときに、特定の日付以降のすべての変更を送信したい場合もあれば、最後に変更が送信されてから特定のカタログの変更のみ、特定のグループのアイテムで発生した変更のみ、あるいはすべてのアイテム間の特定の属性で発生した変更のみを送信できるようにしたい場合もあります。特定の要件はインプリメンテーションに依存していますが、それが適切に行われるようにインプリメンテーションの設計処理において必要な細分性を考慮することは重要です。
パフォーマンス・チューニング
一般的なパフォーマンスのコメント
パフォーマンスの問題を後回しにしてはなりません。統合の形式または他の局面を計画の後半で変更および修正することは容易ですが、パフォーマンスのボトルネックによって、重要な再設計や、時には技術サポートが必要になる可能性があります。開発のしかるべき過程において、パフォーマンスの測定フックをスクリプト内に置いてください。
パフォーマンスの測定
小さな統合のアプローチ (「インプリメンテーション」セクションで詳細に説明) を使用すると仮定した場合、パフォーマンスは、小さな統合の各タスクごとに必要な合計時間を測定することによって、統合の各ステップで測定する必要があります。パフォーマンスが低下することが考えられる領域は、適切な細分レベルで識別することができるため、パフォーマンスの微調整を行うためにより容易に的を絞ることができます。
パフォーマンスの微調整
パフォーマンスの問題領域が識別されたら、詳細な分析を行い、操作が遅くなる根本原因を判別する必要があります。詳細な分析は、WebSphere Product Center のミドルウェア・プロファイルのようなツールおよびジョブ詳細画面のパフォーマンス・タブを使用して行うことができます。さらに、その分析を適用して、スクリプトの特定の領域や SQL クエリーに焦点を当てることができます。また、適切なアクション (スクリプトの変更や書き直し、あるいはデータベース・クエリーを向上するためのエンジニアリングの関与) を実行することができます。
検証
安定性
小さな統合の利点
小さな統合 (「インプリメンテーション」セクションで詳細に説明) のインプリメントは、統合が作業中であることが示された全領域の詳細なリストを提供することによって、統合が正常に行われたという、より高いレベルの信頼性を提供します。小さな統合の可視性がないと、統合の作業に関する詳細情報の証拠を提供することが困難になるだけでなく、統合が全体として、識別、診断、およびデバッグが困難な問題に陥る可能性があります。小さな統合をインプリメントすることによって、統合の全体の安定性が向上します。
スケーラブルなテスト
小さな統合の利点
小さな統合 (「インプリメンテーション」セクションで詳細に説明) をインプリメントすることによって、統合のテストをより細かいレベルで行うことができ、生じるエラーまたは問題が多くの (おそらく無関係な) 複雑性によって不透明にならないようにします。こうして、上で説明したとおり、見つかった問題の診断、デバッグ、および解決の処理はすべて、このアプローチによって大幅に速度が向上します。
典型的な環境と完全な環境
統合テストは、最終環境 (同じスペック、検証ルール、値ルール、ビュー) と同じ構成を持つ典型的な環境で行うことができますが、可能な限り少ない典型的なエンティティー (ロケール、カタログ、カテゴリー・ツリー、アイテム、カテゴリー、組織、ユーザー、役割) を使用して行います。これにより、テストを実行したり、画面をロードする時間が削減され、一般的には、完全にデータが取り込まれた環境でのテストに対して、テストにかかる時間が短縮されます。すべてのテストおよびデバッグは、この環境で行わなければなりません。
典型的な環境でのみテストが完了し、すべてが作業中と表示された後、統合を完全な、そして完全にデータが取り込まれた環境で検証する必要があります。ただし、このステップは、典型的な環境においてエッジ・シナリオが誤って無視されないよう確認し、統合の製品レベルでのパフォーマンスをテストするために依然として実行されます。
スケーラブルな処理のテスト
スケジュール可能なジョブ (例、インポート、エクスポートなど) はまず、非常に少ない代表的なアイテム (10 より少ない) のみを使用して実行する必要があります。 この数値は、実際にこれらのアイテムを処理中のスクリプト内で取られる信頼性のレベルに比例して増やす必要があります。 このアプローチは、全体の処理に実行の最初の数分間で明らかな障害を起こすことなく、 それを実行する人だけが最終的にどこかが間違っていることに気付くというように、 大量のジョブが問題となる時間にわたって実行される、ということがないようにします。
ジョブに関連したスクリプトの操作が十分に信頼を置けるものになってから、 完全なデータのセットに関連してジョブを実行する必要があります。完全な環境の推奨事項の場合と同様に、 このステップは、より小さなジョブにおいてエッジ・シナリオが誤って無視されないよう確認し、 ジョブの製品レベルでのパフォーマンスをテストするために実行すべきです。
可視性
レポート
小さな統合の利点
小さな統合 (「インプリメンテーション」セクションで詳細に説明) のインプリメントによって、統合がより小さく、また統合のインプリメントがより素早くなるため、より詳細なレベルのレポートが可能になります。統合全体のレベルでのインプリメンテーションの途上にあるレポートに比べて、このレポートの詳細なレベルにより、さらに具体的で数量的な統合の追跡が可能になります。
小さな統合はリストすることができ、グラフで詳細に説明されている完全な統合のより大きなピクチャーとの関連性、および統合の全体的な進展の正確なピクチャーは、小さな統合のタスクの進展に関するレポートから容易に描くことができます。
所有権
複数のチームで作業する場合でさえ、統合を通じて所有権を一人の人に割り当てます。この人のジョブは、単一スレッドが早く確立されるようにし、チームが本書のガイドラインに従って作業し、(a) 小さな統合、(b) スケーラブルな処理のテスト、および (c) 典型的な環境対完全な環境を通じて、インクリメンタルな構築 / テストのサイクルがさまざまなチーム間で同期化されるようにすることです。
文書
形式およびアプローチを明確に識別する
実行のための明確なパスを決定し、複数のチームが統合で作業する場合に使用される形式を明確に文書化します。最も一般的な例は、WebSphere Product Center チームが WebSphere Product Center からデータのエクスポートの作業をしており、顧客または SI チームが宛先システムにそのデータをアップロードしている場合です。共通の形式のスペックなしで作業を開始しないでください。またこの文書を毎日最新のものにしてください。これは、プロジェクト・マネージャーが実行する必要のある絶対要件です。
このアプローチは、典型的な環境の使用および小さな統合の実行とは矛盾していません。両方のチームは、増分的に構築およびテストして、着実な、目に見える進展を確実にしなければなりません。
明確で一般的な用語を使用して、統合について説明する
すべてのインプリメンテーションは、セクション「統合の各次元」で識別される次元を使用する必要があります。
再利用性
スケーリングにとって重要なことは、「再利用性」セクションで説明されている再利用の原則を保ちながら、以前の統合から学習し、統合をパッケージすることにあります。
可視性
進展のレポート用に全体的なメトリックを確立し、最悪の場合でも数日ごとに明確な状況更新をプロジェクト・マネージャーに提供します。
小さな統合
大きな統合の複雑さを、その統合で意味のあるさまざまな次元 (カタログ、属性) に従って分割します。一度に 1 つの小さな統合に注目し、可視性のメトリックに直接結び付けます。
典型的な環境と完全な環境
デバッグおよびテストするのが容易な、典型的な環境を保持します。スクリプトおよびスペックの妥当性に関する確信が得られたときにのみ、完全な環境へ移動します。これを可視性メトリックに結び付けます。
スケーラブルな処理のテスト
すべてのジョブを小さなデータ・セットを使用してテストし、完全なデータ・セットにロールアウトする前に正確性をチェックします。これを可視性メトリックに結び付けます。
パフォーマンス
ロジックまたはフォーマットの正確性について心配せずに、開発サイクルで早めに幾つかのパフォーマンス・テストを実行し、その後定期的にテストを実行して、問題を識別します。
単一スレッドを早期に確立する
特に、複数のホップ、複数のプロトコル、または標準ではない方法を必要とする場合のある複雑な統合においては、統合の単一作業スレッドを早めに確立します。
仕様および文書の設計
実行のための明確なパスを定義して文書化し、特に複数のチームが統合で作業する場合に使用される形式を明確に文書化します。
単一の所有者
複数のチームで作業する場合でさえ、統合を通じて所有権を一人の人に割り当てます。
アプローチ
汎用通信形式
可能な場合にはいつでも、汎用の通信形式を設計するか、以前のプロジェクトから再利用する必要があります。形式が一般的になればなるほど、すべてのシステムが互いに通信するために必要な形式の特別な再作業を行わずに、より多くのシステムを統合に含めることができます。もちろん、パフォーマンスにおいてトレードオフが生じる可能性があります。形式がより一般的になりますが、1 つのプロジェクトにとっての正しい形式が別のプロジェクトにとっては理想的な選択ではない場合があります。使用する特定の形式を判別する際に、依然として統合の各次元を考慮する必要があります。
コンテンツのマッピング
可能なかぎり、WebSphere Product Center コンテンツ・モデルと通信形式を通して示されるモデルとの間のマッピングは、動的に更新可能な方法で実行しなければなりません。この場合も、統合の次元の調査に基づいて、特定のプロジェクトの必要性は、(たとえば、処理の絶対最大スループットにより高い優先度が置かれているために、) これらのマッピングの作成を十分に動的に更新できないことを示している可能性があります。 これを行う 1 つの方法として、単一ノードの仕様をカテゴリー・ツリーに関連付けた状態で、 カテゴリー・ツリー (XML 構造などを表す) を使用することが挙げられます。 こうすると、属性の仕様ノード・パスで、カテゴリー・ツリーの特定のノード (WebSphere Product Center コンテンツ・モデル内にマップされる) を示すことができます。 再帰的処理スクリプトを使用して、このカテゴリー・ファイルおよびその定義済みマッピングに基づいて、 XML ファイルへのアイテムのマッピングを処理し、ネストされた複数のオカレンスを容易に実行することができます。
情報の翻訳 / 変換
統合に関係したシステムは、統合における他のシステムの情報またはコンテンツの制限事項および要件を処理する必要はありません。 EAI プラットフォームを容易に利用して、このコンテンツの翻訳および変換を処理することができます。 たとえば、WebSphere Product Center が FLAG の値を "TRUE" あるいは "FALSE" として保管しても、 統合するシステムは、その値を "Y" あるいは "N" と保管することができます。 EAI プラットフォームを使用して、WebSphere Product Center が常に TRUE または FALSE を送信すると TRUE または FALSE と送信されると想定し、一方、統合システムは常に、Y または N と送信すると Y または N と送信されると想定するというようにこれらの翻訳を行うことができます。 これによって、全面的に、多くのシステムが統合に関連している場合でも、 これらの追加システムに照らし合わせて再コーディングの必要はなくなります。
クライアントに関する理解
クライアントは、すでに精通していると思われるプラットフォームを再利用できるため、統合が既知の機能 (つまり、EAI プラットフォーム) を使用するという点で信頼性が増し加わります。 さらに、クライアント固有の通信形式がすでに存在し、WebSphere Product Center 統合にそれを再利用する場合、 クライアント側の開発者は、WebSphere Product Center がマッピングする通信形式を理解するための追加トレーニングをほとんど必要としません。
通信の柔軟性および信頼性
ほとんどの EAI プラットフォームには、さまざまなプロトコルに対して生じる通信を許可し、 ブローカリングによって通信を実現する、ネイティブの機能が含まれています。これにより WebSphere Product Center は、通信すべき必要な文書の生成だけに焦点を合わせることができ、この文書を各種のシステムに通信する異なる手段が潜在的に存在してそれをサポートするという点を考慮に入れる必要はありません。また、文書が各システムに受信されたかどうかを追跡するという点も考慮に入れる必要はありません。これらを考慮するのは、EAI レイヤーおよびプラットフォームとなり、WebSphere Product Center は単に、全体的な統合スレッドの観点からそうした点を認識していればすみます。
本書に記載の製品、サービス、または機能が日本においては提供されていない場合があります。 日本で利用可能な製品、サービス、および機能については、日本 IBM の営業担当員にお尋ねください。 本書で IBM 製品、プログラム、またはサービスに言及していても、その IBM 製品、プログラム、または サービスのみが使用可能であることを意味するものではありません。これらに代えて、IBM の知的所有権を侵害することのない、機能的に同等の 製品、プログラム、またはサービスを使用することができます。 ただし、IBM 以外の製品とプログラムの操作またはサービスの評価および検証は、お客様の責任で行っていただきます。
IBM は、本書に記載されている内容に関して特許権 (特許出願中のものを含む) を保有している場合があります。 本書の提供は、お客様にこれらの特許権について 実施権を許諾することを意味するものではありません。 実施権についてのお問い合わせは、書面にて下記宛先にお送りください。
〒106-0032
東京都港区六本木 3-2-31
IBM World Trade Asia Corporation
Licensing
以下の保証は、国または地域の法律に沿わない場合は、適用されません。
IBM およびその直接または間接の子会社は、本書を特定物として現存するままの状態で提供し、商品性の保証、特定目的適合性の保証および法律上の瑕疵担保責任を含むすべての明示もしくは黙示の保証責任を負わないものとします。国または地域によっては、法律の強行規定により、保証責任の制限が禁じられる場合、強行規定の制限を受けるものとします。
この情報には、技術的に不適切な記述や誤植を含む場合があります。 本書は定期的に見直され、必要な変更は本書の次版に組み込まれます。 IBM は予告なしに、随時、この文書に記載されている製品またはプログラムに対して、改良または変更を行うことがあります。
本書において IBM 以外の Web サイトに言及している場合がありますが、 便宜のため記載しただけであり、決してそれらの Web サイトを推奨するものでは ありません。それらの Web サイトにある資料は、この IBM 製品の資料の一部ではありません。それらの Web サイトは、お客様の責任でご使用ください。
IBM は、お客様が提供するいかなる情報も、お客様に対してなんら義務も負うことのない、自ら適切と信ずる方法で、使用もしくは配布することができるものとします。
本プログラムのライセンス保持者で、(i) 独自に作成したプログラムとその他のプログラム(本プログラムを含む)との間での情報交換、および (ii) 交換された情報の相互利用を可能にすることを目的として、本プログラムに関する情報を必要とする方は、下記に連絡してください。
IBM Burlingame Laboratory
Director IBM Burlingame Laboratory
577 Airport Blvd., Suite 800
Burlingame, CA 94010
U.S.A
本プログラムに関する上記の情報は、適切な使用条件の下で使用することができますが、有償の場合もあります。
本書で説明されているライセンス・プログラムまたはその他のライセンス資料は、IBM 所定のプログラム契約の契約条項、IBM プログラムのご使用条件、またはそれと同等の条項に基づいて、IBM より提供されます。
この文書に含まれるいかなるパフォーマンス・データも、管理環境下で 決定されたものです。 そのため、他の操作環境で得られた結果は、異なる可能性があります。 一部の測定が、開発レベルのシステムで行われた可能性がありますが、 その測定値が、一般に利用可能なシステムのものと同じである保証はありません。 さらに、一部の測定値が、推定値である可能性があります。 実際の結果は、異なる可能性があります。お客様は、お客様の特定の環境に適したデータを確かめる必要があります。
IBM 以外の製品に関する情報は、その製品の供給者、出版物、 もしくはその他の公に利用可能なソースから入手したものです。IBM は、それらの製品のテストは行っておりません。したがって、 他社製品に関する実行性、互換性、またはその他の要求については確証できません。 IBM 以外の製品の性能に関する質問は、それらの製品の供給者にお願いします。
本書には、日常の業務処理で用いられるデータや報告書の例が含まれています。 より具体性を与えるために、それらの例には、個人、企業、ブランド、あるいは製品などの名前が含まれている場合があります。 これらの名称はすべて架空のものであり、名称や住所が類似する企業が実在しているとしても、それは偶然にすぎません。
IBM の将来の方向または意向に関する記述については、予告なしに変更または撤回される場合があり、単に目標を示しているものです。
プログラミング・インターフェース情報が記載されている場合、その情報はプログラムを使用してアプリケーション・ソフトウェアを作成する際に役立ちます。
一般使用プログラミング・インターフェースにより、このプログラム・ツール・サービスを含むアプリケーション・ソフトウェアを書くことができます。
ただし、この情報には、診断、修正、および調整情報が含まれている場合が あります。診断、修正、調整情報は、お客様のアプリケーション・ソフトウェアの デバッグ支援のために提供されています。
警告: 診断、修正、調整情報は、変更される場合がありますので、 プログラミング・インターフェースとしては使用しないでください。
以下は、IBM Corporation の商標です。
IBM
IBM ロゴ
AIX
CrossWorlds
DB2
DB2 Universal Database
Domino
Lotus
Lotus Notes
MQIntegrator
MQSeries
Tivoli
WebSphere
Microsoft、Windows、Windows NT および Windows ロゴは、Microsoft Corporation の米国およびその他の国における商標です。
MMX、Pentium および ProShare は、Intel Corporation の米国およびその他の国における商標です。
Java およびすべての Java 関連の商標およびロゴは、Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
他の会社名、製品名、およびサービス名等はそれぞれ各社の商標です。
IBM WebSphere Product Center にはいくつかの「適用除外コンポーネント」(関係する「ライセンス情報」文書の定義に従う) が含まれており、これには以下に挙げる追加の条件が適用されます。このソフトウェアは、「プログラムのご使用条件」の使用条件の下でお客様に使用許諾されており、「適用除外コンポーネント」の条件に従います。IBM には、このソフトウェアに関連して、お客様に以下の通知を行う義務があります。
i.) IBM WebSphere Product Center には、Apache 2.0 ライセンスの使用条件に従って Apache Software Foundation から IBM によって使用許諾された、以下のソフトウェアが含まれています。
- Apache Regular Expression v1.2
- Apache Axis v1.1
- Apache XML4J v3.0.1
- Apache Log4j v1.1.1
- Apache Jakarta Commons DBCP Package v1.1
- Apache Jakarta Commons Pool Package v1.1
- Apache Jakarta Commons Collections Package v3.0
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement You may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of Your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to Your work.
To apply the Apache License to Your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with Your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
You may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
ii.) IBM WebSphere Product Center には、以下の使用条件に従って IBM が Scott Hudson、Frank Flannery、および C. Scott Ananian より使用許諾を得た以下のソフトウェアが含まれています。
- Cup Parser Generator v0.10k
CUP Parser Generator Copyright Notice, License, and Disclaimer
Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided that
the above copyright notice appear in all copies and that both the copyright
notice and this permission notice and warranty disclaimer appear in supporting
documentation, and that the names of the authors or their employers not be
used in advertising or publicity pertaining to distribution of the software
without specific, written prior permission. The authors and their employers
disclaim all warranties with regard to this software, including all implied
warranties of merchantability and fitness. In no event shall the authors or
their employers be liable for any special, indirect or consequential damages
or any damages whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action, arising out of
or in connection with the use or performance of this software.
iii.) IBM WebSphere Product Center には、以下の使用条件に従って IBM が Elliot Joel Berk および C. Scott Ananian より使用許諾を得た以下のソフトウェアが含まれています。
- JLex v1.2.6
JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
Copyright 1996-2003 by Elliot Joel Berk and C. Scott Ananian
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided that
the above copyright notice appear in all copies and that both the copyright
notice and this permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the authors or their employers not be used
in advertising or publicity pertaining to distribution of the software without
specific, written prior permission. The authors and their employers disclaim
all warranties with regard to this software, including all implied warranties
of merchantability and fitness. In no event shall the authors or their
employers be liable for any special, indirect or consequential damages or any
damages whatsoever resulting from loss of use, data or profits, whether in an
action of contract, negligence or other tortious action, arising out of or in
connection with the use or performance of this software. Java is a trademark
of Sun Microsystems, Inc. References to the Java programming language in
relation to JLex are not meant to imply that Sun endorses this product.
iv.) IBM WebSphere Product Center には、以下の使用条件に従って IBM が International Business Machines Corporation およびその他の者より使用許諾を得た以下のソフトウェアが含まれています。
- ICU4J v2.8
ICU License - ICU 1.8.1 and later
COPYRIGHT AND PERMISSION NOTICE
Copyright (c) 1995-2003 International Business Machines Corporation and others
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, provided that the above
copyright notice(s) and this permission notice appear in all copies of
the Software and that both the above copyright notice(s) and this
permission notice appear in supporting documentation.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale, use
or other dealings in this Software without prior written authorization
of the copyright holder.
All trademarks and registered trademarks mentioned herein are the property of
their respective owners.