Вопрос

Я ищу информацию о подключении к базе данных (Firebird в моем случае) с приложениями Intraweb.

Мне особенно нужно знать разницу, связанные с использованием базы данных на TDAtamodule с функцией LockDatamodule, или с использованием базы данных на пользовательском управлении. Например, мне нужно полностью отключить базу данных, если ни один пользователей не используют сервер, и не более 30 пользователей будут подключены.

В худшем случае мне придется подключиться к какой -то старой базе данных парадокс, и мне нужна структура, которая могла бы справиться с ней (я знаю, что мне придется генерировать папку на основе WebApplication.appid для обработки сеансов). В худшем случае...

Заранее спасибо за любую информацию или полезные ссылки, которые вы можете дать мне ^^

Это было полезно?

Решение

Сценарий 1 - вы оставляете «подключения данных пула» неконтролировано в мастере Intraweb Application

В этом сценарии волшебник создает 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, я не верю, что это потребуется.

Другие советы

Вы можете рассмотреть вопрос о использовании компонента, такого как KBMMW http://www.components4programmers.com/ Я много лет использовал это с настольными приложениями Ans Ans сейчас с приложениями IW. Я развертываю свои приложения в качестве услуг и в настоящее время имею несколько проблем, развертывающих в качестве ISAPI. KBMMW хорошо подходит для приложения с большим количеством соединений, поскольку оно предлагает объединение соединений и т. Д. У него много функций и преимуществ. Проверьте сайт для себя.

Я использую корпоративную версию, хотя я думаю, что бесплатная версия может быть полезна для вас.

Ваше здоровье!

-Lou

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top