Oracle Joltの使用

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

JoltBeansの使用

以前はアドオンとして使用可能であったJoltBeansは、現在はOracle Joltに組み込まれており、JavaBeansと同じぐらい簡単に使用できます。これらは、Java開発環境でJoltクライアントを構成するために使用する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 Beansで構成されます。これらのGUIコンポーネントは、Java AWT標準コンポーネントおよびSwing標準コンポーネントの一部をJolt対応バージョンにしたものであり、最小限のコーディングまたはコーディングなしでJoltクライアントGUIを構築することを可能にします。

JoltBeansは、開発ツールのコンポーネント・パレットから作成中のJoltクライアント・アプリケーションのJavaフォームにドラッグ・アンド・ドロップできます。Beansのプロパティを移入し、アプリケーションやアプレットの各種のBeans間のイベント・ソース・リスナーの関係をグラフィカルに設定できます。通常は開発ツールを使用してイベントのフックアップ・コードを生成しますが、フックアップを手動でコーディングすることもできます。JoltBeansを使用したクライアント開発では、Oracle Joltリポジトリと統合されるため、使用可能なOracle Tuxedo機能に簡単にアクセスできます。

注意: 現在、Oracleで動作が保証されているJoltBeans用の統合開発環境は、Symantec Visual Café 3.0のみです。ただし、JoltBeansは別のJava開発環境(Visual Ageなど)とも互換性があります。

JoltBeansツールキットを使用する場合は、JavaBeans対応の統合開発環境(IDE)を熟知しておくことをお薦めします。この章のウォークスルーでは、SymantecのVisual Café 3.0の統合開発環境に基づいてサンプル・アプレットを作成する基本的な手順を示しています。

JoltBeansの用語

JoltBeansの使用に関連する用語は、次のとおりです。

JavaBeans

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

JoltBeans

2つのJava Beansセット(JoltBeansツールキットおよびJolt対応GUI Beans)。

カスタムGUI要素

JoltBeansと通信するJava GUIクラス。通信の手段として、JoltBeansにより提供されるJavaBeansイベント、メソッドおよびプロパティがあります。

Jolt対応Bean

JoltInputEventのソース、JoltOutputEventのリスナー、またはその両方であるBean。Jolt対応Beanは、Beanのガイドラインに準拠したカスタムGUI要素のサブセットです。

Jolt対応GUI Beans

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

JoltBeansツールキット

JavaBeansに準拠したOracle Joltとのインタフェースであり、JoltServiceBean、JoltSessionBeanおよびJoltUserEventBeanが含まれます。

関連付け

あるBeanが別のBeanからのイベントのリスナーとして登録されるように、Beanどうしを結び付けるプロセス。

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

JoltBeansを使用するには、JoltBeansを含むようにJava開発環境を設定しておく必要があります。

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

JoltBeansには、すべてのJoltBeansが含まれる.jarファイル・セットが含まれています。これらの.jarファイルをJava開発環境に追加すると、Javaツールのコンポーネント・ライブラリ内でJoltBeansが使用可能になります。たとえば、Symantec Visual Caféを使用する場合、Visual Caféの「Component Library」ウィンドウに.jarファイルが表示されるようにCLASSPATHを設定できます。これらの.jar ファイルのCLASSPATHは、開発環境で1回設定するだけです。これらの.jarファイルを開発環境のCLASSPATHに設定した後は、JoltBeansをコンポーネン・ライブラリに追加できます。あとは、Joltクライアント・アプリケーションを開発するJavaフォームにJoltBeanを直接ドラッグ・アンド・ドロップするだけです。

Java開発環境のCLASSPATHを設定するには、ご使用の開発環境の製品ドキュメントに記載された手順に従ってください。開発ツールのIDEから、jolt.jarファイルが置かれているディレクトリに移動します。jolt.jarファイルは通常、%TUXDIR%\udatadoj\joltというディレクトリ内にあります。jolt.jarファイルには、Joltの主要なクラスが含まれています。これらのクラスが含まれるようにCLASSPATHを設定してください。JoltBean .jarファイルをCLASSPATHに追加する必要はありません。これらのファイルは、IDEにコンポーネントとして追加するのみで使用できます。

Joltクラスが含まれるようにCLASSPATHを設定した後は、開発環境のコンポーネント・ライブラリにJoltBeansを追加できます。コンポーネント・ライブラリへの移入手順は、ご使用の開発環境のドキュメントを参照してください。

JoltBeansをコンポーネント・ライブラリに追加できるようになったら、JoltBeansの開発バージョンのみを追加してください。詳細は、「開発JoltBeansおよび実行時JoltBeansの使用」を参照してください。

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

JoltBeansを含む.jarファイルには、開発バージョンと実行時バージョンの2つのバージョンがあります。開発バージョンのJoltBeanの名前にはそれぞれ、接尾辞Devが付きます。実行時バージョンのクラスの名前にはそれぞれ、接尾辞Rtが付きます。たとえば、JoltBeanクラスの場合、開発バージョンはJoltBeanDevとなり、実行時バージョンはJoltBeanRtとなります。

開発プロセス中は、開発バージョンのJoltBeansを使用してください。開発JoltBeansには、グラフィックIDEでの開発に役立つ追加のプロパティが用意されています。たとえば、JoltBeansのグラフィック・プロパティ(bean information)を使用すると、開発環境でJoltBeansをグラフィック・アイコンとして操作できます。

実行時バージョンのJoltBeansには、このような追加のプロパティはありません。実行時には、Beansの追加の開発プロパティは必要ありません。実行時Beansは、開発バージョンのJoltBeansの簡易版です。

開発環境でアプリケーションをコンパイルすると、開発Beansを使用してコンパイルされます。ただし、開発環境外部でコマンドラインからコンパイルを実行する場合は、アプリケーションのコンパイル時に実行時Beansが使用されるようにCLASSPATHを設定することをお薦めします。

 


JoltBeansの基本的な使用方法

JoltBeansの基本的な使用手順は次のとおりです。

  1. 「Java開発環境へのJoltBeansの追加」の説明に従って、Java開発環境のコンポーネント・ライブラリに開発バージョンのJoltBeansを追加します。
  2. Joltクライアント・アプリケーションまたはアプレット用に、開発環境のJoltBeansコンポーネント・パレットからJavaフォーム・デザイナにBeansをドラッグします。
  3. Beansのプロパティを移入し、アプリケーションまたはアプレットのBeans間のイベントソース・リスナーの関係を設定します(Beansどうしを関連付けます)。開発ツールによって、イベントのフックアップ・コードが生成されます。
  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のイベントとは異なります。

次の手順では、JoltBeansアプリケーションでOracle Tuxedoの非同期通知メカニズムがどのように使用されるかを示します。

  1. JoltUserEventBeanのsetEventName()メソッドおよびsetFilter()メソッドを使用して、サブスクライブするOracle Tuxedoイベントを指定します。
  2. イベント通知を受信するコンポーネントは、自身をJoltOutputListenerとしてJoltSessionBeanに登録します。
  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対応Beansは、JoltInputEventのソース、JoltOutputEventのリスナー、またはその両方です。JoltServiceBeansは、JoltOutputEventのソースおよびJoltInputEventのリスナーです。

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

図6-1は、JoltBeans間の関係を表しています。

図6-1 JoltBeans間の相互関係

JoltBeans間の相互関係

 


JoltBeansツールキット

JoltBeansツールキットには、次のBeansが含まれています。

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

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、ターゲットはJoltServiceBeansまたはJoltUserEventBeans、プロパティ変更はJoltSessionBeanのLoggedOnプロパティです。ログオンが成功してセッションが確立されると、LoggedOnはtrueに設定されます。ログオフが成功してセッションがクローズすると、LoggedOnプロパティはfalseに設定されます。

JoltSessionBeanには、beginTransaction()commitTransaction()rollbackTransaction()など、トランザクションを制御するためのメソッドが用意されています。

表6-1に、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(…)など)も用意されています。

表6-2に、JoltServiceBeanのプロパティとその説明を示します。

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

JoltUserEventBean

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

表6-3に、JoltUserEventBeanのプロパティとその説明を示します。

表6-3 JoltUserEventBeanのプロパティおよび説明
プロパティ
説明
EventName
Beanで表されるユーザー・イベントの名前を設定します。
フィルタ
イベント・フィルタを設定します。
セッション
Oracle Tuxedoクライアント・セッションへのアクセスを可能にする、Beanに関連付けられたJoltSessionBean。

 


Jolt対応GUI Beans

Jolt対応GUI BeansはJava AWT Beansと Swing Beansで構成されており、Java Abstract Windowing Toolkitを継承しています。次が含まれます:

注意: コンパイル時のエラーを回避するため、2つのパッケージからのBeanを組み合せて使用するのではなく、AWT BeanどうしまたはSwing Beanどうしで使用することをお薦めします。

JoltTextField

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

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

JoltLabel

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

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入力バッファ内の特定のフィールドにリンクされています。フィールドが複数のオカレンスを持つ場合、このchoiceがリンクされるオカレンスは、このBeanのoccurrenceIndexプロパティによって指定されます。

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

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

 


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

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

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

カスタム・プロパティ・エディタにはプロパティ・リストからアクセスでき、プロパティ値の変更に使用するダイアログ・ボックスがあります。カスタム・プロパティ・エディタを起動するには、対応するプロパティ値の隣にある「...」ボタンをクリックします。

図6-2 プロパティ・リスト: 「...」ボタン

プロパティ・リスト: 「...」ボタン

「...」ボタンを選択すると、図6-3に示すようなプロパティ・エディタが表示されます。

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

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

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

 


JoltBeansクラス・ライブラリのウォークスルー

このウォークスルーでは、次の目的で使用するアプレットの作成方法について説明します。

図6-4は、JoltBeansを含む完成したJavaフォームの例を示しています。このアプレットにより、Oracle Tuxedoに組み込まれているBANKAPPサンプルのINQUIRYサービスのクライアント機能が実装されます。このサンプルを実行するには、Oracle Tuxedoサーバーが実行されている必要があります。

図6-4 サンプルの照会アプレット

サンプルの照会アプレット

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

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

サンプル・フォームの作成

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

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

  1. Visual Caféで、「File」矢印記号「New Project」を選択し、JFCアプレットまたはAWTアプリケーションを選択します。この手順により、JoltBeansのドロップ先の基本的なフォーム・デザイナが提供されます。
  2. アプレットで使用したいすべてのJoltBeansをコンポーネント・ライブラリからフォーム・デザイナにドラッグ・アンド・ドロップします。
  3. プロパティ・リストまたはカスタム・プロパティ・エディタを使用して、Beanを変更またはカスタマイズします。
  4. インタラクション・ウィザードを使用してBeanを関連付けます。
  5. アプレットをコンパイルします。

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

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

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

  1. 「File」矢印記号「New Project」を選択し、「JFC Applet」を選択します。
  2. Beansをコンポーネント・ライブラリからフォーム・デザイナのパレットにドラッグ・アンド・ドロップします(図6-5を参照)。
  3. 図6-5 Visual Caféにおけるフォーム・デザイナ


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

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

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

Visual Café 3.0<span style= フォーム・デザイナ" id="wp341676"/>

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

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

表6-5に、設定する必要があるプロパティ値を示します。太字および斜体のテキストで示した値は必須値であり、普通の文字で示した値は推奨値です。

表6-5 必須および推奨のプロパティ値
Bean
プロパティ
label1
テキスト
Account ID
label2
テキスト
Balance
JoltTextField1
名前
accountId
JoltTextField1
JoltFieldName
ACCOUNT_ID
JoltTextField2
名前
balance
JoltTextField2
JoltFieldName
SBALANCE
JoltSessionBean1
AppAddress
//tuxserv:2010
JoltServiceBean1
名前
inquiry
JoltServiceBean1
ServiceName
INQUIRY
button1
ラベル
Inquiry

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

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

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

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

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

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

注意: カスタム・プロパティ・エディタに表示されるプロパティはローカルにキャッシュされます。そのため、元のデータベースが変更された場合は、「リフレッシュ」ボタンを押さないと、最新の使用可能なプロパティが表示されません。
図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éのインタラクション・ウィザードを使ってBeanどうしを関連付けてください。

図6-10は、このサンプル・アプレットを作成するために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. 「フォーム・デザイナ」ウィンドウで、「インタラクション・ウィザード」ボタンをクリックします。
  2. アプレット・ウィンドウ内をクリックしてJoltSessionBeanにドラッグします(図6-11を参照)。
  3. 図6-11 アプレットをJoltセッションBeanに関連付ける

    「ComponentShownイベントの選択」に示すような「インタラクション・ウィザード」ウィンドウが表示され、次のプロンプトが表示されます。

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

  4. 「インタラクション・ウィザード」ウィンドウでインタラクションを開始するイベントとして「ComponentShown」を選択します(図6-12を参照)。
  5. 図6-12 「ComponentShown」イベントを選択する


    ComponentShownイベントの選択

  6. 「次へ」をクリックします。
  7. 「インタラクション・ウィザード」ウィンドウが表示されます(「「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」を選択します(図6-13を参照)。
  9. 図6-13 「Logon to the TUXEDO System」を選択する


    「Logon to the TUXEDO System」を選択する

  10. 「終了」をクリックします。

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

ステップ2: propertyChangeを使用してJoltSessionBeanをJoltServiceBeanに関連付ける

  1. Visual Caféの「フォーム・デザイナ」ウィンドウのツールバーで「Interaction Tool」アイコンをクリックします。
  2. JoltSessionBeanをクリックしてJoltServiceBeanにドラッグします(図6-14を参照)。
  3. 図6-14 JoltSessionBeanをJoltServiceBeanに関連付ける


    JoltSessionBeanをJoltServiceBeanに関連付ける

    「インタラクション・ウィザード」ウィンドウが表示されます(「「propertyChange」イベントを選択する」を参照)。

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

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

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

  8. メソッドとして「Handle a Jolt property change event」を選択します(図6-16を参照)。
  9. 図6-16 「Handle a Jolt property change event」を選択する
  10. 「次へ」をクリックします。
  11. 「インタラクション・ウィザード」ウィンドウが表示されます(「「joltSesssionBean1」を選択する」を参照)。

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

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

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


    joltSesssionBean1の選択

  15. 「完了」をクリックします。

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

ステップ3: JoltInputEventを使用して入力項目accountIDのJoltTextFieldをJoltServiceBeanに関連付ける

  1. Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
  2. 「accountID JoltTextfield Bean」を選択し、そのままJoltServiceBeanへドラッグします。
  3. 次の図のように、「インタラクション・ウィザード」ウィンドウが表示されます。

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

  4. イベントとして「dataChanged」を選択します(図6-18を参照)。
  5. 図6-18 「dataChanged」イベントを選択する


    dataChangedイベントの選択

  6. 「次へ」をクリックします。
  7. 「インタラクション・ウィザード」ウィンドウが表示されます(「オブジェクトとして「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」を選択します(図6-19を参照)。
  10. 図6-19 オブジェクトとして「inquiry」、アクションとして「Handle a Jolt input event」を選択する


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

  11. 「次へ」をクリックします。
  12. 「オブジェクトとして「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」を選択します(図6-20を参照)。
  15. 図6-20 オブジェクトとして「accountId」、アクションとして「Get the current Jolt Input Event」を選択する


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

  16. 「終了」をクリックします。

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

ステップ4: JoltActionを使用してボタンをJoltServiceBeanに関連付ける

  1. Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
  2. 「Inquiry」ボタンをクリックし、JoltServiceBeanへドラッグします。
  3. 次の図のように、「インタラクション・ウィザード」ウィンドウが表示されます。

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

  4. イベントとして「actionPerformed」を選択します(図6-21を参照)。
  5. 図6-21 イベントとして「actionPerformed」を選択する


    イベントとして「actionPerformed」を選択する

  6. 「Next」をクリックします。
  7. 「オブジェクトとして「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」を選択します(図6-22)。
  10. 図6-22 オブジェクトとして「inquiry」を選択し、アクションとして「Invoke the TUXEDO Service represented by this Bean」を選択する


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

  11. 「終了」をクリックします。

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

ステップ5: JoltOutputEventを使用してJoltServiceBeanをBalanceのJoltTextFieldに関連付ける

  1. Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
  2. 「JoltServiceBean」を選択して、「AmountJoltTextField Bean」へドラッグします。
  3. 次の図のように「インタラクション・ウィザード」ウィンドウが表示されます。

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

  4. イベントとして「serviceReturned」を選択します(図6-23を参照)。
  5. 図6-23 「ServiceReturned」イベントを選択する


    ServiceReturnedイベントの選択

  6. 「次へ」をクリックします。
  7. 「オブジェクトとして「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. 「次へ」をクリックします。
  12. 「インタラクション・ウィザード」ウィンドウが表示されます(「オブジェクトとして「inquiry」、アクションとして「Get the JoltOutputEvent object」を選択する」を参照)。

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

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


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

  16. 「完了」をクリックします。

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

ステップ6: JoltSessionBeanとログオフを関連付ける

  1. Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
  2. アプレット・ウィンドウの一点をクリックし(Beanはクリックしない)、そのままJoltSessionBeanへドラッグします。
  3. 次の図のように「インタラクション・ウィザード」ウィンドウが表示されます。

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

  4. イベントとして「componentHidden」を選択します(図6-26を参照)。
  5. 図6-26 「componentHidden」イベントを選択する


    componentHiddenイベントの選択

  6. 「次へ」をクリックします。
  7. 「インタラクション・ウィザード」ウィンドウが表示されます(「オブジェクトとして「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」を選択します(図6-27を参照)。
  10. 図6-27 オブジェクトとして「joltSessionBean1」、アクションとして「Logoff from the TUXEDO system」を選択する


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

  11. 「完了」をクリックします。

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

ステップ7: アプレットをコンパイルする

JoltBeansどうしを関連付けた後、アプレットをコンパイルします。また、例外処理用に空のキャッチ・ブロックに値を入力することもお薦めします。メッセージ・ウィンドウに、コンパイル・エラーや例外がないか確認します。

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

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

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

 


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

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

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

JoltBeansの中には、プロパティ・リスト・フィールドへの入力が必要なものもあります。表6-6に、Beansをリストします。

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

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

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

  1. 「ServiceName」フィールドの「...」をクリックして、サービス名を選択します(図6-28を参照)。
  2. 図6-28 JoltServiceBeanのプロパティ・エディタ


    JoltServiceBeanのプロパティ・エディタ

    ServiceNameのカスタム・プロパティ・エディタが表示されます(図6-29を参照)。

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


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

注意: Repositoryデータベースに接続できない、または接続したくない場合は、テキスト・ボックスにサービス名を入力し、ステップ7に進んでください。
  1. ログオンしていない場合は、Joltサーバーが動作していることを確認し、「ログオン」を選択します。
  2. 図6-30に示すような「JoltBeans Repositoryログオン」が表示されます。

    図6-30 JoltBeans Repositoryログオン


    JoltBeans Repository Logon

  3. Serverフィールドに、Oracle TuxedoまたはJoltリレー・マシンの名前を入力し、Port numberフィールドにJSLまたはJoltリレーを入力します。
  4. パスワード、およびユーザー名情報(必要な場合)を入力して「ログオン」をクリックします。
  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のブール型のプロパティです。
  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を更新します。


  先頭に戻る       前  次