ファイル分割

アダプターがエンタープライズ情報ファイル・システムで大容量のファイルを日常的に検索する場合は、アダプターのファイル分割機能を使用して、大きなファイルをいくつかの小さなチャンクに分割することができます。ファイル分割を使用可能にすると、イベント・ファイルが数個のチャンクに分割され、別々にエンドポイントに送られます。アダプターは、エンドポイントでチャンクの再アセンブルを行いませんが、再アセンブルに必要なビジネス・グラフのチャンク情報を提供します。

ファイルは、分割基準プロパティーで指定された値に基づいて、アダプターによって分割されます。この値は、区切り文字かファイル・サイズのいずれかにすることができます。ファイル分割はオプション機能であるため、エンタープライズ・サービス・ディスカバリー・ウィザードでアクティベーション・スペック・プロパティーを構成するときに SplitCriteria プロパティーおよび SplittingFunctionClassName プロパティーの値を空にすることにより、または SplitCriteria プロパティーをゼロに設定することにより、無効にすることができます。
注: EventContentType の値が NULL の場合、SplitCriteria プロパティーは、サイズに基づいてファイルを分割するよう自動的に構成されます。

区切り文字によるファイル分割

ビジネス・オブジェクトを区切るために、コンマ (,)、セミコロン (;)、引用符 ("、')、中括弧 ({})、またはスラッシュ (/、\) などの文字を 1 つ以上使用する場合、アダプターはこの情報を使用してファイルを小さなチャンクに分割することができます。これらのチャンクは、サーバーに別々に転送されてから、WebSphere Process Server のイベント順序付け機能によって再アセンブルされます。これは、区切り文字によるファイル分割と呼ばれ、SplitCriteria アクティベーション・スペック・プロパティーを使用して有効にすることができます。

イベント・ファイルがそのようなチャンクに分割される場合は、それぞれのチャンクがビジネス・オブジェクトを作成することを忘れないでください。これは、ポーリング数量プロパティーで指定された値と、エンドポイントで取得されるビジネス・オブジェクトの数に違いが生じる可能性があるということです。区切り文字に基づいたファイル分割が有効な場合は、PollQuantity プロパティーにより、イベント・ストア内に存在する当該イベント・ファイルの数が指定され、分割機能クラス名アクティベーション・スペック・プロパティーでイベント・ファイルの分割に使用されるクラスが設定されます。

区切り文字によるファイル分割で使用される PollQuantity 値の働きを示すため、2 つのイベント・ファイルについて考察します。第 1 のイベント・ファイルにはビジネス・オブジェクトが 1 つ、第 2 のイベント・ファイルにはビジネス・オブジェクトが 2 つあります。PollQuantity の値が 2 の場合、最初のビジネス・オブジェクトは第 1 のイベント・ファイルから、次のビジネス・レコードは第 2 のイベント・ファイルから、最初のポーリング周期で送信されます。第 2 のファイルの 2 番目のビジネス・オブジェクトは、次のポーリング周期で送信されます。

区切り文字の使用には、以下の規則が適用されます。
  • 区切り文字の改行は、すべて ¥n で示されます。 アダプターは ¥n をプラットフォーム固有の改行文字に変換します。
  • 複数の区切り文字がある場合、それぞれの区切り文字はセミコロン (;) で分離する必要があります。セミコロン (;) が区切り文字の一部である場合、セミコロンは ¥; でエスケープする必要があります。例えば、区切り文字が ##¥;## の場合、##;## として処理されますが、これはセミコロン (;) が区切り文字の一部であることを意味します。
  • 区切り文字の一部である内容をスキップするには、2 つのセミコロン (;;) を指定すると、区切り文字の間の内容はスキップされます。例えば、ビジネス・オブジェクトが以下のフォーマットでイベント・ファイルに含まれていて、区切り文字が ##;;$$ の場合、次のようになります。

    Name=Smith

    Company=IBM

    ##ここの内容はアダプターによってスキップされます$$

    アダプターは区切り文字を ##$$ であると解釈し、「ここの内容はアダプターによってスキップされます」をスキップします。

  • 区切り文字は任意の値を指定でき、制限はありません。複数の区切り文字がある場合、¥n とセミコロン (;) の組み合わせになります。区切り文字は常に ¥n と ; で構成する必要はありません。¥n を使用するのは、ファイルの内容を分割する際に改行を考慮すべき場合のみです。 以下は有効な区切り文字です。
    • ####;¥n;¥n
    • ####;$$$$;¥n;####
    • %%%%;$$$$$;#####
    • ¥n;¥n;$$$$
    • ####¥;####;¥n;$$$$$
    • ¥n;¥n;¥n
    • ####;;$$$$
  • 区切り文字がファイルの最後に配置された場合、SplitCriteria は END_OF_FILE の値を取りますが、これはビジネス・オブジェクトがファイルの物理的な終わりという意味です。

サイズによるファイル分割

サイズによるファイル分割は、SplitCriteria プロパティーで指定された値を基にして実行されます。 イベント・ファイルのサイズが SplitCriteria プロパティーで指定された値よりも大きい場合、ファイルはチャンクに分割され、それぞれのチャンクはエンドポイントに対して別々に送られます。 イベント・ファイルのサイズが SplitCriteria の値よりも小さい場合、イベント・ファイル全体がエンドポイントに送られます。イベント・ファイルがチャンクに分割されるとき、それぞれのチャンクがビジネス・オブジェクトを作成することを忘れてはなりません。これは、ポーリング数量プロパティーで指定された値と、エンドポイントで取得されるビジネス・オブジェクトの数に違いが生じる可能性があるということです。アダプターはポーリング数量の値に基づいてポーリングを行いますが、アダプターは実際には、ファイル内のビジネス・オブジェクトの数を、1 つずつ処理します。 例えば、イベント・ファイルが 3 つのパーツのチャンクに分割される場合は、1 つのファイルがポーリングされ、エンドポイントでは 3 つのビジネス・オブジェクト (各チャンクが 1 つのビジネス・オブジェクトを作成するため) を受け取ります。

エンドポイントで、アダプターはチャンクに分割されたデータを 1 つのファイルに再アセンブルしません。その代わりに、この機能は WebSphere Process Server のイベント順序付け機能で処理されます。ただし Flat Files アダプターは、WebSphere Process Server によるチャンクの単一ファイルへの再アセンブルを可能にする、チャンクに関する情報を提供します。チャンク情報は、FlatFile ラッパー・ビジネス・オブジェクトの chunkFileName プロパティーに組み込まれます。チャンク情報には、バイト単位でのチャンク・サイズやイベント ID などがあります。チャンクのイベント ID は、eventFileLocation_/_timestampStr_/_MofN の形式を使用します (M は現在のチャンク番号で、N は総チャンク数です)。イベント ID の例は、C:¥flatfile¥eventdir¥eventfile.in_/_2005_01_10_10_17_49_864_/_3of5 のようになります (timestampStr は year_month_day_hour_minutes_seconds_milliseconds の形式になります)。


利用条件 |


(c) Copyright IBM Corporation 2005, 2006. (C) Copyright IBM Japan 2007
このインフォメーション・センターでは Eclipse テクノロジー (http://www.eclipse.org) が採用されています。