

逐次差分反映先システムでSymfoware/pgs、Enterprise PostgresまたはPostgreSQLのセットアップを行ってください。
データベースの定義を行ってください。
セットアップとデータベース定義の方法は、Symfoware Server、Enterprise PostgresまたはPostgreSQLのマニュアルを参照してください。
データベースにアクセスするユーザや必要な権限については、"7.3.4 lxrtmdbコマンド"を参照してください。
環境変数については"4.3.1 環境変数の設定"を参照してください。
入力データと表の対応について、"8.3.1 INTABLE定義文"および"A.1.2 ジャーナル定義の対応表"を参照してください。
設定について
識別子の大文字/小文字を区別する場合や、標準ではない識別子(標準識別子の形式に関する規則に従わない識別子)を使用する場合、DB動作環境定義のUSE_DELIMITED_IDENTIFIERSキーワードに"ON"を指定してください。
標準ではない識別子の詳細については、Symfoware Server、Enterprise PostgresまたはPostgreSQLのマニュアルを参照してください。
各国語文字列属性は、データベースの文字コードが"UTF8"の場合のみ、定義可能です。
データベースでエラーが検出された場合、エラーを回避し、逐次差分反映処理を継続することがあります。
例)存在するレコードに対する追加操作を実施し、一意制約違反が発生した場合は、更新操作に変更し、逐次差分反映処理を継続する。
データベース名について
データベース名については、DB動作環境定義のUSE_DELIMITED_IDENTIFIERSキーワードに関係なく、定義されている内容と大文字/小文字を含めて一致している必要があります。データベース作成時とDBサービス定義の対応例を以下に示します。DATABASEオペランドについては"8.3.4 STOREGROUP定義文"を参照してください。
| データベース作成時 | DBサービス定義のDATABASEオペランド | 
|---|---|
| CREATE DATABASE RDBDB; | rdbdb | 
| CREATE DATABASE "RDBDB"; | RDBDB | 
| CREATE DATABASE rdbdb; | rdbdb | 
登録されているデータベース名の確認例を以下に示します。psqlコマンドで接続されている状態で確認します。
| rdbdb=# \l
                                             データベース一覧
   名前    |  所有者  | エンコーディング |      照合順序      | Ctype(変換演算子)  |      アクセス権
-----------+----------+------------------+--------------------+--------------------+-----------------------
 postgres  | symfopgs | UTF8             | Japanese_Japan.932 | Japanese_Japan.932 |
 rdbdb     | symfopgs | UTF8             | Japanese_Japan.932 | Japanese_Japan.932 |
 template0 | symfopgs | UTF8             | Japanese_Japan.932 | Japanese_Japan.932 | =c/symfopgs          +
           |          |                  |                    |                    | symfopgs=CTc/symfopgs
 template1 | symfopgs | UTF8             | Japanese_Japan.932 | Japanese_Japan.932 | =c/symfopgs          +
           |          |                  |                    |                    | symfopgs=CTc/symfopgs
(4 行) | 
データベースアクセスユーザ名について
データベースアクセスユーザ名については、DB動作環境定義のUSE_DELIMITED_IDENTIFIERSキーワードに関係なく、データベースに定義されている内容と大文字/小文字を含めて一致している必要があります。データベースアクセスユーザ作成時とlxrtmdbコマンド -uオプションの指定値の対応例を以下に示します。lxrtmdbコマンドについては"7.3.4 lxrtmdbコマンド"を参照してください。
| データベースアクセスユーザ作成時 | lxrtmdbコマンド -uオプション指定値 | 
|---|---|
| CREATE USER USER1 WITH PASSWORD 'user1'; | user1/user1 | 
| CREATE USER "USER1" WITH PASSWORD 'user1'; | USER1/user1 | 
| CREATE USER user1 WITH PASSWORD 'user1'; | user1/user1 | 
データベースアクセスユーザ名の確認例を以下に示します。psqlコマンドで接続されている状態で確認します。
| rdbdb=# \du
                                             ロール一覧
     ロール名     |                                 属性                                 | メンバー
------------------+----------------------------------------------------------------------+----------
 symfoadmin       | スーパーユーザ, ロールを作成できる, DBを作成できる, レプリケーション | {}
 user             |                                                                      | {}
(2 行) | 
また、lxrtmdbコマンド -uオプションの省略時など、Trust認証を使用する場合は、データベース上でユーザを作成する際に、OS上のユーザ名と大文字/小文字を含めて一致している必要があります。対応例を以下に示します。
| OS上のユーザ名 | データベースアクセスユーザ作成時 | 
|---|---|
| ローカルシステムアカウント | CREATE USER "SYSTEM"; | 
| Administrator | CREATE USER "Administrator"; | 
ポート番号
ポート番号はデータベースクラスタごとに使用します。ポート番号は、postgresql.confやpg_ctlコマンドで指定できます。すべてにおいて省略した場合は、デフォルト値が使用されます。ポート番号は他のデータベースクラスタと競合しないようにしてください。
| 指定方法 | 例 | 
|---|---|
| postgresql.confに指定 | port = 26500 | 
| pg_ctl startコマンド | pg_ctl start -w -D /db/inst1 -o "-p 26500" | 
| 
 | pg_ctl register -N "Symfoware Server inst1" -U usr1 -P passwd1 -D D:\db\inst1 -w -o "-p 26500" -S demand | 
データベースクラスタで使用するポート番号と、DBサービス定義で指定するポート番号は合わせてください。
pg_ctlコマンドの詳細については、Symfoware Server、Enterprise PostgresまたはPostgreSQLのマニュアルを参照してください。
DBサーバのパラメータ(postgresql.conf)の設定
DBサーバのパラメータは、ファイルpostgresql.confに設定します。
以下のパラメータに"on"を設定しないでください。設定した場合、意図せず逐次差分反映が異常終了する可能性があります。
| exit_on_error = on | 
また、格納側の列の属性にbyteaを使用する場合、以下のパラメータに"off"を設定しないでください。設定した場合、不当なデータを格納する可能性があります。
| standard_conforming_strings = off | 
リモートデータベース環境
リモートデータベース環境については、"第7部 リモートデータベース環境における運用"を参照してください。
注意事項
格納側列として指定したすべての列が主キーの場合、逐次差分反映機能は使用できません。
データベース名には、マルチバイト文字、"/"、"@"、":"および"|"を使用しないでください。 データベース名には、半角空白および"\"を使用しないでください。
データベース名には、半角空白および"\"を使用しないでください。
スキーマ名および表名には、"'"、":"および"?"を使用しないでください。 スキーマ名および表名には、半角空白を使用しないでください。
スキーマ名および表名には、半角空白を使用しないでください。
列名には、":"および"?"を使用しないでください。 列名には、";"を使用しないでください。
列名には、";"を使用しないでください。
ユーザ名にはマルチバイト文字を使用しないでください。

PostgreSQLの場合、nchar(n)とnchar varying(n)は使用できません。char(n)またはvarchar(n)を使用してください。