順次エージェントと比べて、エージェントをスレッド化すると次のような利点があります。
Domino R4.5.1 以降では複数の Web エージェントをサポートしているので、LotusScript® エージェントを同一プロセス内の別スレッドで実行できます。Domino で複数のユーザーが同時に Web エージェントをアクティブにしたときに、サーバーがスレッド対応になっていないと、エージェントは 1 つずつ順番に実行されます。Domino の同期エージェントを使用できるようにする手順は、「Domino Server 上での非同期エージェントの実行」を参照してください。
次の例では、ユーザー A のエージェントは、完了するまでの間サーバーに対して制御を行っていました。ユーザー B は、Agent 1 が完了するまで何の操作を行うこともできませんでした。
Time |
演算 |
コメント |
---|---|---|
0 |
ユーザー A がエージェント 1 をアクティブにします。 |
|
1 |
計算 |
エージェント 1 が開始します。ユーザー B がエージェント 2 をアクティブにします。 |
2 |
計算 |
エージェント 1 が実行中です。 |
3 |
計算 |
エージェント 1 が実行中です。 |
4 |
計算 |
エージェント 1 が実行中です。 |
5 |
|
エージェント 1 が終了します。 |
6 |
計算 |
ユーザー B のエージェント 2 が開始します。 |
7 |
|
エージェント 2 が終了します。 |
次の例では、ユーザー B はすぐに結果を受信します。ユーザー A は遅れて応答を受信しますが、時間差はわずかです。
Time |
スレッド 1 |
スレッド 2 |
コメント |
---|---|---|---|
0 |
ユーザー A がエージェント 1 をアクティブにします。 |
||
1 |
計算 |
エージェント 1 が開始します。ユーザー B がエージェント 2 をアクティブにします。 |
|
2 |
計算 |
エージェント 1 が実行中です。 |
|
3 |
計算 |
エージェント 1 がスワップアウトします。エージェント 2 が開始します。 |
|
4 |
|
エージェント 2 が終了します。 |
|
5 |
計算 |
エージェント 1 が実行中です。 |
|
6 |
計算 |
エージェント 1 が実行中です。 |
|
7 |
|
エージェント 1 が終了します。 |