Inbound 処理

Inbound イベント処理は、非同期動作です。アダプターは、FTP サーバーのポーリング、FTP サーバーからのイベントのプル、ビジネス・オブジェクトへの情報の変換、および構成済みエンドポイントへのビジネス・オブジェクトの送信を行います。

アダプターは、FTPPollFrequency プロパティーに基づいて定期的に、FTP サーバーのイベント・ディレクトリーのファイルをポーリングします。ファイルがイベント・ディレクトリーに到達すると、アダプターは、ファイル全体を読み取って、このファイルをアダプター・サーバー上のローカル・イベント・ディレクトリーにダウンロードします。ファイルがダウンロードされた後、アダプターは、FTPArchiveDirectory プロパティーで指定される FTP サーバーのアーカイブ・ディレクトリーにファイルを保存するか、ユーザー構成に基づいてファイルを削除します。イベント・ディレクトリー、アーカイブ・ディレクトリー、ポーリング間隔、ポーリング数量 (1 回のポーリング周期でポーリングするファイルの数) は、すべて構成可能なパラメーターです。

ビジネス・オブジェクトが正常にエンドポイントに通知された後、イベントはローカル・ファイル・システム上のアーカイブ・ディレクトリー内にアーカイブされるか、または構成に基づいて削除されます。 アダプターは、イベントをアーカイブするか削除する必要があります。そうしないと、イベントは再びポーリングされます。

アダプターは、関数セレクター (コンポーネントに対して呼び出す操作を選択する ) およびデータ・バインディングを介してビジネス・オブジェクトをエンドポイントに送信します。

Inbound イベント処理は、次のステップで構成されます。
  1. FTP サーバーが、ファイルの形式でイベントを生成します。
  2. FTP アダプターが、イベント・ディレクトリーからファイルをポーリングします。
  3. ファイルがアダプター・サーバーに完全にダウンロードされます。
  4. SplittingFunctionClassName プロパティーおよび SplitCriteria プロパティーに基づいて、ファイルが分割されます。
    • 区切り文字に基づいて分割を行う必要がある場合は、この機能を実行するクラスおよび分割基準が提供されます。
    • ファイル・サイズに基づいて分割を行う必要がある場合は、この機能を実行するクラス名が提供されます。
    分割ロジックを含むカスタム・クラスを実装することができます。アダプターは、このクラス用の Java™ インターフェースを提供します。インターフェースの詳細を以下に示します。
    public interface SplittingFunctionalityInterface extends Iterator{
     public int getTotalBOs(String filename) throws SplittingException;
    public void setBODetails(String filename, int currentPosition, int totalBOs,
     boolean includeEndBODelimiter) throws SplittingException;
    	public void setSplitCriteria(String splitCriteria);
    	public void setEncoding(String encoding);
    	public void setLogUtils(LogUtils logUtils);
    public boolean isSplitBySize()
    }
    1. public int getTotalBOs(String filename) throws SplittingException

      このメソッドは、filename で指定されるイベント・ファイル内に存在するビジネス・オブジェクトの総数を返します。

    2. public void setSplitCriteria(String splitCriteria)

      このメソッドは、splitCriteria を取ります。これは、イベント・ファイル内に存在するビジネス・オブジェクトの数に基づいています。各ビジネス・オブジェクトは、next() 呼び出しで返されます。

    3. public void setLogUtils(LogUtils logUtils)

      このメソッドを使用して LogUtils オブジェクトを設定します。これは、ユーザーがトレースおよびログ・メッセージをファイルに書き込むために使用するクラスです。

    4. public void setEncoding(String encoding)

      このメソッドを使用して、イベント・ファイル内容のエンコードを設定します。ファイル内容の読み取り時に、このエンコードが使用されます。このエンコードは、SplitCriteria にも使用されます。

    5. public void setBODetails(String filename, int currentPosition, int totalBOs, boolean includeEndBODelimiter) throws SplittingException

      このメソッドを使用して、現在のビジネス・オブジェクト番号を設定し、next() 呼び出しが行われるたびに currentPosition に設定されているビジネス・オブジェクト番号が返されるようにします。このメソッドは includeEndBODelimiter パラメーターも取ります。このパラメーターを true に設定すると、ビジネス・オブジェクトの内容の末尾に SplitCriteria が組み込まれます。このメソッドは、常に next() 呼び出しの前に呼び出す必要があります。 これは、next() メソッドが、このメソッドで設定したビジネス・オブジェクトのビジネス・オブジェクトの内容を返すようにするためです。

    6. イテレーターには、hasNext()next、および remove() という 3 つのメソッドがあり、これらも実装する必要があります。next() メソッドは、setBODetails() で設定されたビジネス・オブジェクト位置のビジネス・オブジェクト内容を返します。 ビジネス・オブジェクトの位置が設定されていない場合は失敗します。hasNext() メソッドは、setBODetails() で設定されたビジネス・オブジェクトの位置が存在するかどうかを示します。hasNext() 呼び出しの前に、setBODetails() メソッドを呼び出す必要があります。remove() メソッドは、EventPersistence テーブルから削除されるビジネス・オブジェクト項目ごとに呼び出されます。 このメソッドでイベント・ファイルを削除しないでください。使用されているリソースのみをクリーンアップしてください。
    7. public boolean isSplitBySize()

      このメソッドは、イベント・ファイルの構文解析を、サイズまたは区切り文字のいずれに基づいて行うかを示します。

  5. アダプターは、関数セレクターを介してビジネス・オブジェクトをエンドポイントに送信します。関数セレクターでは、構成済みデータ・バインディングが呼び出され、テキスト・レコードをビジネス・オブジェクトに変換します。ビジネス・オブジェクトはエンドポイントに送信されます。

ご利用条件 |


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