JText での障害の処理

JText コネクターでは、以下のタイプのエラーが 発生することがあります。

表 11. JText エラー・タイプ
エラーのタイプ 説明
ビジネス・オブジェクトの区切り文字に関する障害 ビジネス・オブジェクトの区切り文字に関する障害は、トップレベルのメタオブジェクトの EndBODelimiter 属性が有効な値に 設定されていて、イベント・ファイルにはそれぞれのビジネス・オブジェクトの末尾に 指定された区切り文字が含まれているが、データ自体が区切り文字をテキスト内で 使用しているときに発生します。コネクターはテキスト内の区切り文字の値を 検出すると、ビジネス・オブジェクト・ストリングの一部を 処理に失敗したフォーマッターに送信します。この場合は、コネクターはそのイベントを filename_timestamp.fail ファイルに書き込みます。このファイルには、区切り文字の障害 が検出されたすべてのビジネス・オブジェクトのレコードが含まれます。
サブスクリプション・エラー コネクターがビジネス・オブジェクトの区切り文字を検出 しそのビジネス・オブジェクト名を取得できるが、そのビジネス・オブジェクトが サブスクライブされていないときに発生することがあります。この場合は、イベントが filename_timestamp.unsub ファイルに送信されます。このファイルには、アンサブスクライブされたビジネス・オブジェクトのレコードがすべて 含まれます。
フォーマット・エラー コネクターが入力ビジネス・オブジェクト名と一致しない ビジネス・オブジェクト名の区切り文字を検出する場合や、ビジネス・オブジェクト・ファイルのフォーマットがメタオブジェクトの フォーマットと一致しない場合に発生することがあります。イベントは filename_timestamp.fail ファイルに送信されます。このファイルには、フォーマットに失敗したすべてのビジネス・オブジェクトのレコードが 含まれます。
送信エラー 統合ブローカーがダウンしているときにコネクターが ビジネス・オブジェクトを送信しようとすると発生することがあります。Send 操作に 失敗すると、イベントは filename_timestamp.fail ファイルに送信されます。このファイルには、正常に送信されなかったすべてのビジネス・オブジェクトのレコードが 含まれます。

イベント・ログ・ファイル

コネクターは正常に処理されたビジネス・オブジェクトに関する情報 を event.log ファイル に記録します。コネクターが、イベント・ファイル内のすべてのビジネス・オブジェクト を処理する前にダウンした場合は、それぞれのビジネス・オブジェクトを統合ブローカーに 一度だけ送信するように、リカバリーのときにこのログ・ファイルを使用します。

ログ・ファイルの形式を以下に示します。

EventFileName::1,2,n

ここで、EventFileName は現行のイベント・ファイルの名前を表し、それぞれの番号はそのファイルの中の正常に処理されたビジネス・オブジェクト のシーケンス番号を表します。

例えば、コネクターが Customer.in ファイルの中の最初の 4 つの ビジネス・オブジェクトのうち 3 つを正常に処理し、2 つ目のビジネス・ オブジェクトの処理に失敗したとします。さらに、コネクターが Customer.in の処理をまだ完了していない とします。この場合に event.log ファイルは、次のように表示されます。
Linux:

$ProductDir/JText/Event/Customer.in:: 1,3,4

Windows:

C:¥JText¥Event¥Customer.in:: 1,3,4

i5/OS:
/QIBM/UserData/WebBIICS/JText/Event/Customer.in:: 1,3,4

Customer.in ファイル全体の処理の途中でコネクターがダウン した場合は、コネクターは始動するときに、イベント・ファイルの処理を 処理が停止したポイントから再開するために ログ・ファイルの情報を使用します。コネクターは、ログ・ファイルを参照して、リカバリーさせるイベント・ ファイルの名前や最後に処理したビジネス・オブジェクトのシーケンス番号を 取得します。次にコネクターは、ログ・ファイルに記録されている最後の番号より大きいシーケンス番号が付いた イベント・ファイル内のすべてのビジネス・オブジェクトを統合ブローカー に送信します。例えば、上記のファイルの場合は、コネクターは Customer.in ファイルの 5 番目のビジネス・オブジェクトから 処理を開始します。

コネクターはパフォーマンスを改善するためにログ・ファイルの内容を メモリーに保持します。そして、ログ・ファイルに新規エントリーがあり、更新するときにのみディスク上にある このファイルにアクセスします。コネクターはリカバリー時間にのみこのログ・ファイルを 参照します。

コネクターがリカバリー処理でどのように event.log ファイル を使用するかについての情報は、障害リカバリーを参照してください。

障害リカバリー

注:
以下に示すリカバリーのための手順は、ディスクで障害が発生した場合やディスクがいっぱいの場合には適用しません。

イベント通知時に発生した障害からリカバリーするには、コネクターは 以下の手順を行います。

  1. コネクターはイベント・ファイルからビジネス・オブジェクト・ストリング を処理します。コネクターはエントリーを正常に処理したときに このエントリーを event.log ファイルに記録します。また、このエントリーを (ArchiveDir メタオブジェクト属性で指定された) アーカイブ・ディレクトリー内のファイルにも書き込みます。

    出荷時のこれらの拡張子のデフォルト値は .success および .partial です。

  2. エラーが発生すると、コネクターは以下を行います。

    コネクターは処理に失敗したビジネス・オブジェクトを event.log に記録しません。

  3. コネクターはすべてのビジネス・オブジェクトをイベント・ファイルに 処理してから event.log ファイルを消去し、次のイベント・ファイルからそのファイルへの書き込みを開始 します。
  4. コネクターが、イベント・ファイル内のすべてのビジネス・オブジェクト を処理する前にダウンした場合は、リカバリー処理中に処理を開始する場所を判別 するために event.log 内の情報を 使用します。バックアップ時、コネクターはログ・ファイル内に エントリーがあるかどうかをチェックします。

    ユーザーが EventRecovery構成プロパティーを retry に設定している場合は、コネクターは始動時に、前に処理したファイルから 未解決のイベントを自動的にリカバリーします。ただし、このプロパティーを abort に設定している場合は、コネクターは、リカバリーさせるイベントがある場合 に始動時に終了します。

  5. イベント通知プロセスの間に発生したエラーからリカバリーするには、コネクターを再始動する必要があります。ただし、コネクターを再始動する前に 以下を行ってください。

以下のガイドラインは、ユーザーが、発生したエラーのタイプに応じて実行する リカバリーの手順を判別する際に役立ちます。

ビジネス・オブジェクトの区切り文字エラーからのリカバリー

コネクターがビジネス・オブジェクトをアーカイブ・ディレクトリー に書き込むときに、FailArchiveExt メタオブジェクト属性で指定された拡張子を付けます。このような障害のリカバリーを行うには、以下を行います。

  1. イベント・ファイルにビジネス・オブジェクトの区切り文字が含まれ、この区切り文字に間違いがなく、それにデータ自体の区切り文字の値が テキストとして含まれないようにしてください。この区切り文字の使用法が 正しくない場合は訂正してください。
  2. 処理に失敗した他の理由を特定するには、コネクターの ログ・ファイル (LogFileName 構成の属性で指定されている) を参照してください。
  3. そのファイルをアーカイブ・ディレクトリーからイベント・ディレクトリー にコピーして、.fail 拡張子を EventExt 属性で指定された拡張子 (デフォルトでは .in) に変更します。レコードの保持を容易にするために、このファイルの名前を わかりやすく変更します。例えば、Customer.failCustomer_delimiter_error.in に変更します。

サブスクリプション・エラーからのリカバリー

コネクターがビジネス・オブジェクトをアーカイブ・ディレクトリーに格納されて いるファイルに書き込むときに、UnsubscribedArchiveExt メタオブジェクト属性で指定された拡張子を付けます。このような障害のリカバリーを行うには、以下を行います。

  1. アーカイブされたファイルを開き、そのビジネス・オブジェクト・ストリング を検出して、ビジネス・オブジェクト名と動詞がサブスクライブされている ことを確認してください。必要があれば 適切な修正を加えます。
  2. 統合ブローカーが実行中であることを確認します。
  3. そのファイルをアーカイブ・ディレクトリーからイベント・ディレクトリー にコピーして、.unsub 拡張子を EventExt 属性で指定された拡張子 (デフォルトでは .in) に変更します。レコードの保持を容易にするために、このファイルの名前を わかりやすく変更します。例えば、Customer.unsubCustomer_unsub_resubmit.in に変更します。

フォーマット・エラーからのリカバリー

コネクターがビジネス・オブジェクトをアーカイブ・ディレクトリーに格納されて いるファイルに書き込むときに、FailArchiveExt メタオブジェクト属性で指定された拡張子を付けます。このような障害のリカバリーを行うには、以下を行います。

  1. アーカイブされたファイルを開き、以下を確認してください。
  2. そのファイルをアーカイブ・ディレクトリーからイベント・ディレクトリー にコピーして、.fail 拡張子を EventExt 属性で指定された拡張子 (デフォルトでは .in) に変更します。レコードの保持を容易にするために、このファイルの名前を わかりやすく変更します。例えば、Customer.failCustomer_fail_formatting.in に変更します。

送信エラーからのリカバリー

コネクターがビジネス・オブジェクトをアーカイブ・ディレクトリーに格納されて いるファイルに書き込むときに、FailArchiveExt メタオブジェクト属性で指定された拡張子を付けます。このような障害のリカバリーを行うには、以下を行います。

  1. ビジネス・インテグレーション・システムのすべてのコンポーネントが実行中である ことを確認します。
  2. そのファイルをアーカイブ・ディレクトリーからイベント・ディレクトリー にコピーして、.fail 拡張子を EventExt 属性で指定された拡張子 (デフォルトでは .in) に変更します。レコードの保持を容易にするために、このファイルの名前を わかりやすく変更します。例えば、Customer.failCustomer_fail_sending.in に変更します。
  3. コネクターを再始動します。

データ・ハンドラーとサポートされているビジネス・オブジェクト

データ・ハンドラーが構成されていないことを示すエラーをコネクターが 戻すときは、データ・ハンドラーのメタオブジェクトが サポートされているビジネス・オブジェクトのリストに含まれていることを確認してください。コネクターが戻す最も一般的なエラーは、BOPrefix が設定されていない ことを示すものです。

DHFormatter のサポートされているビジネス・オブジェクトのリストには、以下が含まれています。

Copyright IBM Corp. 2004, 2005