Oracle Jolt

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

JoltBeans を使う

Oracle Jolt には、以前アドオンとして用意されていた JoltBeans が組み込まれています。JoltBeans は JavaBeans と同様、簡単に使用できます。JoltBeans は、Jolt クライアントを作成するために Java の開発環境で使用される JavaBeans コンポーネントです。クライアント アプリケーションは、Symantec Visual Café などの Java 対応開発ツールのグラフィカル機能を使って作成することができます。JoltBeans には、Oracle Jolt 用の JavaBeans 対応インタフェースが用意されています。これにより、コードを記述せずに、フル機能を備えた Oracle Jolt クライアントを開発することができます。

ここでは、以下の内容について説明します。

 


Jolt Beans の概要

JoltBeans は、2 種類の Java Beans のセットで構成されています。1 つは Jolt API の Beans バージョンである JoltBeans ツールキットです。2 つ目は、Jolt 対応 AWT Beans と Jolt 対応 Swing Beans を含む GUI Bean です。これらの GUI コンポーネントは、Java AWT 標準コンポーネントおよび Swing 標準コンポーネントを Jolt 対応にしたものです。これらの Jolt 対応 GUI コンポーネントを使用すると、最小限のコーディング、またはコーディングをしなくても Jolt クライアント GUI を作成できます。

開発環境のコンポーネント パレットにある JoltBeans を、作成中の Jolt クライアント アプリケーションの Java フォーム (複数のフォームも可) へドラッグ アンド ドロップできます。次に、Bean のプロパティを設定し、アプリケーションやアプレットの Bean に対してイベント ソースとイベント リスナの関係をグラフィカルに設定します。通常、開発ツールはイベント発生時に起動するコードを生成します。コードが生成されない場合は手動で生成します。JoltBeans を使ったクライアントの開発では、Oracle Jolt リポジトリも使用します。Oracle Jolt リポジトリを使用すると、Oracle Tuxedo サービスに簡単にアクセスできます。

注意 : 現在、Oracle 社が認可する JoltBeans 用の統合開発環境は、Symantec Visual Café 3.0 だけです。ただし、JoltBeans は、別の Java 開発環境 (Visual Age など) とも互換性があります。

JoltBeans ツールキットを使用する場合は、JavaBeans 対応の統合開発環境 (IDE: integrated development environment) に慣れておくことをお勧めします。この章の手順説明では、Symantec 社の Visual Café 3.0 の統合開発環境を使用して、アプレットのサンプルを作成する方法を示しています。

JoltBeans の用語

JoltBeans を使用する際には、以下の用語を参照してください。

JavaBeans

移植性があり、プラットフォームに依存しない再利用可能なソフトウェア コンポーネント。開発環境にグラフィカルに表示されます。

JoltBeans

JoltBeans ツールキットおよび Jolt 対応 GUI Bean の 2 種類の Java Beans のセット。

カスタム GUI 要素

JoltBeans と通信する Java GUI クラス。通信は、JoltBeans が提供する JavaBeans のイベント、メソッド、またはプロパティを介して行われます。

Jolt 対応 Bean

JoltInputEvents のソース、JoltOutputEvents のリスナ、またはその両方である Bean。Jolt 対応 Beans は、Bean のガイドラインに従った、カスタム GUI 要素のサブセットです。

Jolt 対応 GUI Beans

2 種類の GUI コンポーネントのパッケージ AWT (Abstract Window Toolkit) および Swing。どちらにも JoltList、JoltCheckBox、JoltTextField、JoltLabel、および JoltChoice コンポーネントがあります。

JoltBeans ツールキット

Oracle Jolt 用の JavaBeans 対応インタフェース。JoltServiceBean、JoltSessionBean、JoltUserEventBean が含まれます。

関連付け

ある Bean を別の Bean からのイベントのリスナとして登録し、Bean どうしを関連付けること。

JoltBeans を Java 開発環境に追加する

JoltBeans を使用する前には、Java の開発環境に JoltBeans を追加する必要があります。

CLASSPATH の設定方法は、使用している開発環境によって異なります。

JoltBeans には、.jar という拡張子のファイル群が用意されており、この中にはすべての JoltBeans が含まれています。これらの .jar ファイルをお使いの Java 開発環境に追加し、JoltBeans を Java ツールのコンポーネント ライブラリで使えるようにすることができます。たとえば、Symantec 社の Visual Café を使う場合は、CLASSPATH を指定することにより、[Component Library] に ..jar ファイルを表示することができます。開発環境では、.jar ファイルの CLASSPATH の設定は一度だけです。.jar ファイルを開発環境の CLASSPATH に設定したら、[Component Library] に JoltBeans を追加できます。これで、Jolt クライアント アプリケーションを開発する Java フォームに JoltBean を直接ドラッグ アンド ドロップすることができます。

Java 開発環境の CLASSPATH を設定するには、お使いの開発環境の製品マニュアルに掲載されている説明に従ってください。お使いの統合開発環境から、jolt.jar ファイルが置かれているディレクトリに移動します。jolt.jar ファイルは、通常 %TUXDIR%¥udatadoj¥jolt というディレクトリに格納されています。jolt.jar ファイルには、Jolt の主要なクラスが含まれています。これらのクラスが含まれるように CLASSPATH を設定してください。JoltBean .jar ファイルを CLASSPATH に追加する必要はありません。お使いの統合開発環境にコンポーネントとして追加するだけで、これらのファイルを使用することができます。

Jolt のクラスが含まれるように CLASSPATH を設定すると、お使いの開発環境のコンポーネント ライブラリに JoltBeans を追加することができます。コンポーネント ライブラリの設定方法については、お使いの開発環境のマニュアルを参照してください。

JoltBeans をコンポーネント ライブラリに追加する準備ができたら、JoltBeans の開発用のバージョンのみを追加してください。詳細については、「開発用およびランタイム用の JoltBeans」を参照してください。

開発用およびランタイム用の JoltBeans

.jar ファイルに含まれる JoltBeans には、開発用とランタイム用の 2 つのバージョンがあります。開発バージョンの JoltBean の名前には、拡張子として Dev が付きます。一方、各クラスのランタイム バージョンには、拡張子として Rt が付きます。たとえば、JoltBean クラスの場合、開発バージョンは JoltBeanDev、ランタイム バージョンは JoltBeanRt になります。

開発時には、開発バージョンの JoltBeans を使用してください。開発バージョンの JoltBeans には、IDE でグラフィカルに開発を行うための別のプロパティが用意されています。たとえば、JoltBeans のグラフィックス用プロパティ (bean information) を使うと、開発環境で Bean をグラフィカルなアイコンで表示することができます。

一方、ランタイム バージョンの JoltBeans には、このようなプロパティはありません。ランタイムでは、開発用のプロパティは必要ないためです。ランタイム バージョンの Bean は、開発バージョンの JoltBeans の簡易版です。

お使いの開発環境でアプリケーションをコンパイルする場合は、開発バージョンの Bean が使用されます。ただし、使用中の開発環境以外のコマンドラインからコンパイルを実行する場合は、CLASSPATH を設定することをお勧めします。これで、ランタイム バージョンの Bean によってアプリケーションがコンパイルされます。

 


JoltBeans の基本的な使用方法

JoltBeans は、次のような基本的な手順で使用します。

  1. お使いの開発環境のコンポーネント ライブラリに開発用バージョンの JoltBeans を追加します。「JoltBeans を Java 開発環境に追加する」を参照してください。
  2. まず、Jolt クライアント アプリケーションまたはアプレット用に、お使いの開発環境の JoltBeans コンポーネント パレットから Java フォーム デザイナへ Bean をドラッグします。
  3. 次に、Bean のプロパティを設定し、アプリケーションやアプレットの Bean に対してイベント ソースとイベント リスナの関係を設定します。つまり、Bean の「関連付け」を行います。開発ツールは、イベント発生時に起動するコードを生成します。
  4. イベント コールバックにアプリケーション ロジックを追加します。

以上の手順は、後の節で詳しく説明します。JoltBeans の使い方に関する節では、例を示しながらこれらの手順を説明します。

 


JavaBeans イベントと Oracle Tuxedo イベント

JavaBeans はイベントを介して通信します。Oracle Tuxedo システムと JavaBeans 環境では、イベントの概念が異なります。Oracle Tuxedo アプリケーションでは、イベントはアプリケーションのある部分で引き起こされ、同一アプリケーションのほかの部分に通知されます。JoltBeans イベントは複数の Bean 間で通信するイベントです。

JoltBeans で Oracle Tuxedo のイベント サブスクリプションとイベント通知を使用する

Oracle Tuxedo は、仲介イベント通知と非請求イベント通知をサポートします。Jolt は、Jolt クライアントが Oracle Tuxedo イベントを受信するメカニズムを備えています。JoltBeans も同様の機能を備えています。

注意 : Oracle Tuxedo のイベント サブスクリプションとイベント通知は JavaBeans のイベントとは異なります。

以下の手順は、Oracle Tuxedo の非同期通知機能が JoltBeans のアプリケーションでどのように使用されるかを示しています。

  1. setEventName()setFilter() メソッドと setFilter() メソッドを使用して、サブスクライブしたい Oracle Tuxedo イベントを指定します。
  2. イベント通知を受信するコンポーネントは、自身を JoltSessionBean に対する JoltOutputListener として登録します。
  3. JoltUserEventBean で subscribe() メソッドが呼び出されます。
  4. 実際に Oracle Tuxedo イベント通知が到着すると、JoltSessionBean は serviceReturned() を呼び出し、リスナに JoltOutputEvent を送信します。JoltOutputEvent オブジェクトには Oracle Tuxedo イベントのデータが含まれています。

クライアントがイベントの受信を必要としなくなったら、JoltUserEventBean で unsubscribe() を呼び出します。

注意 : クライアントが非請求イベントだけを必要とする場合は、setEventName ("\\.UNSOLMSG") を使用します。これはプロパティ シートを使用して設定できます。EventNameFilter は、JoltUserEventBean のプロパティです。

 


JoltBeans における JavaBeans イベント

JoltBeans を使用して作成された Jolt クライアントのアプレットやアプリケーションは、通常 Jolt 対応 GUI Beans (JoltTextField や JoltList) と JoltBeans (JoltServiceBean や JoltSessionBean) で構成されています。Bean は主に JavaBeans イベントを介して通信します。

Jolt 対応 Bean は、JoltInputEvent のソース、JoltOutputEvent のリスナ、またはその両方です。JoltServiceBean は、JoltOutputEvent のソースと JoltInputEvent のリスナです。

Jolt 対応 GUI Beans はプロパティとメソッドをエクスポーズしているため、それを Oracle Tuxedo サービス (JoltServiceBean として表される) のパラメータに直接リンクさせることができます。Jolt 対応 Beans は、内容が変更された場合、JoltInputEvent を介して JoltServiceBean に通知します。JoltServiceBean は、サービス コールの後で応答データが入手できるようになると、登録されているすべての Jolt 対応 Beans に JoltOutputEvent を送信します。Jolt 対応 GUI Beans には、対応するサービスの出力パラメータで内容を更新するロジックが入っています。

次の図は、JoltBeans の関係をグラフィカルに示しています。

図 6-1 JoltBeans の関係

JoltBeans の関係

 


JoltBeans ツールキット

JoltBeans ツールキットには、以下の Bean が含まれています。

これらのコンポーネントは、典型的な JavaBean の機能 (再利用が簡単、開発をグラフィカルに行うことができる、など) をすべて備えた状態で Jolt クラス ライブラリ全体を Bean のコンポーネントに変換します。

JoltBeans のクラス、コンストラクタ、およびメソッドの詳細な説明については、オンライン版の『Oracle Jolt API リファレンス』を参照してください。

以降の節では、各 Bean のプロパティについて説明します。

JoltSessionBean

JoltSessionBean は Oracle Tuxedo のセッションを表し、JoltSession クラス、JoltSessionAttribute クラス、および JoltTransaction クラスの機能をカプセル化します。JoltSessionBean は、Oracle Tuxedo セッションをオープンまたはクローズするメソッドに加え、タイムアウトや Oracle Tuxedo ユーザ名などのセッション属性やセキュリティ属性を設定するプロパティを提供します。

JoltSessionBean は、Oracle Tuxedo セッションが確立されるとき、またはクローズされるときに PropertyChange イベントを送信します。PropertyChange は、java.beans パッケージで定義される標準的な Bean のイベントです。このイベントの目的は、イベント ソース Bean のプロパティ値の変更をほかの Bean に通知することです。この場合、ソースは JoltSessionBean で、ターゲットは JoltServiceBean または JoltUserEventBean です。変更されるプロパティは、JoltSessionBean の LoggedOn プロパティです。ログオンが成功してセッションが確立されると、LoggedOn は true に設定されます。ログオフが成功してセッションがクローズすると、LoggedOn プロパティは false に設定されます。

JoltSessionBean には、beginTransaction()commitTransaction()、および rollbackTransaction() など、トランザクションをコントロールするメソッドがあります。

次の表は JoltSessionBean のプロパティの一覧とその説明です。

表 6-1 JoltSessionBean のプロパティと説明
プロパティ
説明
AppAddress
JSL または Jolt リレーの IP アドレス (ホスト名とポート番号) を設定する。フォーマットは //host:port number
(例: myhost:7000)
AppPassword
必要な場合に、ログオン時に使用する Oracle Tuxedo アプリケーション パスワードを設定する。
IdleTimeOut
IDLETIMEOUT 値を設定する。
inTransaction
トランザクションが開始され、コミットもアボートもされていない場合は true、それ以外の場合は false を示す。
LoggedOn
Oracle Tuxedo セッションが存在する場合は true、存在しない場合は false を示す。
ReceiveTimeOut
RECVTIMEOUT 値を設定する。
SendTimeOut
SENDTIMEOUT 値を設定する。
SessionTimeOut
SESSIONTIMEOUT 値を設定する。
UserName
必要な場合、Oracle Tuxedo ユーザ名を示す。
UserPassword
必要な場合、Oracle Tuxedo ユーザ パスワードを示す。
UserRole
必要な場合、Oracle Tuxedo ユーザ ロールを示す。

JoltServiceBean

JoltServiceBean はリモートの Oracle Tuxedo サービスを表します。このサービス名は、JoltServiceBean のプロパティで設定されます。JoltServiceBean は、ほかの Bean からの JoltInputEvent をリスンし、入力バッファを設定します。JoltServiceBean には、サービスを呼び出す callService() メソッドがあります。JoltServiceBean は、サービスの出力情報を伝達する JoltOutputEvent のイベント ソースです。callService() が成功すると、応答メッセージを伝達する JoltOutputEvent を介してイベント リスナ Bean に通知されます。

JoltServiceBean の基底のメッセージ バッファを変更および照会する主な方法はイベントを介する方法です。また、JoltServiceBean には、setInputValue(...)getOutputValue(...) など、基底のメッセージ バッファに直接アクセスできるメソッドも用意されています。

次の表は JoltServiceBean のプロパティの一覧とその説明です。

表 6-2 JoltServiceBean のプロパティと説明
プロパティ
説明
ServiceName
JoltServiceBean によって表される Oracle Tuxedo サービスの名前。
Session
この Bean に関連付けられた JoltSessionBean であり、Oracle Tuxedo クライアント セッションへのアクセスを許可する。
Transactional
JoltServiceBean が、対応する JoltSessionBean によって開始されたトランザクションに含まれる場合は、true に設定される。

JoltUserEventBean

JoltUserEventBean は、Oracle Tuxedo イベントへのアクセスを提供します。この Bean のプロパティ (イベント名およびイベント フィルタ) を設定して、Oracle Tuxedo イベントのサブスクライブまたは非サブスクライブが定義されます。実際のイベント通知は、JoltSessionBean から JoltOutputEvent 形式で通知されます。

次の表は JoltUserEventBean のプロパティの一覧とその説明です。

表 6-3 JoltUserEventBean のプロパティと説明
プロパティ
説明
EventName
Bean によって表されるユーザ イベントの名前を設定する。
Filter
イベント フィルタを設定する。
Session
この Bean に関連付けられた JoltSessionBean であり、Oracle Tuxedo クライアント セッションへのアクセスを許可する。

 


Jolt 対応 GUI Beans

Jolt 対応 GUI Beans は Java AWT Beans と Swing Beans で構成されており、Java Abstract Windowing Toolkit を継承しています。以下の Bean で構成されています。

注意 : コンパイル時のエラーを避けるため、AWT Bean どうし、または Swing Bean どうしで使用し、これらの 2 種類の Bean を組み合わせないことをお勧めします。

JoltTextField

これは、java.awt.TextField および Swing JTextfield を拡張したものです。JoltTextField にはサービスへの入力の一部が入っています。JoltServiceBean は JoltTextField によって引き起こされたイベントをリスンできます。JoltTextField は、内容が変更されるとリスナ (通常は JoltServiceBean) に JoltInputEvent を送信します。

JoltTextField はサービスからの出力を表示します。この場合、JoltTextField は JoltServiceBean から JoltOutputEvent をリスンし、リンクされたフィールドのオカレンスに従って内容を更新します。

JoltLabel

JoltLabel は、java.awt.Label および Swing JLabel を Jolt 対応させた拡張クラスであり、JoltFieldName プロパティによって Jolt 出力バッファの特定のフィールドにリンクされています。フィールドが複数のオカレンスを持つ場合、この textfield がリンクされるオカレンスは、この Bean の occurrenceIndex プロパティによって指定されます。JoltLabel を JoltServiceBean に接続して、サービスからの出力を表示することができます。JoltLabel は JoltServiceBean から JoltOutputEvent をリスンし、リンクされたフィールドのオカレンスに従ってその内容を更新します。

JoltList

JoltList は、java.awt.List および Swing Jlist を Jolt 対応させた拡張クラスであり、JoltFieldName プロパティによって Jolt の入力バッファまたは出力バッファの特定の Jolt フィールドにリンクされています。Jolt 入力バッファ内でフィールドが複数のオカレンスを持つ場合、リストがリンクされるオカレンスは、この Bean の occurrenceIndex プロパティによって指定されます。JoltList は、次に示す 2 通りの方法で JoltServiceBean に接続できます。

JoltCheckbox

JoltCheckbox は、java.awt.Checkbox および Swing JCheckBox を Jolt 対応させた拡張クラスであり、JoltFieldName プロパティによって Jolt 入力バッファの特定のフィールドにリンクされています。フィールドが複数のオカレンスを持つ場合、checkbox がリンクされるオカレンスは、この Bean の occurrenceIndex プロパティによって指定されます。

JoltCheckbox を JoltServiceBean と接続して、サービスの入力の一部を入れることができます。JoltServiceBean は JoltCheckbox によって引き起こされたイベントをリスンできます。checkbox の選択内容が変わると、JoltCheckbox はリスナ (通常は JoltServiceBean) に JoltInputEvent を送信します。この場合、JoltInputEvent は、チェック ボックスが選択されているときは String データ型の TrueValue プロパティで設定され、チェック ボックスが選択されていないときは FalseValue プロパティで設定されます。

JoltChoice

JoltChoice は java.awt.Choice および Swing JChoice を Jolt 対応させた拡張クラスであり、JoltFieldName プロパティによって Jolt 入力バッファの特定のフィールドにリンクされています。フィールドが複数のオカレンスを持つ場合、この選択がリンクされるオカレンスは、この Bean の occurrenceIndex プロパティによって指定されます。

JoltChoice を JoltServiceBean と接続して、サービスの入力の一部を入れることができます。JoltServiceBean は JoltChoice によって引き起こされたイベントをリスンできます。choicebox の選択内容が変わると、JoltChoice はリスナ (通常は JoltServiceBean) に JoltInputEvent を送信します。この場合、JoltInputEvent は選択された項目の単一の値で設定されます。

注意 : クラスの詳細については、『Oracle Jolt API リファレンス』を参照してください。

 


プロパティ リストとプロパティ エディタを使った JoltBeans プロパティの変更

JoltBeans のほとんどのプロパティ値は、次の「プロパティ リストと [...] ボタン」に示す統合開発環境 (Visual Café など) のプロパティ リストで、右側の列を編集するだけで変更できます。

JoltBeans の一部のプロパティについては、カスタム プロパティ エディタが用意されています。

プロパティ リストからアクセスできるカスタム プロパティ エディタには、プロパティ値を変更するときに使用するダイアログ ボックスがあります。対応するプロパティ値の隣にある [...] ボタンをクリックすると、プロパティ リストからカスタム プロパティ エディタを呼び出すことができます。

図 6-2 プロパティ リストと [...] ボタン

プロパティ リストと [...] ボタン

[...] ボタンを選択すると、次の図に示すようなプロパティ エディタが表示されます。

図 6-3 カスタム プロパティ エディタ ダイアログ ボックス

JoltBeans のカスタム プロパティ エディタはキャッシュされた情報を読み取ります。最初はキャッシュされた情報がないため、プロパティ エディタを初めて使用するときは、このダイアログ ボックスには何も表示されません。Jolt リポジトリにログオンして、そのリポジトリからプロパティ エディタ キャッシュをロードします。

プロパティ リストとプロパティ エディタを使ったログオンの詳細については、「Jolt リポジトリの使用とプロパティ値の設定」を参照してください。

 


JoltBeans クラス ライブラリの使い方

ここでは、以下の操作を行うためのアプレットの作成方法を説明します。

次の図は、JoltBeans を含む完全な Java フォームの例です。このアプレットは BANKAPP の INQUIRY サービスのクライアント機能を実装しています。このサンプルを実行するには、Oracle Tuxedo サーバが実行されていなければなりません。

図 6-4 照会アプレットの例

照会アプレットの例

Java フォームで必要となる各項目の例については、「Visual Café 3.0 のフォーム デザイナ」を参照してください。図の各項目については、次の「フォームに必要な要素」で説明します。

表 6-4 フォームに必要な要素
要素
目的
アプレット (JFC アプレットが選択された場合は JApplet)
開発環境で Bean をペイントするときに使用するフォーム。
JoltSessionBean
Oracle Tuxedo セッションにログオンする。
JoltTextField
ユーザから入力を取得する (この場合は ACCOUT_ID)。
JoltTextField
結果を表示する (この場合は SBALANCE)。
JoltServiceBean
Oracle Tuxedo サービスにアクセスする (この場合は BANKAPP からの INQUIRY)。
ボタン
アクションを開始する。
Label
アプレット上のフィールドを説明する。

サンプル フォームの作成

この例は、Visual Café 3.0 の統合開発環境で作成されたサンプル フォームです。この例では、口座 ID (Account ID) を入力し、Oracle Tuxedo サービスを使って口座残高を表示するためのアプレットの作成方法を説明します。

このサンプルを作成するには、次のような基本的な手順に従います。

  1. Visual Café で、[File|New Project] を選択し、JFC アプレットまたは AWT アプリケーションを選択します。この手順により、JoltBeans のドロップ先のフォーム デザイナが決まります。
  2. アプレットで使用したいすべての JoltBeans をコンポーネント ライブラリからフォーム デザイナにドラッグ アンド ドロップします。
  3. プロパティ リストまたはカスタム プロパティ エディタを使用して、Bean を変更またはカスタマイズします。
  4. [Interaction Wizard] を使用して Bean を関連付けます。
  5. アプレットをコンパイルします。

これらの手順は、次の節でさらに詳しく説明されます。

注意 : 以前の Visual Café のバージョンに用意されていたグラフィカル インタフェースは、Visual Café 3.0 のインタフェースとは異なります。このサンプル アプレットは、以前のバージョンの Visual Café を使って作成することもできますが、[Interaction Wizard] での手順が若干異なります。

JoltBeans をフォーム デザイナ上に配置する

  1. [File|[New Project] を選択し、[JFC Applet] を選択します。
  2. 次の図に示すように Bean をコンポーネント ライブラリから目的の位置へドラッグ アンド ドロップします。
  3. 図 6-5 Visual Café におけるフォーム デザイナ


    Visual Café におけるフォーム デザイナ

Visual Café 3.0 のフォーム デザイナ」は、フォーム デザイナのパレットに配置された JoltBeans がどのように表示されるかを示しています。

図 6-6 Visual Café 3.0 のフォーム デザイナ

Visual Café 3.0 のフォーム デザイナ

  1. 各 Bean のプロパティを設定します。ボタン、ラベル、フィールドを変更またはカスタマイズする場合は、プロパティ リストを使用します。カスタム プロパティ エディタを使用する JoltBeans もあります。
  2. JoltTextField のプロパティ リストとカスタム プロパティ エディタの例」は、テキスト フィールドのプロパティ リストにある JoltFieldName を選択すると、カスタム プロパティ エディタがどのように表示されるかを示しています。

  3. たとえば、JoltTextField の JoltFieldName プロパティを ACCOUNT_ID に設定します。
注意 : JoltBeans のプロパティの設定と変更の詳細については、「Jolt リポジトリの使用とプロパティ値の設定」を参照してください。

次の図は、設定する必要があるプロパティ値を指定しています。太字で示した値は必須値、普通の文字で示した値は推奨値、斜体は設定によって変わる必須値の例です。

表 6-5 必須および推奨のプロパティ値
Bean
プロパティ
label1
Text
Account ID
label2
Text
Balance
JoltTextField1
Name
accountId
JoltTextField1
JoltFieldName
ACCOUNT_ID
JoltTextField2
Name
balance
JoltTextField2
JoltFieldName
SBALANCE
JoltSessionBean1
AppAddress
//tuxserv:2010
JoltServiceBean1
Name
inquiry
JoltServiceBean1
ServiceName
INQUIRY
button1
Label
Inquiry

注意 : この例では、occurrenceIndex のデフォルト値 0 は両方の JoltTextField に有効です。

JoltBean のプロパティについての一般的な説明については、次の「JoltTextField のプロパティ リストとカスタム プロパティ エディタの例」および「Jolt リポジトリの使用とプロパティ値の設定」を参照してください。

図 6-7 JoltTextField のプロパティ リストとカスタム プロパティ エディタの例

JoltTextField のプロパティ リストとカスタム プロパティ エディタの例

  1. JoltFieldName のプロパティ値を変更するには、プロパティ リストの JoltFieldName の [...] ボタンをクリックします。
  2. カスタム プロパティ エディタが表示されます。

  3. 新しいフィールド名 (この例では「ACCOUNT_ID」) を選択または入力して、[OK] をクリックします。
  4. 変更内容は、「JoltFieldName を変更した JoltTextField プロパティ リスト」のプロパティ リストと「プロパティが変更されたアプレット フォーム デザイナの例」のテキスト フィールドに反映されます。

注意 : カスタム プロパティ エディタに表示されるプロパティはローカルにキャッシュされます。そのため、元のデータベースが変更された場合は、[Refresh] ボタンを押さないと、最新の使用可能なプロパティが表示されません。
図 6-8 JoltFieldName を変更した JoltTextField プロパティ リスト

JoltFieldName を変更した JoltTextField プロパティ リスト

次の「プロパティが変更されたアプレット フォーム デザイナの例」は、Bean のプロパティ リストのフィールドにテキストを追加した後、ボタンやテキストフィールドのテキストがどのように変わるかを示します。

図 6-9 プロパティが変更されたアプレット フォーム デザイナの例

プロパティが変更されたアプレット フォーム デザイナの例

  1. 右の列にプロパティ値を設定した後、Visual Café の Interaction Wizard を使用して Bean を関連付けることにより、Bean のインタラクションの仕方を定義します。詳細については、「必須および推奨のプロパティ値」を参照してください。詳細については、「JoltBeans の関連付け」を参照してください。

JoltBeans の関連付け

すべての Bean がフォーム上に配置され、プロパティを設定した後、それらのイベントを関連付けます。次の「JoltBeans を関連付ける順序」は、Bean を関連付ける際の手順の例を示しています。

Bean を関連付けると、さまざまなフォームの Bean 間のイベント ソースとイベント リスナの関係を確立できます。たとえば、JoltServiceBean はボタンの ActionEvent のリスナであり、このイベントをリスンしたときに callService() を呼び出します。Visual Café の Interaction Wizard を使って Bean どうしを関連付けてください。

次の図は、このサンプル アプレットを作成するための、Bean を関連付ける順序を示しています。図中の数は、次に説明する手順の番号を示しています。

図 6-10 JoltBeans を関連付ける順序

JoltBeans を関連付ける順序

以下の手順は、「JoltBeans を関連付ける順序」に示した番号に対応しています。これらの手順は、次の節でさらに詳しく説明します。

手順 1: JoltSessionBean とログオンを関連付ける

手順 2: propertyChange を使用して JoltSessionBean を JoltServiceBean に関連付ける

手順 3: JoltInputEvent を使用して入力項目 accountID の JoltTextField を JoltServiceBean に関連付ける

手順 4: JoltAction を使用してボタンを JoltServiceBean に関連付ける

手順 5: JoltOutputEvent を使用して JoltServiceBean を Balance の JoltTextField に関連付ける

手順 6: JoltSessionBean とログオフを関連付ける

手順 7: アプレットをコンパイルする (図には表示されていません)

手順 1: JoltSessionBean とログオンを関連付ける

  1. [Form Designer] ウィンドウで、[Interaction Wizard] ボタンをクリックします。
  2. 次の図に示すようにアプレット ウィンドウの一点をクリックし、そのまま JoltSessionBean へドラッグします。
  3. 図 6-11 アプレットを Jolt Session Bean に関連付ける

    [Interaction Wizard] ウィンドウが表示されます (「[ComponentShown] イベントを選択する」を参照)。

    「What event in JApplet1 do you want to start the interaction?」というメッセージが表示されます。

  4. 次の図のように、インタラクションを開始するイベントとして [Interaction Wizard] ウィンドウの [ComponentShown] を選択します。
  5. 図 6-12 [ComponentShown] イベントを選択する


    [ComponentShown] イベントを選択する

  6. [Next] をクリックします。
  7. [Interaction Wizard] ウィンドウが表示されます (「[Logon to the TUXEDO System] を選択する」を参照)。

    「What do you want to happen when Japplet1 fires componentShown event?」というメッセージが表示されます。

  8. 次の図のように、[Perform an action] ラジオ ボタンを選択し、[Logon to the TUXEDO system] を選択します。
  9. 図 6-13 [Logon to the TUXEDO System] を選択する


    [Logon to the TUXEDO System] を選択する

  10. [Finish] をクリックします。

手順 1: JoltSessionBean とログオンを関連付ける」を終了すると、アプレットを最初に開いたときに送信されるイベント (例 : ComponentShown) で、JoltSessionBean の logon() メソッドをトリガできるようになります。

手順 2: propertyChange を使用して JoltSessionBean を JoltServiceBean に関連付ける

  1. Visual Café の [Form Designer] ウィンドウのツールバーで [Interaction Tool] アイコンをクリックします。
  2. 次の図に示すように [JoltSessionBean] をクリックし、そのまま JoltServiceBean へドラッグします。
  3. 図 6-14 JoltSessionBean を JoltServiceBean に関連付ける


    JoltSessionBean を JoltServiceBean に関連付ける

    [Interaction Wizard] ウィンドウが表示されます (「[propertyChange] イベントを選択する」を参照)。

    「What event in joltSessionBean1 do you want to start the interaction?」というメッセージが表示されます。

  4. インタラクションを開始するイベントとして [propertyChange] を選択します。
  5. 図 6-15 [propertyChange] イベントを選択する
  6. [Next] をクリックします。
  7. [Interaction Wizard] ウィンドウが表示されます (「[Handle a Jolt property change event] を選択する」を参照)。

    「What do you want to happen when joltSessionBean1 fires propertyChange event?」というメッセージが表示されます。

  8. 次の図のように、メソッドとして [Handle a Jolt property change event] を選択します。
  9. 図 6-16 [Handle a Jolt property change event] を選択する
  10. [Next] をクリックします。
  11. [Interaction Wizard] ウィンドウが表示されます (「[joltSesssionBean1] を選択する」を参照)。

    「How do you want to supply the parameter to this method?」というメッセージが表示されます。

    使用可能なオブジェクトとアクションの一覧が表示されます。

  12. 次の図のように、アクションを実行するオブジェクトとして [joltSessionBean1] を選択します。
  13. アクションとして [Get the current Property Change Event] オブジェクトを選択します。
  14. 図 6-17 [joltSesssionBean1] を選択する


    [joltSesssionBean1] を選択する

  15. [Finish] をクリックします。

手順 2: propertyChange を使用して JoltSessionBean を JoltServiceBean に関連付ける」を終了すると、logon() 完了時に JoltSessionBean が propertyChange イベントを送信できるようになります。JoltServiceBean はこのイベントをリスンし、サービスをこのセッションに関連付けます。

手順 3: JoltInputEvent を使用して入力項目 accountID の JoltTextField を JoltServiceBean に関連付ける

  1. Visual Café の [Form Designer] ウィンドウで [Interaction Wizard] アイコンをクリックします。
  2. [accountID JoltTextfield Bean] を選択し、そのまま JoltServiceBean へドラッグします。
  3. 次の図のように、[Interaction Wizard] ウィンドウが表示されます。

    「What event in accountId do you want to start the interaction?」というメッセージが表示されます。

  4. 次の図のように、イベントとして [dataChanged] を選択します。
  5. 図 6-18 [dataChanged] イベントを選択する


    [dataChanged] イベントを選択する

  6. [Next] をクリックします。
  7. [Interaction Wizard] ウィンドウが表示されます (「オブジェクトとして [inquiry]、アクションとして [Handle a Jolt input event] を選択する」を参照)。

    「What do you want to happen when accountId fires dataChanged event?」というメッセージが表示されます。

  8. 次の図のように、パラメータを実行するオブジェクトとして joltServiceBean の [inquiry] を選択します。
  9. アクションとして [Handle a jolt input event] を選択します (次の図を参照)。
  10. 図 6-19 オブジェクトとして [inquiry]、アクションとして [Handle a Jolt input event] を選択する


    オブジェクトとして [inquiry]、アクションとして [Handle a Jolt input event] を選択する

  11. [Next] をクリックします。
  12. [Interaction Wizard] ウィンドウが表示されます (「オブジェクトとして [accountId]、アクションとして [Get the current Jolt Input Event] を選択する」を参照)。

    「How do you want to supply the parameter to this method?」というメッセージが表示されます。

    使用可能なオブジェクトとアクションの一覧が表示されます。

  13. 次の図のように、オブジェクトとして [accountId] を選択します。
  14. アクションとして [Get the current Jolt Input Event] を選択します。
  15. 図 6-20 オブジェクトとして [accountId]、アクションとして [Get the current Jolt Input Event] を選択する


    オブジェクトとして [accountId]、アクションとして [Get the current Jolt Input Event] を選択する

  16. [Finish] をクリックします。

手順 3: JoltInputEvent を使用して入力項目 accountID の JoltTextField を JoltServiceBean に関連付ける」を終了すると、最初のテキスト フィールドに口座番号を入力できるようになります。JoltTextField の JoltFieldName のプロパティが「ACCOUNT_ID」に設定されます。このテキストボックスの内容が変更されると JoltInputEvent が JoltServiceBean に送信されます。JoltServiceBean は、このテキスト ボックスから JoltInputEvent をリスンします。JoltInputEvent オブジェクトには、このフィールドの名前、値、およびオカレンス インデックスが含まれます。

手順 4: JoltAction を使用してボタンを JoltServiceBean に関連付ける

  1. Visual Café の [Form Designer] ウィンドウで [Interaction Wizard] アイコンをクリックします。
  2. [Inquiry] ボタンをクリックし、JoltServiceBean へドラッグします。
  3. 次の図のように、[Interaction Wizard] ウィンドウが表示されます。

    「What event in button1 do you want to start the interaction?」というメッセージが表示されます。

  4. 次の図のように、イベントとして [actionPerformed] を選択します。
  5. 図 6-21 イベントとして [actionPerformed] を選択する


    イベントとして [actionPerformed] を選択する

  6. [Next] をクリックします。
  7. [Interaction Wizard] ウィンドウが表示されます (「オブジェクトとして [inquiry] を選択し、アクションとして [Invoke the TUXEDO Service represented by this Bean] を選択する」を参照)。

    「What do you want to happen when button1 fires actionPerformed event?」というメッセージが表示されます。

  8. 次の図のように、オブジェクトとして [inquiry] を選択します。
  9. アクションとして [Invoke the TUXEDO Service represented by this Bean] を選択します (次の図を参照)。
  10. 図 6-22 オブジェクトとして [inquiry] を選択し、アクションとして [Invoke the TUXEDO Service represented by this Bean] を選択する


     オブジェクトとして [inquiry] を選択し、アクションとして [Invoke the TUXEDO Service represented by this Bean] を選択する

  11. [Finish] をクリックします。

手順 4: JoltAction を使用してボタンを JoltServiceBean に関連付ける」を終了すると、JoltServiceBean の callService() メソッドを、[Inquiry] ボタンからの ActionEvent でトリガできます。

手順 5: JoltOutputEvent を使用して JoltServiceBean を Balance の JoltTextField に関連付ける

  1. Visual Café の [Form Designer] ウィンドウで [Interaction Wizard] アイコンをクリックします。
  2. [JoltServiceBean] を選択して、[AmountJoltTextFeald Bean] へドラッグします。
  3. 次の図のように [Interaction Wizard] ウィンドウが表示されます。

    「What event in inquiry do you want to start the interaction?」というメッセージが表示されます。

  4. 次の図のように、イベントとして [serviceReturned] を選択します。
  5. 図 6-23 [ServiceReturned] イベントを選択する


    [ServiceReturned] イベントを選択する

  6. [Next] をクリックします。
  7. [Interaction Wizard] ウィンドウが表示されます (「オブジェクトとして [balance] を選択し、アクションとして [Handle a service returned event] を選択する」を参照)。

    「What do you want to happen when inquiry fires serviceReturned event?」というメッセージが表示されます。

  8. 次の図のように、オブジェクトとして [balance] を選択します。
  9. アクションとして [Handle a service returned event...] を選択します (次の図を参照)。
  10. 図 6-24 オブジェクトとして [balance] を選択し、アクションとして [Handle a service returned event] を選択する


    オブジェクトとして [balance] を選択し、アクションとして [Handle a service returned event] を選択する

  11. [Next] をクリックします。
  12. [Interaction Wizard] ウィンドウが表示されます (「オブジェクトとして [inquiry]、アクションとして [Get the JoltOutputEvent object] を選択する」を参照)。

    「How do you want to supply the parameter to this method?」というメッセージが表示されます。

  13. 次の図のように、オブジェクトとして [inquiry] を選択します。
  14. アクションとして [Get the JoltOutputEvent] オブジェクトを選択します (次の図を参照)。
  15. 図 6-25 オブジェクトとして [inquiry]、アクションとして [Get the JoltOutputEvent object] を選択する


    オブジェクトとして [inquiry]、アクションとして [Get the JoltOutputEvent object] を選択する

  16. [Finish] をクリックします。

手順 5: JoltOutputEvent を使用して JoltServiceBean を Balance の JoltTextField に関連付ける」を終了すると、JoltServiceBean はリモートのサービスから応答データを受信したときに JoltOutputEvent を送信することができるようになります。JoltOutputEvent オブジェクトには、出力バッファのフィールドにアクセスするためのメソッドが入っています。JoltTextField は INQUIRY サービスの結果を表示します。

手順 6: JoltSessionBean とログオフを関連付ける

  1. Visual Café の [Form Designer] ウィンドウで [Interaction Wizard] アイコンをクリックします。
  2. アプレット ウィンドウの一点をクリックし (Bean はクリックしない)、そのまま JoltSessionBean へドラッグします。
  3. 次の図のように [Interaction Wizard] ウィンドウが表示されます。

    「What event in JApplet1 do you want to start the interaction?」というメッセージが表示されます。

  4. 次の図のように、イベントとして [componentHidden] を選択します。
  5. 図 6-26 [componentHidden] イベントを選択する


    [componentHidden] イベントを選択する

  6. [Next] をクリックします。
  7. [Interaction Wizard] ウィンドウが表示されます (「オブジェクトとして [joltSessionBean1]、アクションとして [Logoff from the TUXEDO system] を選択する」を参照)。

    「What do you want to happen when JApplet1 fires componentHidden event?」というメッセージが表示されます。

  8. アクションを実行するオブジェクトとして [joltSessionBean1] を選択します。
  9. アクションとして [Logoff from the TUXEDO system] を選択します (次の図を参照)。
  10. 図 6-27 オブジェクトとして [joltSessionBean1]、アクションとして [Logoff from the TUXEDO system] を選択する


    オブジェクトとして [joltSessionBean1]、アクションとして [Logoff from the TUXEDO system] を選択する

  11. [Finish] をクリックします。

手順 6: JoltSessionBean とログオフを関連付ける」を終了すると、アプレットが非表示になったときに送信されるイベント (例: componentHidden) が、JoltSessionBean の logoff() メソッドをトリガできるようになります。

手順 7: アプレットをコンパイルする

JoltBeans を関連付けたら、アプレットをコンパイルします。例外処理をキャッチ ブロックに設定します。メッセージ ウィンドウに、コンパイル エラーや例外がないかどうかを確認します。

詳細については、「Jolt リポジトリの使用とプロパティ値の設定」を参照してください。また、「JoltBean 固有のプロパティ」と「JoltServiceBean のプロパティ エディタ」を参照してください。

サンプル アプリケーションの実行

サンプル アプリケーションを実行するには、Oracle Tuxedo サーバが実行されていなければなりません。次に、口座番号を [Account ID] フィールドに入力します。BANKAPP データベース内にある口座番号であれば、どの口座番号を使用してもかまいません。次の 2 つの口座番号は、サンプル アプリケーションで使用できる口座番号の例です。

 


Jolt リポジトリの使用とプロパティ値の設定

カスタム プロパティ エディタは以下のプロパティのために用意されています。

プロパティ リストからアクセスされるプロパティ エディタには、プロパティを追加または変更するときに使用するダイアログ ボックスが含まれています。対応するプロパティ値の隣にある [...] ボタンを選択することにより、このダイアログ ボックスをプロパティ リストから呼び出すことができます。

JoltBean のなかには、プロパティ リスト フィールドへの設定を必要とするものもあります。このような JoltBean を次の表にまとめて示します。

表 6-6 JoltBean 固有のプロパティ
JoltBean
プロパティ
入力の説明
JoltSessionBean
appAddress
userName、Password または AppPassword
例 : //host:port
Oracle Tuxedo ユーザ名とパスワードを入力する。
JoltServiceBean
serviceName
isTransactional
たとえば、INQUIRY を指定する。
トランザクションの処理中にサービスを実行する必要がある場合は true に設定する。サービスがトランザクションを必要としない場合は、isTransactional を false に設定する。
JoltUserEventBean
eventName
filter
Oracle Tuxedo tpsubscribe コールを参照。
すべての Jolt 対応 GUI Bean
joltFieldName
occurrenceIndex
たとえば、ACCOUNT_ID を指定する。
同じ名前の複数のフィールド。インデックスは 0 から始まる。
JoltCheckbox
TrueValue と FalseValue
チェック ボックスの状態に対応するフィールド値。

プロパティ エディタは、リポジトリからキャッシュされた情報を読み取り、使用可能なサービス名とリストボックスのデータ要素を返します。ServiceName のプロパティ エディタの例を、次の「JoltServiceBean のプロパティ エディタ」に示します。

Bean のプロパティを追加するには、以下の手順に従います。

  1. 次の図の ServiceName フィールドの [...] ボタンをクリックしてサービス名を選択します。
  2. 図 6-28 JoltServiceBean のプロパティ エディタ


    JoltServiceBean のプロパティ エディタ

    次の図に示すような ServiceName のカスタム プロパティ エディタが表示されます。

    図 6-29 ServiceName のカスタム プロパティ エディタ


    ServiceName のカスタム プロパティ エディタ

注意 : Repository データベースに接続できない、または接続したくない場合は、テキスト ボックスにサービス名を入力し、手順 7 に進んでください。
  1. ログオンしていない場合は、[Logon] を選択します。
  2. 次の図に示すような [JoltBeans Repository Logon] ウィンドウが表示されます。

    図 6-30 JoltBeans Repository Logon ウィンドウ


    JoltBeans Repository Logon ウィンドウ

  3. Server フィールドに、Oracle Tuxedo または Jolt リレー マシンの名前を入力し、Port number フィールドに JSL または Jolt リレーを入力します。
  4. パスワード、およびユーザ名情報 (必要な場合) を入力して [Logon] をクリックします。
  5. カスタム プロパティ エディタがリポジトリからキャッシュをロードします (「プロパティ エディタと選択されたサービス」を参照)。

  6. に示すリスト ボックス内の該当するサービス名を選択します。
  7. プロパティ値 (サービス名またはフィールド名) を直接入力します。
  8. 用意されているテキストボックスに入力してください。

  9. カスタム プロパティ エディタ ダイアログ ボックスの [OK] をクリックします。
  10. テキストボックスに入力した内容が Bean のプロパティに設定されます。

    図 6-31 プロパティ エディタと選択されたサービス


    プロパティ エディタと選択されたサービス

  11. カスタム プロパティ エディタ ダイアログ ボックスの [OK] をクリックします。

 


JoltBeans のプログラミング

以下の手順が追加されています。

JoltBeans によるトランザクションの使用

Oracle Tuxedo アプリケーション サービスが、データベースを更新する機能を持つ場合があります。この場合は、JoltBeans でトランザクションを使用できます。たとえば BANKAPP では、TRANSFER と WITHDRAWAL のサービスが BANKAPP のデータベースを更新します。アプリケーション サービスが読み取り専用 (例: INQUIRY) の場合には、トランザクションを使用する必要はありません。

以下は、JoltBeans でトランザクションを使用する例です。

  1. JoltServiceBean クラスの setTransactional (true) メソッドを呼び出します。isTransactional は JoltServiceBean の boolean 型のプロパティです。
  2. JoltSessionBean クラスの beginTransaction() メソッドを呼び出します。
  3. JoltServiceBean クラスの callService() メソッドを呼び出します。
  4. サービス コールの結果により、JoltSessionBean クラスの commitTransaction() メソッドまたは rollbackTransaction() メソッドを呼び出します。

JoltServiceBean でカスタム GUI 要素を使用する

JoltBeans には、Jolt 対応の限定された GUI コンポーネントのセットが用意されています。また、Jolt に対応していないコントロールを JoltServiceBean と一緒に使用することもできます。JoltServiceBean にはコントロール (JoltServiceBean によって表されるサービスの出力情報を表示) をリンクすることができます。また、入力情報を表示するコントロールをリンクすることもできます。

たとえば、GUI 要素は JoltOutputListener インタフェースを実装するアダプタ クラスを使用して、JoltOutputEvent をリスンできます。JoltServiceBean は JoltOutputEvent のイベント ソースとして、JoltOutputEvent を送信するときにアダプタ クラスの serviceReturned() メソッドを呼び出します。serviceReturned() の内部では、イベント オブジェクトからの情報を使用して、コントロールの内部データが更新されます。

開発ツールは、JoltServiceBean と GUI 要素が関連付けられるとアダプタ クラスを生成します。

2 つ目の例として、GUI 要素は JoltServiceBean の setInputTextValue() メソッドを呼び出すことができます。GUI 要素には JoltServiceBean によって表される Oracle Tuxedo サービスへの入力データが含まれています。

3 つ目の例として、GUI 要素は必要なメソッド (addJoltInputListener()removeJoltInputListener()) を実装でき、JoltInputEvent のイベント ソースとしての役割を果たします。JoltServiceBean は、これらのイベントのイベント リスナとしての役割を果たします。コントロールは、状態が変わる場合に JoltInputEvent を送信して、入力情報で JoltServiceBean を更新します。


  ページの先頭       前  次