Copyright (c) 1999, 2001 by Tivoli Systems, an IBM Company
IBM eNetwork Host-On-Demand は、ユーザーが NetView 3270 管理コンソール (NMC-3270) セッションを 自動化する Java アプリケーションを作成できるようにするホスト・アクセス・クラス・ライブラリーを提供します。 これらの自動化アプリケーションは、定形タスク用の NMC-3270 提供のセッションとの対話に使用することができます。 自動化アプリケーションは GEM や NMC からも使用することができます。
NMC-3270 用のホスト・アクセス・クラス・ライブラリー・アプリケーションを提供するには、以下のステップが必要です。
詳細については、IBM eNetwork ホスト・アクセス・クラス・ライブラリー (HACL) を 参照してください。
特定の NetView セッションと関連したホスト・アクセス・クラス・ライブラリー (HACL) クラスは、 ECLSession のインスタンスから取得することができます。
これを行うためには、アプリケーションが FLB_NVApplInterface を実装する必要があります。 このインターフェースは、このインターフェースの init メソッドを介して行われる活動セッションを アプリケーションに渡すためのメソッドを提供します。
init メソッドでセッション・オブジェクトを取得すれば、表示スペースにアクセスしてそれと対話することができます。 表示スペースは ECLPS クラスにカプセル化され、それのインスタンスは ECLSession の GetPS() メソッドを 使用して取得することができます。 ECLPS は、以下を実行するメソッドを提供します。
下に示すサンプルは、上で説明したセッションから ECLPS のインスタンスを取得するものです。
public void init(ECLSession session) { ps = session.GetPS(); oia = session.GetOIA(); }
一度、ECLPS のインスタンスが確立されると、表示スペース変更の通知を受け取るために com.ibm.eNetwork.ECL.event.ECLPSListener として登録することができます。 登録されたリスナーには、表示スペースが変更されるたびに通知があります。 このイベント通知モデルは、表示スペースとの対話を操作するためにアプリケーションによって使用される基本メカニズムです。
下に示すサンプル・コードは、現行クラスを ECLPS のインスタンスに登録するものです。
try { ps.RegisterPSEvent(this); } catch(ECLErr e) { System.out.println(e.GetMsgText()); }
表示スペース・イベントを登録していても、com.ibm.eNetwork.ECL.event.ECLPSListener インターフェースを 実装する必要があります。
ECLPSListener インターフェースは、表示スペース内で発生するさまざまな種類のイベントを取り扱う 3 つのメソッドから構成されます。 PSNotifyEvent() メソッドは正常なエラー以外のイベントを取り扱うもので、イベントの受け取りと 取り扱いを行うためのメイン・メソッドです。 PSNotifyStop() メソッドは停止イベントを取り扱い、PSNotifyError() メソッドはイベント生成時に発生するエラーを取り扱います。
次に示すサンプルは、画面の更新を印刷出力する PSNotifyEvent() メソッドを定義するものです。
public void PSNotifyEvent(ECLPSEvent evt) { try { char[] temp = new char[1921]; // Screen size is assumed to be 24x80 ps.GetScreen(temp, 1920, 1, 1920, ps.TEXT_PLANE); System.out.println(new String(temp)); ps.UnregisterPSEvent(this); } catch (Exception ECLErr) { System.out.println("ECLErr Exception --> " + ECLErr.toString()); }
FLB_NVApplInterface ではさらに、他の 3 つのメソッド (addListener、removeListener、および closeDown) も 実装する必要があります。 closeDown メソッドではアプリケーションが NMC-3270 からの closeDown イベントを listen することができ、 このメソッドは、NMC-3270 がセッションをクローズする用意ができた時に起動されます。 closeDown メソッドにより、ユーザーはセッションが終了する前にクリーンアップすることができます。 removeListener メソッドは、アプリケーションが NMC-3270 からの closeDown イベントを listen しないようにします。
以下はインプリメンテーションのサンプルです。
public void addListener( FLB_NVApplListener listener ){ this.listener = listener ; } public void closeDown(){ //Your clean up code goes here. } public void removeListener( FLB_NVApplListener listener ){ this.listener = null; }
最後に、アプリケーションの終了を NMC-3270 に通知するために、終結処置として次のようにコーディングするか、 あるいは finalize ルーチンをコーディングします。
listener.applClosing(this);
このセクションでは、ホスト・アクセス・クラス・ライブラリー (HACL) を使用する Java アプリケーションの 作成方法について説明します。 ソース・コードの準備とコンパイルに関する要件について説明します。
HACL クラスを使用するプログラムは、クラス定義とその他のコンパイル時情報を取得するために HACL パッケージを インポートしなければなりません。 HACL パッケージを Java ソース・ファイルにインポートするには、以下のステートメントを使用します。
import com.ibm.eNetwork.ECL.*; import com.ibm.eNetwork.ECL.event.*; import com.ibm.eNetwork.beans.HOD.*; import src.ibmflb.*;
新しい Java ソース・ファイルをコンパイルするためには、HACL パッケージが入っている ディレクトリーを組み込むように CLASSPATH を更新しなければなりません。 HACL が Windows 環境にインストールされている場合には、CLASSPATH はすでに更新されているはずです。 HACL が Windows 環境にインストールされていない場合は、手動で CLASSPATH 環境変数を更新するか、 あるいは Java コンパイラー、javac の '-classpath' パラメーターを使用して HACL の位置を指定する必要があります。
NetView 3270 管理コンソールには、ユーザー定義アプリケーションのロードと実行を行う方法が 2 通りあります。 ユーザー・アプリケーションは、「HACL アプリケーションの実行」ダイアログから立ち上げることもできれば、 セッションの開始時に初期 HACL アプリケーションとして立ち上げることもできます。 「アプリケーションの実行」ダイアログはツールバーから表示することができます。 このダイアログは、ユーザー定義クラスの名前 (完全修飾クラス名) を促すプロンプトを出し、 デフォルト・コンストラクターを使ってそのクラスのインスタンスを構成し、 クラス・アクセスを init メソッドの現行 NetView セッションに与えます。 クラス名が分からない場合には、「検索」ボタンを使って当該クラスを見つけることができます。 この場合には、クラスは新しくロードされます。 初期 HACL アプリケーションはセッション構成ウィンドウで指定することができます。
注: | HACL を使用する アプリケーションが実行される時には、HACL パッケージを含むディレクトリーが CLASSPATH 環境変数で 指定されたパスになければなりません。 |
NetView 3270 管理コンソールは、アプリケーションの作成者が各種コンソール・セッション (たとえば、 ハードウェア・モニターやセッション・モニターなど) のための ECLSessions を取得するのに役立つ ヘルパー・クラスを備えています。
以下はサンプルです。
ECLSession session = FLB_HACLhelper.getSession("NPDA"); ECLPS ps = session.GetPS(); ECLOIA oia = session.GetOIA();
次の 2 つのサンプル・アプリケーションは、NetView 3270 管理コンソールと 共に (examples サブディレクトリーで) 提供されるものです。
このサンプルは、ald コマンドを画面の入力域に入力するものです。
このサンプルは、ald コマンドを出した後で、alert という語を検索するものです。