DB連携機能を使用する場合、以下の作業を実施します。
DB連携機能をセットアップするための事前作業について説明します。
本セットアップの前には、以下が実施済みである必要があります。
“3.2.3.3.2 DB連携機能を使用する場合”の関連ソフトウェアが開発実行環境サーバにインストールされていること
連携設定変更機能用と、変更差分抽出機能および変更差分連携機能用の計2つのデータベースを外部サーバ上に作成し、起動していること(注)
“4.5.5 DB連携機能を使用する場合”の環境変数が設定されていること
注) Fujitsu Enterprise Postgresを利用してください。また、作成したデータベース名、ユーザー名、ユーザーパスワードは、“5.1.4.2 セットアップツールの実行”のインベントリファイルの編集時に指定します。
DB連携機能をセットアップする場合、マスタサーバ(プライマリ)において以下を実施します。
インベントリファイルの編集
セットアップツール対象のサーバ情報および設定値を記載するために、インベントリファイルに「DB連携機能のセットアップ」の項目を追加します。
詳細については、“D.2 インベントリファイル(hosts)”の“DB連携機能”を参照してください。
セットアップツールの実行
マスタサーバ(プライマリ)において、構築する機能を指定してbsb_syssetupコマンドを実行します。
# /var/opt/FJSVbsb/bsb_setuptool/bin/bsb_syssetup -m db_cooperation <Enter>
インベントリファイルの再編集
セットアップツール実行後は、インベントリファイルに記入したユーザー名/パスワード情報を削除します。詳細については、“D.2 インベントリファイル(hosts)”の“DB連携機能”を参照してください。
DB連携機能を使用して運用業務を行う場合の、初回設定作業について説明します。
データ提供者の初回作業、データ利用者の初回作業は、下図のようにデータ提供者/データ利用者の各DB・テーブル毎に実施します。
データ提供者の初回作業、データ利用者の初回作業
複数のデータベースを連携する場合は、初回作業実施前に以下の手順に従ってDBアダプタモジュールを複製してください。
データ提供者側
DBアダプタをインストールしたサーバで、提供側モジュールを/opt/FJSVbsb/db_adapter配下に任意のディレクトリ名でコピーしてください。
# cp -pr /opt/FJSVbsb/db_adapter/plcdlprovide /opt/FJSVbsb/db_adapter/<任意のディレクトリ名>
データ利用者側
DBアダプタをインストールしたサーバで、利用側モジュールを/opt/FJSVbsb/db_adapter配下に任意のディレクトリ名でコピーしてください。
# cp -pr /opt/FJSVbsb/db_adapter/plcdlreceive /opt/FJSVbsb/db_adapter/<任意のディレクトリ名>
データ提供者がDB連携機能を利用する上で、初回に実施する作業を説明します。
以下の手順1~3を実施してください。これらの手順はデータ提供設定をする前に実施する作業です。
データ提供者用の業務DBを用意
業務DBの作成・構築は、データ提供者が実施してください。DBについては以下の要件を満たす必要があります。
DB連携機能がそのDBへの接続で使用する接続ユーザーは、以下の機能の実行権限を有すること
[各DB共通事項]
SELECT/DELETE
CREATE TABLE
CREATE TRIGGER
DROP TABLE
DROP TRIGGER
[業務DBにMySQLを使用する場合]
SHOW TABLES
SHOW FULL COLUMN
SHOW TRIGGERS
[業務DBにPostgreSQLを使用する場合]
CREATE FUNCTION
DROP FUNCTION
information_schema.tablesへのアクセス
information_schema.columnsへのアクセス
pg_triggerへのアクセス
information_schema.routinesへのアクセス
データベースの文字コードはUTF-8であること
業務DB内で、データ提供用のテーブルを作成してください。作成するテーブル名、カラム名については、以下の要件を満たす必要があります。
以下のテーブル名でないこと
・命名規則:"diff_{連携対象のテーブル名}"
・命名規則:"diff_trigger_{連携対象のテーブル名}"
・命名規則:"diff_func_{連携対象のテーブル名}"
差分抽出の対象テーブルに使用するカラムのデータ型は文字列変換が可能なもののみ使用すること
差分抽出の対象テーブルのカラムに"record_id"カラム名を使用しないこと
主キーを必ず設定すること
データ利用者用の業務DBと共通の主キーを設定すること(主キーの上限数はOracle,PostgreSQL:20、MySQL:16)
注意
以下の命名規則のトリガー、ファンクションは作成しないでください。機能が正常に動作しなくなる可能性があります。
トリガー:"diff_trigger_{連携対象のテーブル名}"
ファンクション:"diff_func_{連携対象のテーブル名}"
データ提供者用のDBユーザーを作成
データ提供者が任意の方法で、データ提供者用のDBユーザーを手順1.のDB上に作成・構築してください。
起動パラメータの設定ファイルを作成
以下に格納されている起動パラメータの設定ファイルを編集してください。複数のデータベースを連携する場合は、DBアダプタモジュールの複製においてコピーしたディレクトリ配下のconfig.jsonを編集します。
設定値の説明は“EDI連携/DB連携編 ユーザーズガイド”の“config.json”を参照してください。
/etc/opt/FJSVbsb/db_adapter/plcdlprovide/config.json
データ利用者がDB連携機能を利用する上で、初回に実施する作業を説明します。
以下の手順1~3を実施してください。これらの手順はデータ利用設定をする前に実施する作業です。
データ利用者用の業務DBを用意
業務DBの作成・構築は、データ利用者が実施してください。
DBについては以下の要件を満たすDBを作成・構築してください。
データベースの文字コードはUTF-8であること
業務DB内で、データ利用者用のテーブルを作成してください。作成するテーブル名、カラム名については以下の要件を満たす必要があります。
先頭から3つのカラムは以下になるように作成すること。カラムの順番は入れ替え不可
・伝票ID(文字列データ型、20桁の数値)
・検索開始日時(文字列データ型、YYYYMMDDHHmmss形式)
・伝票ID自動削除日時(文字列データ型、YYYYMMDDHHmmss形式)
上記カラム以降に、変換ルールに従って挿入するデータのカラムを設定すること
データ提供用の業務DBと共通の主キーを設定する(主キーの上限数はOracle,PostgreSQL:20、MySQL:16)
データ利用者用のDBユーザーを作成
データ利用者が任意の方法で、データ利用者用のDBユーザーを手順1.のDB上に作成・構築してください。
起動パラメータの設定ファイルを作成
以下に格納されている起動パラメータの設定ファイルを編集してください。複数のデータベースを連携する場合は、DBアダプタモジュールの複製においてコピーしたディレクトリ配下のconfig.jsonを編集します。
設定値の説明は“EDI連携/DB連携編 ユーザーズガイド”の“config.json”を参照してください。
/etc/opt/FJSVbsb/db_adapter/plcdlreceive/config.json
DB連携機能を使用して運用業務を行う場合の、不定期作業について説明します。
ここでは、システム管理者が不定期で実施する作業について説明します。
以下の2つの作業が該当します。
機能利用開始手続きをする
機能利用停止手続きをする
注意
同一のシステム利用者が複数のデータベースを連携する場合は、下記手順は複製したDBアダプタモジュールごとに実施します。
機能利用開始手続きをする
システム利用者(データ利用者、データ提供者)が本機能の利用を開始する場合、以下の手順で機能利用開始の作業を実施します。
連携設定変更機能のデータベ-スにシステム利用者の情報を登録してください。
データベースにログインしてください。ログインパスワードは連携設定変更機能のユーザーパスワードを入力してください。
$ psql -U {連携設定変更機能のユーザー名} -d {連携設定変更機能のデータベース名} -h {データベースサーバのIPアドレス} -p {データベースサーバのポート番号} -W
各パラメータは、“D.2 インベントリファイル(hosts)”の“DB連携機能”の以下に対応します。
連携設定変更機能のユーザー名:cls_db_user
連携設定変更機能のデータベース名:cls_db_name
データベースサーバのIPアドレス:dbcoop_db_ip
データベースサーバのポート番号:dbcoop_db_port
企業識別子の一覧を表示してください。
# SELECT * FROM cls.COMPANY;
手順b.で取得した一覧と重複しないように企業識別子を決定し、登録してください。
企業識別子は半角英小文字数字(a-z,0-9)100字以内で決定してください。
下記、SQL文の{companyId}に決定した企業識別子を指定して実行してください。
# INSERT INTO cls.COMPANY( COMPANY_ID ) VALUES ( '{companyId}' );
ポイント
“5.1.2.1 認証サービスの設定”を実施している場合、決定済みの企業識別子を登録します。
手順c.で作成した企業識別子が登録されていることを確認し、ログアウトしてください。
# SELECT * FROM cls.COMPANY WHERE COMPANY_ID = '{企業識別子}'; # \q
変更差分蓄積機能<データ基盤側>および変更差分抽出機能<データ基盤側>に格納抽出APIの認証ファイルを登録してください。
格納抽出APIの認証に使用するユーザーID/パスワードを取得してください。
格納抽出APIで認証サービスを使用しない場合、本手順は不要です。
取得したID/パスワードを記載した認証ファイルを作成してください。
格納抽出APIで認証サービスを使用しない場合、パラメータの値は指定不要です。
認証ファイルの形式: JSON形式
認証ファイルの情報:
パラメータ | 説明 |
---|---|
storeextract_auth_user_id | 格納抽出APIの認証用ユーザーIDです。
|
storeextract_auth_password | 格納抽出APIの認証用ユーザーパスワードです。
|
storeextract_client_id | 格納抽出APIの認証用クライアントIDです。
文字列長:4~64文字で指定してください。 |
storeextract_client_secret | 格納抽出APIの認証用クライアントシークレットです。
文字列長:4~64文字で指定してください。 |
企業識別子が"fujitsu"、ユーザーIDが"User01@bdistenant"、パスワードが"Password01"の場合、認証ファイルは以下のようになります。
ファイル名:fujitsu.json
{ "storeextract_auth_user_id": "User01@bdistenant", "storeextract_auth_password": "Password01", "storeextract_client_id": "73e958a0-25d5-4972-9017-75f7cd552d8f", "storeextract_client_secret": "kVM8Q~cmsCev7JtV3Ak5PudlBe6Y2bwOnIruLdys" }
企業識別子が"fujitsu"の場合、認証ファイルは以下のようになります。
ファイル名:fujitsu.json
{ "storeextract_auth_user_id": "", "storeextract_auth_password": "", "storeextract_client_id": "", "storeextract_client_secret": "" }
変更差分蓄積機能<データ基盤側>に認証ファイルを登録してください。
格納抽出APIの認証ファイル格納ディレクトリに、手順2.のb.で作成した認証ファイルを格納してください。
格納抽出APIの認証ファイル格納ディレクトリの詳細は“EDI連携/DB連携編ユーザーズガイド”の“cda.env”を参照してください。
変更差分抽出機能<データ基盤側>に認証ファイルを登録してください。
格納抽出APIの認証ファイル格納ディレクトリに、手順2.のb.で作成した認証ファイルを格納してください。
格納抽出APIの認証ファイル格納ディレクトリの詳細は“EDI連携/DB連携編ユーザーズガイド”の“cde.env”を参照してください。
システム利用者はシステム管理者から以下の表に記載した情報を受領してください。
情報 | 説明 |
---|---|
連携設定変更機能APIの接続先IPアドレス/ポート番号 | 「連携設定変更機能APIの接続先IPアドレス」は開発実行環境サーバのIPアドレス、「ポート番号」は連携設定変更機能のポート番号です。
|
企業識別子 | 手順1で決定した識別子です。 |
DB連携制御機能のURL | DB連携制御機能との通信に使用するURLです。
|
DB連携制御機能との通信に使用する利用者ID | インベントリファイルの“mq_user_name”に指定した値です。 |
DB連携制御機能との通信に使用する利用者パスワード | インベントリファイルの“mq_password”に指定した値です。 |
ポイント
連携設定変更機能で認証サービスを使用する場合、システム利用者はシステム管理者から以下のパラメータに指定する値を受領してください。
auth_mode:0(認証サービスで認証)
platformlinkage_auth_address:連携設定変更機能の認証サービスのURL
platformlinkage_tenant_id:連携設定変更機能の認証用テナントID
platformlinkage_auth_user_id:連携設定変更機能の認証用利用者ID
platformlinkage_auth_password:連携設定変更機能の認証用利用者のパスワード
platformlinkage_client_id:連携設定変更機能の認証用クライアントID
platformlinkage_client_secret:連携設定変更機能の認証用クライアントシークレット
連携設定変更機能で認証サービスを使用しない場合、システム利用者はシステム管理者から以下のパラメータに指定する値を情報提供してください。
auth_mode:1(APIキーで認証)
auth_apikey:機能間のAPI呼び出しに使用するAPIキー
パラメータの詳細については、“EDI連携/DB連携編ユーザーズガイド”の“config.json”を参照してください。
機能利用停止手続きをする
システム利用者(データ利用者、データ提供者)が本機能の利用を停止する場合、以下の手順で機能利用停止の作業を実施します。
システム利用者が使用しているDB連携制御機能のQueueを削除してください。
ただし、下記で説明するDB連携制御機能の操作に関して、記載事項以外の操作を実施した場合の動作は保証されません。
データ提供の機能利用停止依頼である場合には、下記の手順でQueueを削除してください。
以下のコマンドを実行し、Queueの一覧を表示します。
# rabbitmqctl list_queues | grep {企業識別子}
例)
# rabbitmqctl list_queues | grep provider01 platformlinkageProvide_provider01 0 platformlinkageProvideErrorInfra_provider01 0
表示されたQueueをすべて削除します。
# rabbitmqadmin delete queue name={企業識別子を含むQueue} -u {インベントリファイルでmq_user_nameに指定した値} -p {インベントリファイルでmq_passwordに指定した値}
例)
# rabbitmqadmin delete queue name=platformlinkageProvide_provider01 -u mquser -p mquser012345 queue deleted
データ利用の機能利用停止依頼である場合には、下記の手順でQueueを削除してください。
以下のコマンドを実行し、Queueの一覧を表示します。
# rabbitmqctl list_queues | grep {企業識別子}
例)
# rabbitmqctl list_queues | grep receiver01 platformlinkageReceive_receiver01_1 0 platformlinkageProvide_receiver01 0 platformlinkageReceiveErrorInfra_receiver01 0
表示されたQueueをすべて削除します。
# rabbitmqadmin delete queue name={企業識別子を含むQueue} -u {インベントリファイルでmq_user_nameに指定した値} -p {インベントリファイルでmq_passwordに指定した値}
例)
# rabbitmqadmin delete queue name=platformlinkageReceive_receiver01_1 -u mquser -p mquser012345 queue deleted
以下の手順を実施し、連携設定変更機能および変更差分連携機能<データ基盤側>用のデータベースからシステム利用者の企業識別子を削除してください。
データベースにログインしてください。ログインパスワードは連携設定変更機能のユーザーパスワードを入力してください。
$ psql -U {連携設定変更機能のユーザー名} -d {連携設定変更機能のデータベース名} -h {データベースサーバのIPアドレス} -p {データベースサーバのポート番号} -W
COMPANYテーブルからシステム利用者の企業識別子を削除してください。
# DELETE FROM cls.COMPANY WHERE COMPANY_ID = '{システム利用者の企業識別子}';
削除したシステム利用者の企業識別子が削除されていることを確認し、ログアウトしてください。
# SELECT * FROM cls.COMPANY WHERE COMPANY_ID = '{システム利用者の企業識別子}'; # \q
格納抽出APIで認証サービスを使用している場合、開発実行環境サーバに格納している認証ファイルを削除してください。
cda.envおよびcde.envの“storeextract_auth_file_dir”パラメータで指定した格納抽出APIの認証ファイル格納ディレクトリから、該当する認証ファイルを削除してください。
$ rm {認証ファイル格納ディレクトリパス}/{システム利用者の企業識別子}.json
cda.envの詳細については、“EDI連携/DB連携編ユーザーズガイド”の“cda.env”を参照してください。
cde.envの詳細については、“EDI連携/DB連携編ユーザーズガイド”の“cde.env”を参照してください。
データを提供する
データ提供者がデータを提供する方法を説明します。
データ提供設定で指定したDBテーブル(table_id)に対して、INSERT文を発行してレコードを追加することで、データが提供されます。また、レコードをUPDATE文やDELETE文で変更・削除した場合は、データ利用者の業務DBに提供済のデータを変更・削除することが可能です。
注意
UPDATE文やDELETE文を使用する場合の制限事項は、以下のとおりです。
CSVの先頭にクエリ文字のカラムが追加されることを前提に変換ルールを作成してください。
データ提供を停止する
データ提供者がデータ提供を停止する方法を説明します。
データ提供設定の削除
連携設定変更機能のデータ提供設定削除機能APIを実行し、停止対象のDBテーブルに対するデータ提供設定を削除してください。
DBテーブルの削除
データ提供設定で指定した業務DBのDBテーブルを削除してください。
注意
DBアダプタモジュールを複製している場合において、一部のデータベースの連携を停止させる場合、本手順に従ってデータ提供を停止した後、“EDI連携/DB連携編ユーザーズガイド”の“データ提供側の停止”に従って機能を停止させてください。
アンインストールを実施する場合、すべてのデータベースの連携を停止させた後、“第6章 アンインストールする”に従ってアンインストールを実施してください。
データを取得する
データ利用者がデータを取得する方法を説明します。
データ利用設定を作成した状態で業務DBを稼働状態に保つことで、データ利用設定で指定された条件のデータが自動的に業務DBのテーブルに追加されます。
業務DBが停止状態の間にデータ利用設定で指定された条件のデータをデータ提供者が提供した場合、業務DBを稼働状態にすることでデータが自動的に追加されます。また、停止状態の間は新たに提供されたデータ利用設定で指定された条件のデータが業務DBに追加されることはありません。このため、未反映データの大量挿入による業務DBの一時的な負荷上昇を回避したい場合、業務DBの稼働状態を保つようにしてください。
ポイント
業務DBに挿入されるデータは、データ提供側のデータの型にかかわらずすべて文字列として扱われます。文字列とは異なる型として挿入したい場合は、暗黙的な変換が正しく行えるよう変換ルールを作成する必要があります。
業務DB上のデータの表示順は業務DBの仕様に依存します。データ提供者の提供順序と業務DB上の表示順序を一致させたい場合、必要に応じてDBのソート機能を利用してください。
データ利用を停止する
データ利用者がデータ利用を停止する方法を説明します。
データ利用設定の削除
連携設定変更機能のデータ利用設定削除機能APIを実行し、停止対象のDBテーブルに対するデータ利用設定を削除してください。
DBテーブルの削除
データ利用設定で指定した業務DBのDBテーブルを削除してください。
注意
DBアダプタモジュールを複製している場合、一部のデータベースの連携を停止させる場合、本手順に従ってデータ利用を停止した後、“EDI連携/DB連携編ユーザーズガイド”の“データ利用側の停止”に従って機能を停止させてください。
アンインストールを実施する場合、全てのデータベースの連携を停止させた後、“第6章 アンインストールする”に従ってアンインストールを実施してください。