USER MANUALS


ロードバランサーが Data Catalog と Design Studio のコネクションを閉じないようにする

一部のプロキシとロードバランサーは、しばらく非アクティブだった (通過するデータの流れがなかった) コネクションを閉じます。時間がかかるオペレーションは、この影響を受けます。たとえば、Design Studio で "obtain the top 10 customers grouped by country" のようなクエリを実行する場合、クエリが返す行数はわずかですが、結果を返すまでに数分かかる可能性があります。サーバーがクエリを実行している間、ユーザーがまだクエリの完了を待っているにもかかわらず、ロードバランサーがユーザーのブラウザーと Design Studio の間のコネクションは非アクティブであると見なして、コネクションを閉じる可能性があります。

Data Catalog と Design Studio は、ユーザーのブラウザーとアプリケーション (すなわち Denodo Platform の Web コンテナー) の間のこのようなコネクションを保持する機能を備えています。

この機能が有効な場合、ユーザーがデータを返すのに数分かかる可能性があるオペレーションを実行すると、アプリケーションはこのコネクション経由でデータを返さないまま数分間が経過したときに "no-op" メッセージを返してコネクションを保持します。

Data Catalog でこの機能が有効な場合にメリットを得られるオペレーションを以下に示します。

  1. メタデータの同期。

  2. クエリの実行。

  3. クエリのエクスポート。

  4. VQL Shell: クエリの実行、クエリのエクスポート、および実行トレースのダウンロード。

Design Studio でこの機能が有効な場合にメリットを得られるオペレーションを以下に示します。

  1. ビューおよびストアドプロシージャの [Query panel] から実行されるクエリ ([Execute and download] を含む)。

  2. VQL Shell: 任意のステートメントおよび [Execute and Download] の実行。

注釈

ping コネクションを使用する [Execute and Download] 機能は、クエリが大量の行を返す場合、実行速度が多少低下する可能性があります。

この機能の有効化

Data Catalog と Design Studio では、この機能はデフォルトで無効になっています。有効にするには、以下の手順に従います。

  1. Data Catalog でこれを有効にするには、ファイル <DENODO_HOME>/conf/data-catalog/DataCatalogBackend.properties を編集し、以下のプロパティを追加します。

# This property
connection-ping.enabled=true

# Every time this interval passes (in milliseconds) without sending data,
# the application sends a "noop" message to keep the connection alive.
#
# In this example, the value is two minutes
connection-ping.polling-interval=120000

connection-ping.core-pool-size=20
connection-ping.max-pool-size=40
connection-ping.queue-capacity=50
  1. Design Studio でこれを有効にするには、ファイル <SOLUTION_MANAGER_HOME>/conf/design-studio/DesignStudioBackend.properties を編集し、上記のプロパティを追加します。

  2. Solution Manager の Design Studio を再起動します。

  3. Denodo Platform のインストール環境の Design Studio を使用する場合、その Design Studio でこの機能を有効にすることを考慮してください。

この機能はスレッドプールを使用します。上記のプロパティはこのプールを制御します。上記で推奨しているデフォルト値は、どのユースケースでも有効なはずです。

  • スレッド数が connection-ping.core-pool-size 未満の場合、アプリケーションは新しいスレッドを作成して新しいタスクを実行します。

  • スレッド数が connection-ping.core-pool-size と同じ (またはそれ以上の) 場合、アプリケーションはタスクをキューに入れます。

  • キューがいっぱいで、スレッド数が connection-ping.max-pool-size 未満の場合、アプリケーションは新しいスレッドを作成して、そのスレッド内でタスクを実行します。

  • キューがいっぱいで、スレッド数が connection-ping.max-pool-size 以上の場合、アプリケーションはタスクを拒否します。

Add feedback