![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() У меня вопросик чисто теоретический, в литературе про это как-то вскользь упоминается.
А вопрос в следующем: Есть сервер, подключенный к БД, и тонкий клиент , на клиенте формируется SQL-запрос и отправляется на сервер, а там уже обрабатывается. Как работает "Удаженный модуль данных"(в часности "Remote Data Module"), тоесть как он работает я примерно понял, меня больше интересует не будет ли создаваться конфликтов если с разных компьютеров одновременно подключатся пользователи и захотят получить различную информацию? Или для каждого клиента приложение создаст копию отдельного удаленного модуля? Заранее спасибо за ответы. |
#2
|
|||
|
|||
![]() Когда создается Remote Data Module выбираются его режимы работы Instances и Threading model. Вот от этих настроек и зависит как Remote Data Module будет себя вести при несколькоих подключениях.
CoClass Name - имя класс, под которым данный сервер приложений будет зарегистрирован в реестре (в нашем примере SrvApp). Instancing (способ создания экземпляров)- раскрывающийся список с 3я допустимыми вариантами. Этот параметр определяет, сколько копий серверного процесса будет запущено: Internal -использование COM-сервера только внутри приложений без доступа к внешних объектов; Single Instance (единственный экземпляр)- каждый клиент при подключении создает свой отдельный экземпляр COM-сервера. Данный метод позволяет получить параллельный доступ клиентов к данным, но создает большую нагрузку на компьютер сервера; Multiple Instance (множественные экземпляры)- всеми клиентами используется один экземпляр COM-сервера. Работа клиентов в данном случае будет вестись по очереди, но нагрузка на сервер будет меньше. Для нашего примера этот вариант наиболее предпочтителен. Treading Model (выбор модели потока)- этот параметр позволяет подпрограммам поддержки COM распределять соединения по отдельным потокам без необходимости применять дополнительный код. Для RDM модулей допустимы 4 модели потоков: Single (одиночная) - эта модель позволяет одновременно обрабатывать только один запрос, но при этом нет необходимости заботится об управлении потоками. Apartment (раздельная) - эта модель в сочетании с параметром Multiple Instance дает самые высокие результаты. Все клиенты использовать один процесс сервера и не будут блокировать работу друг друга, поскольку каждый будет использовать собственный поток сервера. Именно эту модель стоит выбрать при работе с BDE. Free (свободная) - эта модель обеспечивает ещё большую гибкость, позволяя передавать серверу несколько запросов клиентов. Эту модель выгодно использовать при работе с ADO. Both (обе модели) - эта модель также эффективна, как и модель Free, но при её использовании обеспечивается автоматическая сериализация обратных вызовов. Взятоотсюда |
#3
|
|||
|
|||
![]() Grunch
Огромное спасибо, ссылка то что надо. P.S. Считаю, что тему можно закрывать |