Webcoordinatorではビジネスクラスの実行について以下の排他制御が可能です。
アプリケーションの排他制御
アプリケーションクラスでjavax.servlet.SingleThreadModelを実装(必要なメソッドはなく、宣言するだけで使用可能)すると、そのアプリケーションの中でビジネスクラスを同時にひとつだけ実行します。
同じビジネスクラス | 異なるビジネスクラス | |
---|---|---|
同じセション | 排他 | 排他 |
異なるセション | 排他 | 排他 |
セションの排他制御
セションクラスでjavax.servlet.SingleThreadModelを実装すると、そのセションの中でビジネスクラスを同時にひとつだけ実行します。
package sample; public class SampleSession extends com.fujitsu.uji.http.HttpSessionProfile implements javax.servlet.SingleThreadModel { }
同じビジネスクラス | 異なるビジネスクラス | |
---|---|---|
同じセション | 排他 | 排他 |
異なるセション | フリー | フリー |
ビジネスクラスの排他制御
ビジネスクラスでjavax.servlet.SingleThreadModelを実装すると、アプリケーションの中でそのビジネスクラスに関する実行を同時にひとつだけ実行します。
同じビジネスクラス | 異なるビジネスクラス | |
---|---|---|
同じセション | 排他 | フリー |
異なるセション | 排他 | フリー |
これらの仕組みは、ビジネスクラスの実行中、ビジネスロジックの部分のみを排他制御します。リクエストの解析や表示画面作成の間はマルチスレッド実行になります。
この方法の他に、synchronizedを利用して任意の部分に排他制御を行うことも可能です。