2 DABroker の機能(共通)
2.1 マルチスレッドの実行
DABrokerは,データベースアクセスをマルチスレッドで実行します。マルチスレッド
で実行すると,シングルスレッドで実行する場合に比べてシステムリソースの消費を軽 減でき,同時アクセス数(同時に実行できる処理数)の増加を実現します。
図2-1に示すように,シングルスレッドでは,プロセスごとにメモリ領域を確保します が,マルチスレッドでは,一つのプロセスで使用するメモリ領域で複数スレッドのメモ リ領域を確保できます。したがって,システムリソースの消費を軽減できます。
図2-1 マルチスレッドとシングルスレッドでのシステムリソース消費量の比較
また,マルチスレッドで実行すると,シングルスレッドで実行する場合に比べて,処理 にかかる時間を短縮できます。図2-2で同一処理を複数回実行する場合の例を示します。
シングルスレッドでは,複数の処理を一つのスレッドで実行しますが,マルチスレッド では,処理ごとにスレッドを生成し,スレッドを並行して実行できます。したがって,
処理時間を短縮できます。スレッドを並行に実行することで処理時間を短縮するため,
マルチスレッドは,非同期アクセス処理に適しています。
2. DABrokerの機能(共通)
図2-2 マルチスレッドとシングルスレッドでの処理時間の比較
次に,DABrokerで実現するスレッドの構成について説明します。
2.1.1 アプリケーションから実行するマルチスレッド
DABrokerでは,開発したアプリケーション,DABroker関連製品,及びDABrokerで 一つのプロセスを生成して実行します。プロセスで生成するスレッドの構成は,開発す るアプリケーションによって異なります。DABroker関連製品が提供するAPIを使用す ると,スレッドの制御方法などを意識することなく,マルチスレッドで実行するアプリ ケーションを開発できます。図2-3に,スレッドの生成例を示します。
2. DABrokerの機能(共通)
図2-3 スレッドの生成例
アプリケーションからのマルチスレッドの実行は,同時に複数処理を実行したい場合に 適しています。つまり,データベースへの非同期アクセス処理に適しています。
2.1.2 DBPARTNER から実行するマルチスレッド
DABrokerは,DBPARTNERを使用する場合DABrokerにアクセスするユーザの単位 にスレッドを生成します。図2-4に,DBPARTNERを使用する場合のスレッドの生成処 理を示します。
2. DABrokerの機能(共通)
図2-4 DBPARTNERの場合のDABrokerの処理方法
1プロセスで処理するスレッド数(=DABrokerに接続するユーザ数)は決められてい るので,1プロセスで処理するスレッド数を適切な値にするとDABrokerに同時に接続 できるユーザ数の増加にも効率的に対応できます。
1プロセスで処理するスレッド数(1プロセス当たりの実行ユーザ数)は,DABroker
2. DABrokerの機能(共通)
DABroker動作環境定義ファイル,最大接続ユーザ数,最大処理プロセス数,1プロセス
当たりの実行ユーザ数については,次の箇所を参照してください。
UNIXの場合:「3.4 DABrokerの動作環境の設定」
Windowsの場合:「4.5 DABroker環境設定項目」
設定値の見積もり方法については「5.2 DBPARTNERを使用する場合のスレッドの チューニング」を参照してください。
2. DABrokerの機能(共通)