Сценарий 1 - вы оставляете «Соединения данных пула» не отмеченными в мастере приложений Intraweb
В этом сценарии мастер создает ServerController
, UserSession
, но не DataModule
.Вы помещаете свою базу данных, сеанс и компоненты набора данных в UserSession
.
Каждый раз, когда новый пользователь подключается к вашему веб-сайту, создается новый экземпляр UserSession
и устанавливается соединение с базой данных.Когда срок действия ServerController.SessionTimeOut
истекает из-за неактивности пользователя, UserSession
уничтожается и это конкретное соединение с базой данных прерывается.
Для 30 одновременно работающих пользователей эта модель, вероятно, подойдет вам и должна гарантировать, что вся база данныхСоединения будут разорваны, когда веб-сайт не используется.
Сценарий 2 - Вы отметили «Соединения данных пула» в мастере приложений Intraweb
, а также ServerController
и UserSession
мастер создаст пустое DataModule
.Компоненты базы данных, сеанса и набора данных помещаются в DataModule
.
. В ServerModule
есть компонент TIWDataModulePool
, свойство PoolCount
.
Когда ваше приложение запускается, оно создает PoolCount
экземпляров DataModule
, каждый из которых устанавливает соединение с базой данных.Поскольку вашим страницам требуется доступ к базе данных, они вызывают LockDataModule
и UnlockDataModule
, чтобы временно использовать один из DataModule
экземпляров из пула.
Когда ваше приложение закрывает экземпляры DataModule
в пулеуничтожены, и их соединения с базой данных закрыты.
Эта модель подходит, когда наличие открытого соединения с базой данных на пользователя превысит возможности вашего сервера базы данных.Я не верю, что для 30 пользователей, подключающихся к базе данных FireBird, это потребуется.