サンプル 2a:既定の認証

サンプル 2a 実行の準備

このサンプルを開始するには、JRun のルート ディレクトリ/samples/sample2a/ejbeans ディレクトリに移動し、BalanceBean.java ファイルを確認します。さまざまなメソッドに SQL ステートメントがあります。EJB エンジンは、Bean のライフサイクルの中で一定の回数だけこれらのメソッドを呼び出します。これらのメソッドの中の SQL ステートメントは、Bean のパーシスタンスを実行します。BMP の詳細については、『JRun によるアプリケーションの開発』を参照してください。

次の行を参照してください。これらの各メソッドが示されています。

Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/source1");
Connection connection = ds.getConnection();

deploy.properties ファイルを開いて、source1 がどのように定義されているかを確認します。次のエントリに注意してください。

ejipt.jdbcSources=source1
source1.ejipt.sourceDriverClassName=com.pointbase.jdbc.
jdbcUniversalDriver
source1.ejipt.sourceURL=jdbc:pointbase://embedded/sample

ejipt.jdbcSources プロパティには、EJB エンジンで使用できるデータ ソースが定義されています。このプロパティには、カンマで区切られたリストに複数のデータ ソースを含むことができます (たとえば、ejipt.jdbcSources=source1, source2)。
jdbcSources の中で指定されている名前を接頭辞として使用することにより、データソース固有のプロパティを指定できます。

source1.ejipt.sourceURL プロパティは、URL を通してデータベースを識別するため、標準 Java JDBC 規則を使用しています。この例では、PointBase を使用して sample という名前のデータベースに接続します。

これ以外のデータベース ドライバを使用する場合は、それを反映するようにプロパティを変更する必要があります。特に、Oracle ドライバを使用している場合は、必ず source1.ejipt.sourceURL@host を設定してください。

サンプルの deploy.properties ファイルにも、コメント化したJDBC-ODBC ブリッジのプロパティが含まれています。

このサンプルでは、サンプル データベースにあらかじめ定義されているアカウント表を使用します。これには次の列があります。
列名
列のデータ タイプ
id (キー)
INTEGER
value
INTEGER

サンプル 2a の使用

デモを開始するには、コマンド プロンプトからシェルを開きます。

JRun 3.1 にインストールされている PointBase データベース以外のデータベースを使用している場合は、次のコマンドを入力して JDBC ドライバへのパスを定義します。

bash$ export JDBC_DRIVERS=/path/ドライバ名

JRUN_HOME は export コマンドを使用して設定し、/jrun/sample2a ディレクトリに移動します。次のコマンドを入力します。

bash$ make jars 
bash$ make deploy
bash$ make standalone

次に、別のコマンド プロンプト ウィンドウでクライアントを起動し、JRUN_HOME を設定して次のコマンドを入力します。

bash$ make run

サーバとクライアントの両方が起動していれば、サンプルを実行できます。クライアントの [Server] テキスト フィールドにホスト名を入力します。ホスト名は、deploy.properties ファイルの ejipt.classServer.host プロパティに設定した値と同じです。次に、ユーザに「server1」、パスワードに「pass」と入力します。[Login] ボタンをクリックします。

[Amount] フィールドと [Repeat] フィールドがある新しい画面が表示されます。[Amount] フィールドに値を入力し、[Repeat] フィールドに反復回数を入力します。[Save] ボタンをクリックします。サーバ ウィンドウの残高が変更されます。貯蓄者としてログインしており、支出できないので、[Spend] ボタンをクリックします。

次に [Logout] ボタンをクリックし、「spender1」および「pass」と入力して再度ログインします。今回は支出者になったので、貯蓄できません。「chief」および「pass」と入力してログインすると、貯蓄も支出も許可されます。/jrun/samples/sample2a/deploy.properties ファイルでは、ユーザおよびロールを定義する次のエントリを参照できます。

ejipt.users=spender1:pass;spender2:pass;saver1:pass;saver2:pass; 
chief:pass
ejipt.roles=spender:spender1,spender2,chief;saver:saver1,saver2,chief

ユーザ名、パスワード、およびロールを変更できます。変更したら、次のコマンドを実行して変更内容が反映されていることを確認してください。

bash$ make deploy
bash$ make standalone
bash$ make run

別のコマンド プロンプト ウィンドウを開き、次の 4 つのコマンドを入力して、クライアントを再起動します。JRun のルート ディレクトリは、実際の JRun インストール ディレクトリに置き換えてください。

C:\> bash
bash$ export JRUN_HOME=JRun のルート ディレクトリ
bash$ cd JRun のルート ディレクトリ/samples/sample2a
bash$ make run

サーバを停止してから再起動すると、残高がそのまま保持されていることがわかります。JRun では、パーシスタンス オブジェクトにリレーショナル データベースを使用します。

複数のクライアント

追加のクライアントを作成するには、別のコマンド プロンプト ウィンドウを開き、次の 4 つのコマンドを入力します。JRun のルート ディレクトリは、実際の JRun インストール ディレクトリに置き換えてください。

C:\> bash 
bash$ export JRUN_HOME=JRun のルート ディレクトリ
bash$ cd JRun のルート ディレクトリ/samples/sample2a
bash$ make run

動的な Bean のロード

動的に Bean がロードされるように、サンプル 2a の動作を変更できます。変更するには、/jrun/samples/sample2a/ejbeans/BalanceBean.java ファイルを開き、ログ メッセージにアスタリスクを付けるなどの変更を行います。

public void save(final int value)
        throws RemoteException {
    _value += value;
    // アスタリスクを付けます。
    ResourceManager.getLogger().logMessage("***saving, balance is:" + 
_value);
}

public void spend(final int value)
        throws RemoteException {
    _value -= value;
    // アスタリスクを付けます。
    ResourceManager.getLogger().logMessage("***spending, balance is:" + 
_value);
}

BalanceBean.java をコンパイルしたら、新しいコマンド ウィンドウを開いて、
JRUN_HOME の設定、サンプル 2a ディレクトリへの変更、および次のコマンドの入力を行って、コンパイルした BalanceBean.java を classes ディレクトリに配置します。

bash$ make classes

サーバ ウィンドウに戻り、次のコマンドを入力します。

> load

最後に、クライアントで save 要求と spend 要求を再度発行します。EJB エンジンが変更された Bean を使用していることを示す、変更済みのメッセージが表示されます。