Сервер Xafari может работать в двух режимах:

Режим работы сервера задается ключом UseDedicatedXafariServer секции appSettings конфигурационного файла приложения:

 

<appSettings>

  ...

  <!—

  XafariServer mode: 

  False - local XafariServer is used; 

  True - dedicated XafariServer is used. 

  -->

  <add key="UseDedicatedXafariServer" value="False" />

 

В режиме локального сервера (UseDedicatedXafariServer = False) обработка сообщений выполняется в отдельных потоках в рамках процесса клиентского приложения. Очередь сообщений при этом находится в памяти приложения, а не в базе данных. Очередь является индивидуальной для каждого экземпляра приложения. После завершения работы приложения все сообщения из очереди теряются. Такой режим может использоваться для выполнения не критичных фоновых задач.

В режиме выделенного сервера (UseDedicatedXafariServer = True) в клиентской части приложения обработка сообщений не выполняется. Клиентская часть приложения только помещает сообщения в очередь. Очередь сообщений находится в базе данных. Очередь является общей для всех экземпляров приложений. Обработку сообщений из очереди должен выполнять отдельный Cервер Xafari. Клиентское приложение может периодически проверять статус сообщений, ожидая результата обработки. К приложению сервера должны быть подключены все модули, необходимые обработчикам сообщений. Как правило, к приложению сервера подключаются все модули клиентской части приложения и модули, содержащие обработчики сообщений.

В качестве сервера рекомендуется использовать команду StartXafariServer консольной утилиты RunCmd. Сама команда реализована в модуле Xafari.Server.dll.

Использование утилиты RunCmd в качестве выделенного сервера расчетов

Настроить конфигурационный файл приложения:

Ниже приведена часть конфигурационного файла демонстрационного приложения Northwind.DC, настроенного для работы в режиме выделенного сервера. Для обработки сообщений подключен модуль Xafari.Reports.Server, реализующий Cервер Отчетов.

 

<appSettings>

  ...

  <add key="ValueManagerType" value="Xafari.XafariMultiThreadValueManager`1" />

  <add key="Modules" value="Xafari.Northwind.DC.AppModule;Xafari.Reports.Server" />

  <add key="UseDedicatedXafariServer" value="True" />

 

Все файлы, необходимые для работы клиентской части приложения (сборки, файлы *.xafml, конфигурационный файл и т.д) скопировать в отдельный каталог.

Запустить сервер, набрав в консоли однострочную команду:

 

RunCmd.exe /appconfig Xafari.Northwind.DC.Win.App.exe.config /l AuthenticationType:ActiveDirectory /c StartXafariServer

 

Пример команды показан для демонстрационного приложения Northwind.DC.Win. В параметрах команды указан конфигурационный файл приложения, заданы параметры аутентификации (Northwind.DC для аутентификации использует класс XafariAuthenticationLogonParameters. В ключе /l при запуске консольной утилиты задаются значения свойств данного класса). Также указана команда StartXafariServer, которая и реализует сервер расчетов в консольном режиме. При успешном запуске сервера в консоли появится сообщение:

 

Starting Xafari Server... ok

Xafari Server is running... (press Ctrl+C or Ctrl+Break to stop).

 

Подробные сведения об утилите RunCmd изложены в соответствующей документации.