システム障害が発生した場合のビジネスプロセスデータの完全性を確保するために、ビジネスプロセスデータがデータベースで持続されるように BPEL サービスエンジンを設定することができます。BPEL の持続性が有効になっている場合、BPEL サービスエンジンはビジネスプロセスデータを復旧し (持続性が有効でない場合はデータは失われる)、システム障害が発生したポイントから処理を続行します。
BPEL サービスエンジンは Sun Java System Application Server (GlassFish) に作成された JDBC リソースを使用して、持続性に必要なデータベース接続を作成します。NetBeans は JavaDB データベースにバンドルされています。これは、オープンソースの Apache Derby データベースの、Sun がサポートしている配布です。BPEL サービスエンジンは、デフォルトで JavaDB データベースに接続するように設定されています。
BPEL サービスエンジンでは、サポートされている Oracle データベースへの接続を使用してデータを持続することもできます。Oracle データベースを作成して接続するには、「Oracle 用 JDBC 接続プールの作成」および「Oracle 用 JDBC リソースの作成」を参照してください。
この節の内容は次のとおりです。
BPEL の持続性の詳細については、「Using BPEL Persistence」を参照してください。
ここでは、JavaDB 用 JDBC 接続プールを作成する手順について説明します。
Web ブラウザで、Sun Java System Application Server の管理コンソールにログインします。次に例を示します。
http://localhost:4848, username:admin, password: adminadmin
ナビゲーションツリーで、「リソース」->「JDBC」ノードを展開します。
「接続プール」を選択し、右のパネルで「新規」ボタンをクリックします。
「一般設定」で、名前を指定します (bpelseDB など)。
「リソースタイプ」を javax.sql.XADatasource に設定します。
データベースベンダーを Derby に設定し、「次へ」をクリックします。
「接続検証」の下で、「有効」チェックボックスを選択して「コンポーネント以外の呼び出し側を許可」を有効にします。
「追加のプロパティー」で、サーバー名、ユーザー、パスワード、およびデータベース名を指定します。
次の値を使用するか、独自のユーザー、パスワード、およびデータベース名 (create=true フラグを保持) を選択することができます。
サーバー名: machine-name
データベース名: DatabaseName: bpelseDB;create=true
ユーザー: bpelse_user
パスワード: bpelse_user
「完了」をクリックし、接続プール名をクリックしてから「Ping」ボタンをクリックします。
これによってデータベース接続が検証されます。
「完了」をクリックして、新しい JDBC リソースの作成準備を行います。
ここでは、Oracle 用 JDBC 接続プールを作成する手順について説明します。Oracle 用 JDBC 接続を作成する前に、必要なアクセス権を備えた Oracle ユーザーと、BPEL サービスエンジンの持続性に使用するテーブルスペースを作成する必要があります。
Oracle に sysdba としてログインします (SQLPlus から、connect sys/manager@machine-name as sysdba を使用して接続する)。
次のスクリプトをデフォルト値で実行します。
注釈付きのスクリプトをダウンロードするには、ここをクリックしてください。
CREATE TABLESPACE bpelsedb DATAFILE 'bpelsedb.dat' SIZE 512M REUSE AUTOEXTEND ON NEXT 2048M MAXSIZE UNLIMITED; CREATE USER bpelse_user IDENTIFIED BY bpelse_user DEFAULT TABLESPACE bpelsedb QUOTA UNLIMITED ON bpelsedb TEMPORARY TABLESPACE temp QUOTA 0M ON system; GRANT CREATE session to bpelse_user; GRANT CREATE table to bpelse_user; GRANT CREATE procedure to bpelse_user; GRANT select on sys.dba_pending_transactions to bpelse_user; GRANT select on sys.pending_trans$ to bpelse_user; GRANT select on sys.dba_2pc_pending to bpelse_user; GRANT execute on sys.dbms_system to bpelse_user; GRANT select on SYS.dba_2pc_neighbors to bpelse_user; GRANT force any transaction to bpelse_user; |
NetBeans IDE またはいくつかの SQL クライアントを使用して、ユーザー名 sys as sysdba を入力することによって接続することもできます。パスワードはシステムユーザーと同じものにしてください。ユーザー、テーブルスペース、データファイル名、およびサイズ/割り当て制限を必要に応じて変更することもできます。
Web ブラウザで、Sun Java System Application Server の管理コンソールにログインします。次に例を示します。
http://localhost:4848, username:admin, password: adminadmin
Oracle JDBC ドライバクラスをアプリケーションサーバーのクラスパスに追加します。
アプリケーションサーバーのクラスパスにクラスを追加する方法の詳細については、Sun Java System Application Server のマニュアルを参照してください。1 つの方法は、「アプリケーションサーバー」>「JVM 設定」>「パス設定」に移動し、「クラスパスのサフィックス」ボックスに jar ファイルのパス (jar ファイル名も含む) を指定することです。続行する前に、アプリケーションサーバーを再起動する必要があります。
ナビゲーションツリーで、「リソース」->「JDBC」ノードを展開し、「接続プール」を選択します。
右のパネルで「新規」ボタンをクリックします。
「一般設定」で、名前を指定します (bpelseDB など)。
「リソースタイプ」を javax.sql.XADatasource に設定します。
データベースベンダーを Oracle に設定し、「次へ」をクリックします。
「接続検証」の下で、「有効」チェックボックスを選択して「コンポーネント以外の呼び出し側を許可」を有効にします。
「追加のプロパティー」で、URL、ユーザー、およびパスワードを次のように指定します。
次の値を使用するか、独自のユーザー、パスワード、および URL を指定できます。
URL: jdbc:oracle:thin:@machine-name:port:sid
ユーザー: bpelse_user
パスワード: bpelse_use
「完了」をクリックし、接続プール名をクリックしてから「Ping」ボタンをクリックします。
これによってデータベース接続が検証されます。
「完了」をクリックして、新しい JDBC リソースを作成する準備をします。
ここでは、アプリケーションサーバーデータベースの JDBC リソースを作成する手順について説明します。
Sun Java System Application Server (GlassFish) のナビゲーションツリーで、「リソース」->「JDBC」ノードを展開し、「JDBC リソース」を選択します。
右のパネルで「新規」ボタンをクリックします。
JNDI 名 (jdbc/bpelseDB など) を指定し、前の手順で作成した JDBC 接続プール (bplseDB) を指定します。
この JNDI 名は、あとで BPEL サービスエンジンのプロパティーで持続性を有効にするときに使用します。
「設定」ノードを展開し、「トランザクションサービス」を選択します。
「再起動時」パラメータで、「有効」チェックボックスを選択して「自動復旧」を有効にします。
ここでは、BPEL サービスエンジンの持続性を設定する手順について説明します。
NetBeans IDE の「サービス」ウィンドウで、「Sun Java System Application Server (GlassFish)」->「JBI」->「サービスエンジン」ノードを展開します。
「sun-bpel-engine」を右クリックし、「プロパティー」を選択します。
sun-bpel-engine のプロパティーウィンドウが表示されます。
PersistenceEnabled プロパティーの値を true に設定します。
JNDIName プロパティーの値を設定して、データベースを設定したときに作成した JDBC リソースの JNDI 名を指定します。
「閉じる」をクリックして設定を保存します。
プロパティーの説明については、「BPEL サービスエンジンの実行時プロパティーの設定」を参照してください。
新しい設定を有効にするために、BPEL サービスエンジンを停止し、シャットダウンしてから起動します。
次のメモでは、ドロップと切り詰めのスクリプトのほか、持続性の設定に関する追加情報について説明します。ここに記載された説明の一部は変更される可能性があるため、更新情報を再確認するか、質問がある場合は BPEL サービスエンジンチームに問い合わせてください。
BPEL サービスエンジンは起動時にデータベースを照会して、持続性に必要なテーブルが存在するかどうかを調べます。必要なテーブルが存在しない場合、BPEL サービスエンジンはそれらを作成します。
derby および oracle 用の、テーブルのドロップおよび切り詰めのスクリプト。スクリプトをダウンロードするには、ここをクリックしてください。
Oracle ユーザーをドロップするには、次のスクリプトを使用します。このスクリプトはここからダウンロードできます。
DROP TABLESPACE BPELSE_USER_DB INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;