データ・ハンドラーが呼び出されるコンテキストに関係なく、データ・ハンドラーは createHandler() メソッドでインスタンス化されます。各コンテキストでのこのメソッドの呼び出し方法は、次のとおりです。
図 7 に、データ・ハンドラーがコネクター・コンテキストで呼び出された場合の、データ・ハンドラーのインスタンス化の例を示します。
図 7. コネクターのコンテキストでのデータ・ハンドラーのインスタンス化
コネクター・コンテキストで呼び出されたデータ・ハンドラーをインスタンス化するために、コネクターは次の手順を実行します。
メタオブジェクトは、ビジネス・オブジェクトとともにリポジトリーに格納されます。データ・ハンドラーがメタオブジェクト定義をアクセスできるためには、メタオブジェクト定義はビジネス・オブジェクト定義のように、メモリー内に存在する必要があります。これらのメタオブジェクトがコネクター・プロセスの一部としてメモリー内に存在する場合、メタオブジェクトはコネクター・コンテキストで呼び出されたデータ・ハンドラーからアクセスできます。
このトップレベルのメタオブジェクトはコネクター・メタオブジェクトです (デフォルトでは MO_DataHandler_Default)。
トップレベルのメタオブジェクトは、コネクターのサポート・オブジェクト・リストに存在する必要があります。
createHandler() メソッドは、MIME タイプを MIME タイプ・ストリングに変換して、DataHandler 基本クラス内の静的プロパティーからデータ・ハンドラーのトップレベルのメタオブジェクトの名前を取得します。このトップレベルのメタオブジェクトから、createHandler() はデータ・ハンドラーの子メタオブジェクトの名前を取得します。この子メタオブジェクトには、インスタンス化するクラス名などの構成情報が格納されています。この派生方法の詳細については、データ・ハンドラー・クラスの識別を参照してください。
図 8 に、データ・ハンドラーが Server Access Interface コンテキストで呼び出された場合の、データ・ハンドラーのインスタンス化の例を示します。
図 8. Server Access Interface コンテキストでのデータ・ハンドラーのインスタンス化
Server Access Interface コンテキストで呼び出されたデータ・ハンドラーをインスタンス化するために、Server Access Interface は次の手順を実行します。
メタオブジェクトは、ビジネス・オブジェクトとともにリポジトリーに格納されます。データ・ハンドラーがメタオブジェクト定義をアクセスできるためには、メタオブジェクト定義はビジネス・オブジェクト定義のように、メモリー内に存在する必要があります。これらのメタオブジェクトが Business Integration Express (および Server Access Interface) プロセスの一部としてメモリー内に存在する場合、メタオブジェクトは Server Access Interface コンテキストで呼び出されたデータ・ハンドラーからアクセスできます。
これらのメソッドは、変換するデータの MIME タイプを渡します。
Server Access Interface のコンテキストで呼び出された場合、createHandler() メソッドは、クラス名を指定しません。代わりに、createHandler() は MIME タイプを MIME タイプ・ストリングに変換し、データ・ハンドラーのトップレベルのメタオブジェクトの名前を取得します。このトップレベルのメタオブジェクトから、createHandler() はデータ・ハンドラーの子メタオブジェクトの名前を取得します。この子メタオブジェクトには、インスタンス化するクラス名などの構成情報が格納されています。この派生方法の詳細については、データ・ハンドラー・クラスの識別を参照してください。