シナリオ 1 - Intraweb Application ウィザードで [プール データ接続] をオフのままにします。
このシナリオでは、ウィザードは を作成しますがServerController
、 は作成しUserSession
ませんDataModule
。データベース、セッション、およびデータセット コンポーネントを に配置しUserSession
ます。
新しいユーザーが Web サイトに接続するたびに、 の新しいインスタンスUserSession
が作成され、データベースへの接続が確立されます。ユーザーが非アクティブであるためにがServerController.SessionTimeOut
期限切れになると、UserSession
は破棄され、データベースへの特定の接続が切断されます。
30 人の同時ユーザーの場合、このモデルはおそらく問題なく、Web サイトが使用されていないときにすべてのデータベース接続が切断されることが保証されます。
シナリオ 2 - Intraweb Application ウィザードで [プール データ接続] をオンにします。
と同様にServerController
、UserSession
ウィザードは空の を作成しますDataModule
。データベース、セッション、およびデータセット コンポーネントを に配置しDataModule
ます。
には、プロパティをServerModule
持つTIWDataModulePool
コンポーネントがありPoolCount
ます。
アプリケーションが起動すると、それぞれがデータベースに接続する のPoolCount
インスタンスが作成されます。DataModule
ページはデータベースへのアクセスを必要とするため、プールからインスタンスの 1 つを一時的に使用するために呼び出さLockDataModule
れます。UnlockDataModule
DataModule
アプリケーションを閉じるDataModule
と、プール内のインスタンスが破棄され、データベースへの接続が閉じられます。
このモデルは、ユーザーごとに開いているデータベース接続がデータベース サーバーの能力を超える場合に適しています。FireBird データベースに接続しているユーザーが 30 人しかいない場合、それが必要になるとは思えません。