データベース接続の共有

複数のデータストア、リージョン データベース、およびリージョン間データベースを単一の物理データベースに格納する場合は、1 つのデータベース接続を共有するように、これらのリソースを構成できます。これにより、セッション管理やメモリ使用量など、データベース サーバー側のリソースに対する負荷を大幅に削減できます。これは、ODBC データ ソースと接続文字列の両方の方法で利用できます。

ODBC 接続の場合

  • 単一の物理データベースに対する ODBC データ ソースを作成します。
  • dbfhconfig -add/-update -odbcdsn アクション/オプションを使用してデータ ソースを参照します。たとえば、次のように既存の構成を更新できます。
    dbfhconfig -update -server:ONEDB_SS -dsn:SS.ONEDS -odbcdsn:ONEDB_SS
注: 指定する各エントリは構成ファイル内の同じ -server グループに属している必要があり、同じ資格情報を使用してデータベースにアクセスするように、各 -dsn を構成する必要があります。

次の例は MSSQL データベース構成ファイルの抜粋で、2 つのデータストア (SS.DATASTORE1 および SS.DATASTORE2)、リージョン データベース (SS.REGION)、リージョン間データベース (SS.CROSSREGION) で 1 つのデータベース接続 (ONEDB_SS データ ソース) を使用しています。

...
<server name="SERVER_SS" type="sqlserver" access="odbc">
    <dsn name="SS.MASTER" type="database" dbname="master"/>
    <dsn name="SS.CROSSREGION" type="crossregion.cas" dbname="onedb_ss" odbcdsn="ONEDB_SS" />
    <dsn name="SS.REGION" type="region.cas" region="MYREGION" dbname="onedb_ss" odbcdsn="ONEDB_SS" /><dsn name="SS.DATASTORE1" type="datastore" dsname="MYFILES1" dbname="onedb_ss" odbcdsn="ONEDB_SS" />
    <dsn name="SS.DATASTORE2" type="datastore" dsname="MYFILES2" dbname="onedb_ss" odbcdsn="ONEDB_SS" />
  </server>
...

接続文字列による接続の場合

単一の物理データベースを接続文字列で指定するようにします。
dbfhconfig -update -server:ONEDB_SS -dsn:SS.ONEDS -connect:"Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=onedb_pg;Uid=myuser;Pwd=mypass;"
注: 指定する各エントリは構成ファイル内の同じ -server グループに属している必要があり、同じ資格情報を使用してデータベースにアクセスするように、各接続文字列を構成する必要があります。つまり、-server グループ内の必要な各エントリで同じ接続文字列を再利用する形になります。

次の例は PostgreSQL データベース構成ファイルの抜粋で、複数のデータストア (PG.DATASTORE1 および PG.DATASTORE2)、リージョン データベース (PG.REGION)、リージョン間データベース (PG.CROSSREGION) で 1 つのデータベース接続 (ONEDB_SS データ ソース) を使用しています。つまり、各エントリで同じ接続文字列が指定されています。

...
<server name="SERVER_PG" type="postgresql" access="odbc">
    <dsn name="PG.POSTGRES" type="database" dbname="postgres" connect="Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=postgres;Uid=myuser;Pwd=mypass;" />
<dsn name="PG.CROSSREGION" type="crossregion.cas" dbname="onedb_pg" connect="Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=onedb_pg;Uid=myuser;Pwd=mypass;" />
    <dsn name="PG.REGION" type="region.cas" region="MYREGION" dbname="onedb_pg" connect="Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=onedb_pg;Uid=myuser;Pwd=mypass;" /><dsn name="PG.DATASTORE1" type="datastore" dsname="MYFILES1" dbname="onedb_pg" connect="Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=onedb_pg;Uid=myuser;Pwd=mypass;" />
    <dsn name="PG.DATASTORE2" type="datastore" dsname="MYFILES2" dbname="onedb_pg" connect="Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=onedb_pg;Uid=myuser;Pwd=mypass;" />
  </server>
...