Symfoware/pgs、Enterprise PostgresまたはPostgreSQLのリモートデータベースを使用する場合の、システム構成、TROの設定、およびデータベースの設定について説明します。
Symfoware/pgsの設定などについては、Symfoware Serverのマニュアルを参照してください。
Enterprise Postgresの設定などについては、Enterprise Postgresのマニュアルを参照してください。
PostgreSQLの設定などについては、PostgreSQLのマニュアルを参照してください。
DBサーバ側には、Symfoware Server(Openインタフェース)をインストールします。
DBサーバ側には、Enterprise Postgresをインストールします。
DBサーバ側には、PostgreSQLをインストールします。
DBクライアント側には、Symfoware Server Client(Symfoware Server(Openインタフェース)のクライアントパッケージ)をインストールします。
DBクライアント側のバージョンは、DBサーバ側のデータベースへの接続をサポートしているものにする必要があります。詳細はSymfoware Serverのマニュアルを参照してください。
DBクライアント側には、Enterprise Postgres Client(Enterprise Postgresのクライアントパッケージ)をインストールします。
DBクライアント側のバージョンは、DBサーバ側のデータベースへの接続をサポートしているものにする必要があります。詳細はEnterprise Postgresのマニュアルを参照してください。
DBクライアント側には、PostgreSQLクライアントをインストールします。
DBクライアント側のバージョンは、DBサーバ側のデータベースへの接続をサポートしているものにする必要があります。詳細はPostgreSQLのマニュアルを参照してください。
認証の種類は以下のとおりです。
データベースの認証機構(パスワード認証)
システム構成を以下に示します。
図30.4 Symfoware/pgs、Enterprise PostgresまたはPostgreSQLのシステム構成(TRO)
グローバルサーバからJournalTransferを通じてデータを受信してTRMのメッセージキューに格納します。
DBサーバ側では、パラメータやクライアント認証ファイルの設定に応じて、クライアント側からの要求を受け付けます。
DBクライアント側では、ホスト、ポート番号およびデータベース名を指定することにより対象のデータベースに接続し、データを格納します。
パラメータとクライアント認証ファイルを設定します。
詳細はSymfoware Server、Enterprise PostgresまたはPostgreSQLのマニュアルを参照してください。
パラメータ(postgresql.conf)を設定してください。
クライアントアプリケーションからの接続を監視する DBサーバ側のTCP/IP アドレスを指定します。'*'を指定した場合、DBサーバで利用可能な全てのIPインタフェースに対応します。指定例を以下に示します。
listen_addresses='*' |
キープアライブ(接続が有効であることを確認するために定期的に行われる通信)を送信する間隔を指定します。以下の指定を推奨します。
tcp_keepalives_idle=30 |
ネットワークの切断などによってデータベースから切断されたあとに再接続が完了すると、RT14203メッセージが出力されます。しかし、DBサーバの内部で接続情報が残っていると、再接続が完了したにもかかわらず、逐次差分反映処理が進まないことがあります。
tcp_keepalives_idleパラメータ、およびtcp_keepalives_intervalパラメータを指定することにより、この現象を軽減できます。この値を設定しているにも関わらず現象が頻発する場合は、値を小さくすることを推奨します。また、データベースを再起動すると、内部の接続情報は初期化されるため、データベースを再起動することを推奨します。
クライアント認証ファイル“pg_hba.conf”に以下を設定します。
host データベース ユーザ 許可対象ホスト 認証方法 |
データベースに"all"を指定した場合は、すべてのデータベースが対象となります。
ユーザに"all"を指定した場合は、すべてのユーザが対象となります。
許可対象ホストにはDBクライアントを指定します。
認証方法として、平文のパスワードの場合は"password"を、MD5暗号化パスワードの場合は"md5"を指定します。パスワードはネットワークを通じて送信されるため、MD5暗号化パスワードによる認証方式を推奨します。
指定例)全データベース、全ユーザ、特定のIPアドレス、MD5暗号化パスワードの場合
host all all 192.168.0.1/32 md5 |
DBクライアントからDBサーバに接続できることをpsqlコマンドにより確認してください。
psql -h DBサーバ -d データベース -p ポート番号 -U DBアクセスユーザ |
DBクライアント側でTROに必要な環境変数を設定します。
リモート接続では、接続先のホストおよびポートの指定が必要です。DBサービス定義 (STOREGROUP定義文のDATABASEオペランド)で指定した場合は、環境変数での指定は不要です。
環境変数 | 説明 |
---|---|
PATH | [Symfoware/pgsの場合] [Enterprise Postgresの場合] [PostgreSQLの場合] |
PGHOST | 接続先のホストを指定します。 |
PGPORT | 接続用のポート番号を指定します。 |
詳細については、Symfoware Server、Enterprise PostgresまたはPostgreSQLのマニュアルを参照してください。
その他の環境変数については、"4.3.1 環境変数の設定"を参照してください。
DBクライアント側でDB動作環境定義キーワードを指定します。
リモート接続に関するDB動作環境定義キーワードは以下のとおりです。
キーワード | 概要 |
---|---|
接続方式を指定します。 | |
切断された場合の、再接続のリトライを行う回数を指定します。 | |
再接続のリトライを行う間隔を指定します。 |
例を以下に示します。
CONNECT_TYPE:REMOTE |
また、他のDB動作環境定義キーワードも必要に応じて指定してください。
詳細については、"4.3.2 DB動作環境定義の作成"を参照してください。
DBクライアント側でDBサービス定義を作成します。
STOREGROUP定義文のDATABASEオペランドは以下の形式で指定してください。
接続先の形態に応じて指定してください。
接続先のホスト名を1つ指定します。
データベース名[@ホスト名][:ポート番号] |
ホスト名を省略した場合、環境変数PGHOSTの指定値が有効となります。
リモート接続ではホスト名が必要なため、DATABASEオペランドまたは環境変数PGHOSTでホスト名を指定してください。
ポート番号を省略した場合、環境変数PGPORTの指定値が有効となります。ポート番号と環境変数PGPORTをいずれも省略した場合は、環境変数PGPORTの省略値となります。
STOREGROUP定義文のOUTCODEオペランドは、データベース側のコード系に合わせてください。
詳細は、Symfoware Server、Enterprise PostgresまたはPostgreSQLのマニュアルを参照してください。
その他については、ローカル接続と同じです。詳細については、"第8章 DBサービス定義"を参照してください。
DBクライアント側で逐次差分反映を開始します。
逐次差分反映の開始は、lxrtmdbコマンドにより行います。詳細については、"7.3.4 lxrtmdbコマンド"を参照してください。
リモート接続では、データベースの認証機構のみ使用可能であるため、lxrtmdbコマンドには-uオプションを指定する必要があります。
例を以下に示します。
lxrtmdb -s DBSVC1 -r STRGRP1 -o -u user1/passwd1 |
リモート接続における注意事項を説明します。
DBサーバ側でファイアウォールを運用している場合、DBサーバとDBクライアントの通信に使用するポートを許可するよう、DBサーバ側に設定します。対象のポートを許可してください。
デフォルトの場合、ポートは以下となります。
Symfoware/pgsの場合 | 27500/tcp |
Enterprise Postgresの場合 | 27500/tcp |
PostgreSQLの場合 | 5432/tcp |