Data Virtualizationで並行クエリが遅い、または失敗する

最終更新: 2025年3月17日
Data Virtualizationで並行クエリが遅い、または失敗する

Data Virtualization化はコネクション・プールを行い、コネクション・プールがいっぱいになると、パフォーマンスに悪影響が出る可能性がある。

症状

並行照会が遅くなったり失敗したりする理由はさまざまです。 例えば、接続プールがいっぱいになった場合などです。 この場合、Data Virtualizationログには以下が含まれますReached max pool size以下の例に示すような警告が表示されます。

2021-04-13 03:06:27.541~616290520 DatabaseConnector ---------------> ******* DB Connections checker:
    Reached max pool size: 20, for url: jdbc:derby://172.30.217.136:6415/gaiandb6415;ssl=off;create=true - waiting 600000ms

問題の解決

この問題を回避するには、Data Virtualization設定パラメータ「MAX_POOLSIZESまたは「MAX_DS_POOLSIZES」を増やす。

  • MAX_POOLSIZES は、ノード間接続の最大プール・サイズです。
  • MAX_DS_POOLSIZES は、データ・ソースの最大プール・サイズです。
現在のData Virtualization設定パラメータ値を確認するには、以下のクエリを実行します。
select * from dvsys.listconfig where id = 'MAX_POOLSIZES'

それとも

select * from dvsys.listconfig where id = 'MAX_DS_POOLSIZES'

パラメーターを変更するには、以下の例に示すように dvsys.setconfigproperty ストアード・プロシージャーを使用します。

call dvsys.setconfigproperty('MAX_POOLSIZES', 'nn', '',?,?)

それとも

call dvsys.setconfigproperty('MAX_DS_POOLSIZES', 'nn', '',?,?)
注: 'nn' パラメーターは、現行値より大きい値に設定してください。 MAX_DS_POOLSIZESを設定するときは、リモート・データ・ソースでサポートされる接続の最大許容数に注意してください。