この章では、B2Bビジネス・メッセージをSQLスクリプトによってアーカイブおよびリストアする方法について説明します。
項目は次のとおりです。
設計時データのインポートとエクスポートについては、第10章「データのインポートとエクスポート」を参照してください。
Oracle B2Bは、Oracle Database 11g の機能である、バルク・データとメタデータの高速な移動を実現するOracle Data Pumpを使用して、B2Bランタイム・インスタンス・データをOracleデータベースにアーカイブします。脚注1
ビジネス・メッセージをアーカイブ(オプションでパージも可能)するための基準を、開始日、終了日およびメッセージの状態によって指定できます。対象のビジネス・メッセージは、B2Bランタイム・テーブルの列JOB_ID
(アーカイブの同期とアクティビティのパージに使用)にマークが付けられます。B2Bは、JOB_ID
を使用してデータ・ポンプPL/SQL APIを起動します。したがって、ビジネス・メッセージをアーカイブすると、関連するすべてのテーブルもアーカイブされます。 アーカイブしたビジネス・メッセージは、データ・ポンプを使用してランタイム・データをOracle B2B(Oracle Metadata Serviceリポジトリ)にインポートし、B2Bレポートを介してアクセスすることによってリストアすることもできます。
ビジネス・メッセージをアーカイブするには、アーカイブ・ディレクトリと権限を設定した後、アーカイブ・プロシージャを実行します。 このプロシージャには、アーカイブされた行をパージするオプションがあります。
アーカイブ・ディレクトリと権限を設定する手順は、次のとおりです。
データベースが稼働するコンピュータ上で、アーカイブ・ファイル用のディレクトリを作成します。 次に例を示します。
mkdir /tmp/archive
データベース・プロセスでデータが書き込めるように、そのディレクトリへの権限を付与します。 次に例を示します。
chmod 777 /tmp/archive
sysdba
でデータベースにログインします。
sqlplus /as sysdba
B2B_EXPORT_DIR
を設定します。
SQL> create or replace B2B_EXPORT_DIR as '/tmp/archive'
SOAスキーマ・ユーザー(例: b2b_soainfra
)にエクスポート権限を付与します。
SQL> grant read, write on directory B2B_EXPORT_DIR to b2b_soainfra; SQL> grant exp_full_database to b2b_soainfra;
パージするためのオプションを指定してアーカイブする手順は、次のとおりです。
次のPL/SQL APIを使用するには、その前に、アーカイブ・ディレクトリと権限を設定します。
SOAスキーマ・ユーザーでログインします。
$ sqlplus b2b_soainfra/password
アーカイブ・プロシージャを次のように実行します。
SQL> exec b2b_archive_procedure('21-JAN-2008','28-JAN-2008','MSG_COMPLETE','JAN.dmp','N');
プロシージャのシグネチャは次のとおりです。
b2b_archive_procedure(fromDate, toDate, messageState, fileName, should_purge);
表20-1に、b2b_archive_procedure
APIのパラメータを示します。
表20-1 b2b_archive_procedureのパラメータ
パラメータ | 例 | 説明 |
---|---|---|
|
21-JAN-2008 |
アーカイブの開始日( |
|
28-JAN-2008 |
アーカイブの終了日( |
|
MSG_COMPLETE |
ビジネス・メッセージの状態。通常、 |
|
JAN.dmp |
データベースによって作成されるアーカイブ・ファイルの名前。 この名前のファイルがアーカイブ・ディレクトリに存在しないことを確認してください。 |
|
N |
|
ビジネス・メッセージをリストアするには、インポート・ディレクトリと権限を設定した後、リストア・プロシージャを実行します。
インポート・ディレクトリと権限を設定する手順は、次のとおりです。
データベースが稼働するPC上で、インポート・ファイル用のディレクトリを作成します。
mkdir /tmp/import
データベース・プロセスでデータが読み取れるように、そのディレクトリへの権限を付与します。
chmod 777 /tmp/import
sysdba
でデータベースにログインします。
sqlplus /as sysdba
B2B_IMPORT_DIR
を設定します。
SQL> create or replace B2B_IMPORT_DIR as '/tmp/import'
SOAスキーマ・ユーザー(例: b2b_soainfra
)にエクスポート権限を付与します。
SQL> grant read, write on directory B2B_IMPORT_DIR to b2b_soainfra; SQL> grant imp_full_database to b2b_soainfra;
ビジネス・メッセージをリストアする手順は、次のとおりです。
次のPL/SQL APIを使用するには、その前に、インポート・ディレクトリと権限を設定します。
SOAインフラ・スキーマ・ユーザーでログインします。
$ sqlplus soa_infra_user/password
インポート・プロシージャを次のように実行します。
SQL> exec b2b_restore_procedure('JAN.dmp');
プロシージャのシグネチャは次のとおりです。
b2b_restore_procedure(fileName)
「レポート」タブを使用して、インポートしたデータを検索して表示します。
脚注のキャプション
脚注1: Oracle以外のデータベースの場合は、ランタイム・データのエクスポートとインポートに外部データベースのアーカイブ・ツールを使用できます。