AT Application Server 1.3 with UPDATE PACK 1 AT-Software

РУКОВОДСТВО СИСТЕМНОГО АДМИНИСТРАТОРА

Москва 2005

Данный документ предназначен для администраторов сервера приложений AT Application Server 1.3. Подразумевается, что читатель знаком с принципами построения программ в архитектуре клиент/сервер, а так же обладает базовыми знаниями операционных систем Windows NT / 2000.

AT Application Server: Содержание

Содержание

ВВЕДЕНИЕ.. 5

Сокращения.. 5

Условия распространения.. 5

Ввод регистрационного ключа.. 5

Комплект поставки.. 6

Системные требования.. 7

Что нового.. 8

УСТАНОВКА.. 9

Общие сведения.. 16

Диспетчер. 17

Протокол запросов.. 18

Протокол команд.. 19

Служба запуска приложений.. 22

Что такое серверное приложение?. 22

АДМИНИСТРИОВАНИЕ.. 24

Ручное управление.. 24

Настройка параметров. 26

Запуск и остановка. 28

Остановка активного экземпляра серверного приложения. 29

Сервисная утилита AT-AS Admin.. 30

Настройка параметров работы сервера. 31

Управление активными экземплярами серверных приложений. 31

Запуск и остановка сервера приложений. 32

Менеджер сервера приложений. 34

ЖУРНАЛЫ СОБЫТИЙ.. 37

Системный журнал.. 37

Журнал обмена данными с клиентом... 39

ПРИЛОЖЕНИЕ А. КОДЫ ОШИБОК.. 41

Коды типа ошибки.. 41

Коды ошибок.. 42

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

НЕ нашли? Не то? Что вы ищете?

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

AS_REASON_1

ПРИЛОЖЕНИЕ B. КАРКАС СЕРВЕРНОГО ПРИЛОЖЕНИЯ (Microsoft Visual C++ 6.0) 47


AT Application Server: Введение

ВВЕДЕНИЕ

Сокращения

В данном документе используются следующие сокращения:

ПО – Программное обеспечение.

ОС – Операционная система.

СП – Серверное приложение.

ОЗУ – Оперативная память.

Условия распространения

Сервер приложений AT Application Server является коммерческим продуктом. Бесплатно распространяются только следующие компоненты:

Ø  AT Application Server (Trial) – это ознакомительная версия сервера приложений, которая не имеет ограничений по функциональной части ПО, но работает только определенное время, по истечении которого активизировать сервер можно будет только после ввода регистрационного ключа.

Ø  Библиотека разработчика (SDK).

Ø  Примеры работы с AT Application Server.

Ø  Каркасы серверных приложений AT Application Server.

Ø  Документация.

Более подробную информацию об условиях распространения, а так же скачать ознакомительную версию AT Application Server, Вы можете на сайте AT-Software:

http://at-software. *****/atas. html

Ввод регистрационного ключа

Для того чтобы ввести регистрационный ключ продукта AT Application Server необходимо сделать следующее:

Открыть административную утилиту AT-AS Admin: Start->Programs->AT-Software->AT Application Server->Admin. Перейти в закладку «О продукте» и нажать кнопку «Регистрация…». Ввести регистрационный ключ, после чего нажать «ОК».

AT Application Server: Введение

Комплект поставки

В комплект поставки программного продукта входит следующее:

Дистрибутив AT Application Server 1.3: Сервер приложений AT Application Server; Библиотека разработчика (SDK); Примеры работы с AT Application Server (Borland Delphi, Visual C++); Каркасы серверных приложений AT Application Server (Borland Delphi, Visual C++). Документация: «AT Application Server Концепции и архитектура»; «AT Application Server Руководство системного администратора»; «AT Application Server Руководство программиста». Лицензионный ключ: Лицензия для неограниченного числа, одновременно работающих, клиентских подключений (клиентское подключение - это активная сессия с одной программой-клиентом).

AT Application Server: Введение

 


Системные требования

Минимальная конфигурация рабочей станции, которая будет обеспечивать нормальное функционирование сервера приложений AT Application Server, приведена в Таблице 1:

Таблица 1. Минимальная конфигурация сервера

Процессор

Intel Pentium III, тактовая частота 600 МГц

Оперативная память

64 Мб

Свободное место на HDD

не менее 2 Мб для системных файлов AT Application Server

не менее 30 Мб для рабочих данных

ОС

Windows NT / 2000 /2003

Минимальная конфигурация рабочей станции, на которую будут устанавливаться компоненты AT Application Server предназначенные для разработчика прикладных программ, приведена в Таблице 2:

Таблица 2. Минимальная конфигурация рабочей станции

Процессор

Intel Pentium II

Оперативная память

32 Мб

Свободное место на HDD

не менее 1 Мб

ОС

Windows NT / 2000 / XP /2003, Windows 9x / Me


AT Application Server: Что нового

Что нового

В этом разделе будут представлены новые возможности и изменения в AT Application Server 1.3.

Исправлена разборка строки-запроса к серверу приложений, по протоколу HTTP. Появилась возможность настройки ограничений (лимитов) для серверных приложений:
    Лимит на использование ОЗУ – это максимально-допустимый порог оперативной памяти, которую может использовать один активный экземпляр СП. Лимит времени выполнения – это время, которое отводится одному экземпляру СП для работы.

Если хотя-бы один из вышеперечисленных лимитов будет превышен, сервер приложений снимет с выполнения экземпляр-нарушитель и отправит клиенту сообщение об ошибке.

Теперь можно остановить сразу несколько работающих (активных) экземпляров СП при помощи одной административной команды. В утилите отладки серверных приложений добавлены режимы работы - локальный и удаленный:

·  Локальный. В этом режиме можно запускать и отлаживать СП на локальной рабочей станции.

·  Удаленный. Запуск СП на удаленной системе (сервер приложений).

Административная утилита AT-AS Admin:

·  Появилась возможность наблюдать за ресурсами ОС, которые используют активные экземпляры СП: ОЗУ, страницы виртуальной памяти, дескрипторы.

·  В списке выполняющихся СП добавлен адрес клиента запустившего конкретный экземпляр.

·  Добавлен менеджер сервера приложений. Этот режим дает возможность оценки производительности, как всего сервера приложений, так и каждого выполняющегося экземпляра СП в отдельности. Для удобства восприятия информация отображается в графическом и цифровом виде.

·  Добавлена возможность остановки всех активных экземпляров одного серверного приложения.

В DEMO-проектах добавлены новые примеры клиентских программ.

Историю выпуска версий сервера приложений AT Application Server Вы можете посмотреть на сайте AT-Software, по следующему адресу: http://at-software. *****/atashist. html.
AT Application Server: Установка

 


УСТАНОВКА

Поместите компакт-диск с дистрибутивом AT Application Server в устройство CD-ROM и выполните «X:\Setup. exe» (X – имя привода CD-ROM). На экране появится окно выбора языка инсталляции:

Выберите язык и нажмите кнопку «ОК».

Закройте все выполняющиеся программы и нажмите «Next»:

AT Application Server: Установка

 


Внимательно прочитайте лицензионное соглашение и если Вы с ним согласны, выберите «I accept the agreement» и нажмите кнопку «Next». В противном случае, нажмите «Cancel» для завершения процесса инсталляции.

AT Application Server: Установка

 


Прочтите сведения о системных требованиях и типах установки, а затем нажмите

«Далее»

В окне данных о пользователе введите выше полное имя и название организации.

AT Application Server: Установка

 


Укажите директорию, в которую Вы хотите поместить файлы AT Application Server. Можно оставить значение, предлагаемое по умолчанию, и нажмите «Next».

Выберите сценарий установки:

1)  Полная.

Включает в себя все компоненты AT Application Server:

Ø  Сервер приложений AT Application Server.

Ø  Библиотека разработчика (SDK).

Ø  Примеры работы с AT Application Server (Borland Delphi, Visual C++).

Ø  Каркасы серверных приложений AT Application Server (Borland Delphi, Visual C++).

Ø  Документация.

2)  Сервер:

Содержит единственную компоненту: «Сервер приложений» и документацию. Устанавливается на машину, где будет работать сервер приложений.

3)  Клиент:

Устанавливается на рабочие станции разработчиков прикладных программ и включает в себя следующие компоненты:

Ø  Библиотека разработчика (SDK).

Ø  Примеры работы с AT Application Server (Borland Delphi, Visual C++).

Ø  Каркасы серверных приложений (Borland Delphi, Visual C++).

Ø  Документация.

AT Application Server: Установка

 


Вы также можете сами выбрать тот набор устанавливаемых компонент, который Вам необходим. Для этого нужно просто снять/установить галочку напротив соответствующего элемента. Нажимаем «Next».

Укажите программную группу главного меню, в которую следует поместить ярлыки программ, и жмем «Next».

AT Application Server: Установка

 


Оставьте галочку, если Вы хотите поместить ярлык административной утилиты AT Application Server на Ваш рабочий стол.

Все готово к установке и если Вы не передумали, нажмите «Install».

AT Application Server: Установка

 


Дождитесь завершения копирования файлов и регистрации всех необходимых модулей.

Если Вы выбрали компоненты, которые требуют перезагрузки системы, после завершения инсталляции, то Вы увидите это окно. Настоятельно рекомендуем произвести перезагрузку системы, для чего нажмите кнопку «Finish».

AT Application Server: Общие сведения

 


Общие сведения

AT Application Server – это многопоточный сервер приложений, который обеспечивает синхронное взаимодействие двух программ, программы клиента и программы сервера, в распределенной среде (локальной сети), при этом к одному серверному приложению (СП), одновременно, могут обращаться несколько клиентов.

 

СП 1

 

СП 2

 

Поток 1

 

Поток 2

 

 

СП 3

 

СП 4

 
 

СП 5

 

Поток 3

 

СП 6

 
 

СП 7

 

Поток 4

 

 

СП 9

 

СП 8

 

 

СП 10

 

Рис1. Схема работы сервера приложений AT Application Server

AT Application Server: Общие сведения

 


Диспетчер

Рис 2. Многопоточность в AT Application Server

Диспетчер – это основной компонент AT Application Server, который работает в главном потоке сервера приложений и прослушивает заданный порт. Когда возникает клиентское подключение, диспетчер, создает для него новый рабочий поток. В случае системной ошибки, или истечения таймаута ожидания данных от клиента, последнему отсылается сообщение, содержащее код и описание ошибки, клиентское соединение прерывается, а созданный поток завершается.

Сообщение об ошибке представляет собой строку символов определенного формата, которую сервер приложений отправляет клиенту, в ответ на его запрос, если произошла какая-либо системная ошибка во время выполнения клиентского потока.

AT Application Server: Общие сведения

 


Структура сообщения об ошибке:

RC=XXXX&message=”Комментарий к ошибке”

RC, message – ключевые слова

XXXX - четырехзначный код ошибки

& - разделитель фраз

Пример:

RC=1308&message=”Возникла исключительная ситуация в приложении”

Протокол запросов

Протокол запросов – это специальный протокол, который используется программой-клиентом для передачи запросов серверу приложений.

Структура протокола запросов:

RUNAPP? APP=Имя_СП&Параметр1&Параметр2&…&ПараметрN&ПКЗ

RUNAPP - Имя службы сервера приложений, к которой

обращается клиент (Служба запуска приложений).

APP - Ключевое слово.

Имя_СП - Имя программы-сервера, которую должен

запустить сервер приложений, без расширения.

Параметр - Параметр, который будет передан серверному приложению.

Имеет следующий вид: Name=Value.

(Например: INDEX=125).

& - Разделитель параметров.

? - Разделитель фраз.

ПКЗ - Признак конца запроса. Это специальная последовательность

символов указывающая серверу приложений на конец запроса.

Для протокола TCP/IP ПКЗ = «#8#11.#8#11».

Замечание: При использовании функций интерфейса ASPI, или ASDL для передачи запросов серверу приложений, ПКЗ указывать не обязательно.

Начиная с версии 1.1 сервера приложений AT Application Server, максимальная длина строки-запроса не ограничена.

Пример:

RUNAPP? APP=myapp&TEXT=Hello&NAME=Alexey&

Данная строка говорит серверу приложений, что его служба - «Служба запуска приложений» должна запустить приложение myapp и передать ему два параметра:

Ø  TEXT=Hello;

Ø  NAME=Alexey.

AT Application Server: Общие сведения

 

Протокол команд

Протокол команд – это специальный протокол, который используется программой-клиентом для передачи административных команд серверу приложений.

Структура протокола команд:

ASADMN? CMD=Имя_команды&OBJ=Имя_объекта&Параметр1&…&ПараметрN&ПКЗ

ASADMN - Имя службы сервера приложений, к которой

обращается клиент (Служба обработки команд).

CMD, OBJ - Ключевые слова.

Имя_команды - Имя команды AT Application Server, которую

должен выполнить сервер приложений.

Имя_объекта - Имя объекта AT Application Server, к которому

применяется данная команда.

Параметр - Параметр команды.

Имеет следующий вид: Name=Value.

& - Разделитель параметров.

? - Разделитель фраз.

ПКЗ - Признак конца запроса. Это специальная

последовательность символов указывающая серверу

приложений на конец запроса. Для протокола

TCP/IP ПКЗ = «#8#11.#8#11».

Замечание: При использовании функций интерфейса ASPI, или ASDL для передачи команд серверу приложений, ПКЗ указывать не обязательно.

Таблица 3. Административные команды AT Application Server

Имя команды

Имя

объекта

Параметры

Описание применения

имя

описание

STOP

APP

NAME

Имя СП

Остановка выполняющегося экземпляра СП. Если PID = ‘’, или отсутствует, то останавливаются все активные экземпляры с именем NAME. Если PID – это список, то останавливаются все экземпляры СП, идентификаторы которых есть в списке.

PID[,]

Идентификатор процесса-оболочки, или список идентификаторов

GET

KRG_LIST

FORMAT

Формат результата, может принимать следующие значения:

- TEXT – текстовый (символьный буфер в табличной форме).

Получить список всех СП, хранящихся на диске в специальной директории сервера приложений (…\AT_AS\Applications).

ACTIVE_LIST

FORMAT

Формат результата, может принимать следующие значения:

- TEXT – текстовый (символьный буфер в табличной форме).

Получить список всех активных экземпляров серверных приложений

AT Application Server: Общие сведения

 

Пример 1:

Остановка одного экземпляра серверного приложения.

ASADMN? CMD=STOP&OBJ=APP&NAME=ASKRGDEM&PID=1234&

Данная команда говорит серверу приложений, что его служба - «Служба обработки команд» должна остановить выполняющийся экземпляр СП ASKRGDEM с PID = 1234.

Пример 2:

Остановка нескольких экземпляров серверных приложений.

ASADMN? CMD=STOP&OBJ=APP&PID=1234,235,1094&

Данная команда говорит серверу приложений, что его служба - «Служба обработки команд» должна остановить три активных экземпляра с PID=1234, PID=235 и PID=1094.

Пример 3:

Запрос списка СП, хранящихся на диске.

ASADMN? CMD=GET&OBJ=KRG_LIST&FORMAT=TEXT&

Ответ сервера:

---

Application : Modified : Size

---

ASCFRAME. dll : 25.05.2005 11:09:20 : 28672

ASKRGDEM. dll : 05.07.2005 14:52:36 : 368640

KRG001TA. dll : 27.05.2005 10:59:54 : 907776

KRG002TA. dll : 26.07.2005 12:13:46 : 1049088

---

Count : 4

---

AT Application Server: Общие сведения

 


Служба запуска приложений

 

Рис 3. Служба запуска приложений

Служба запуска приложений - это специальная служба AT Application Server, которая вызывается из клиентского потока, когда приходит запрос на запуск серверного приложения. Основными функциями «Службы запуска приложений» являются:

    Загрузка СП в память; Управление работой СП; Обработка исключительных ситуаций, которые могут возникнуть в СП; Выгрузка СП из памяти.

Для каждого экземпляра серверного приложения «Службы запуска приложений» создает новый процесс-оболочку (watk. exe), в котором он будет выполняться. Данный процесс можно снять с выполнения, если например, работающий в нем экземпляр зациклился, или «завис». Более подробно о выгрузке СП из памяти, Вы можете прочитать в разделе АДМИНИСТРИОВАНИЕ.

Для того чтобы служба запуска приложений смогла найти Ваше приложение, его необходимо скопировать в директорию сервера приложений: …\AT_AS\Applications.

Примечание: Выгрузка экземпляра СП из памяти происходит сразу, после того как он

завершит свою работу.

Что такое серверное приложение?

Серверное приложение (СП) – это программа, которая управляется сервером приложений AT Application Server и запускается им по запросу, пришедшему от клиента. СП представляет собой динамическую библиотеку (DLL) экспортирующую одну единственную функцию, имя которой совпадает с именем СП дополненного спереди символом ’_’ – нижнее подчеркивание.

Синтаксис:

_Имя( KrgCtx ) : ASINT;

Имя – имя СП, не должно превышать 8 символов.

KrgCtx – дескриптор СП, передается сервером приложений.

AT Application Server: Общие сведения

 


Функция возвращает целое значение, код завершения программы:

    = 0 – ошибок нет > 1 – код ошибки (определяется программистом).

Замечание: Если Ваше серверное приложение формирует для клиента сообщение об ошибке, то код возврата СП должен быть = 0

Замечание: По возможности старайтесь не использовать глобальных переменных в серверных приложениях. Это может привести к несогласованности данных, если, например, будут одновременно выполняться несколько экземпляров одного и того же СП!

Для создания серверных приложений в средах разработки Borland Delphi и Microsoft Visual C++, Вы можете воспользоваться каркасами, поставляемыми вместе с дистрибутивом AT Application Server.

Более подробную информацию, Вы найдете в «AT Application Server Руководство программиста». Пример СП (Visual C++) приведен в разделе ПРИЛОЖЕНИЕ B, настоящего документа.

AT Application Server: Администрирование

 


АДМИНИСТРИОВАНИЕ

Овальная выноска: СТАРТ
 

Консоль управления службами

Windows NT

 
 

Рис 4. Администрирование AT Application Server

Существует два способа управления сервером приложений AT Application Server:

Ø  Ручной.

Ø  Использование сервисной утилиты AT-AS Admin.

Подробное описание этих вариантов, приведено ниже.

Ручное управление

После установки AT Application Server, Вам необходимо настроить параметры работы сервера приложений. Для этого нужно зайти в корневую директорию AT Application Server (AT_AS) и отредактировать настроечный файл atas. ini:

AT Application Server: Администрирование

 


;----

; Параметры работы сервера приложений

;----

; Port - номер порта прослушки

; WaitClientData - время ожидания данных от клиента (сек)

; ThreadCacheSize - Количество кэшируемых потоков

; AutoRun - Автозапуск сервера (0-не стартовать, 1-стартовать)

; Tray - Иконка в tray панели (0-не показывать, 1-показать)

; SockReadTimeOut - Таймаут чтения данных из сокета (мсек).

; SockWritTimeOut - Таймаут записи данных в сокет (мсек).

; ClientDirDepth - Макс. глубина директории клиентских данных (файлов)

;

[ServerSettings]

Port=9002

WaitClientData=50

ThreadCacheSize=10

AutoRun=0

Tray=1

SockReadTimeOut=60000

SockWritTimeOut=60000

ClientDirDepth=200

;

;----

; Параметры системных журналов

;----

; MaxSize - Макс. размер одного файла сис. журнала (бт)

; ClLogMaxSz - Макс. размер файла-журнала обмена данными с клиентом (бт)

; WriteCmd - 1: записывать статистику выполнения админ. команд в журналы

; 0: не записывать

;

[Log]

MaxSize=200000

ClLogMaxSz=300000

WriteCmd=0

;

;----

; Настройка серверных приложений

;----

; MemoryLimit - Лимит на использование ОЗУ (КБ):

; 0 - неограниченно.

; RunningLimit - Лимит времени выполнения (сек):

; 0 - неограниченно.

;

[Applications]

MemoryLimit=0

RunningLimit=0

Листинг файла atas. ini

AT Application Server: Администрирование

 


Настройка параметров

Таблица 4. Параметры работы AT Application Server

Параметр

Краткое описание

Размерность

Сервер приложений

Port

Номер порта

целое

WaitClientData

Таймаут ожидания данных от клиента

секунды

ThreadCacheSize

Количество кэшируемых потоков

целое

AutoRun

Признак автозапуска

0 или 1

Tray

Показать иконку AT Application Server в области уведомлений

0 или 1

SockReadTimeOut

Таймаут чтения данных из сокета

мсек

SockWritTimeOut

Таймаут записи данных в сокет

мсек

ClientDirDepth

Макс. глубина директории клиентских данных

целое

Системные журналы

MaxSize

Размер файла системного журнала

Байт

ClLogMaxSz

Размер файла журнала обмена данными

Байт

WriteCmd

Признак журналирования административных команд

0 или 1

Серверные приложения

MemoryLimit

Лимит на использование ОЗУ

КБ

RunningLimit

Лимит времени выполнения

секунды

Port

Номер порта, который будет прослушивать диспетчер сервера приложений. Рекомендуется устанавливать данное значение > 1024.

WaitClientData

Время ожидания данных от клиента. Это количество секунд прошедших от момента подсоединения клиента к серверу приложений, до поступления запроса.

Если в течение этого времени никаких данных от клиента не получено, сервер разрывает соединение и завершает созданный для клиентского подключения поток.

ThreadCacheSize

Количество кэшируемых в памяти потоков. Данный параметр указывает серверу приложений, какое количество созданных им потоков необходимо оставлять в памяти. В этом случае, при разрыве связи с клиентом созданный поток не будет уничтожаться, а

будет помечен как «пока неиспользуемый». Не устанавливайте это значение слишком большим, поскольку хранение в памяти большого количества потоков отнимает много ресурсов у операционной системы.

AT Application Server: Администрирование

 


AutoRun

Признак автозапуска сервера приложений. Если установить значение этого признака равным 1, то AT Application Server будет автоматически стартовать после запуска операционной системы.

Tray

Показать иконку AT Application Server в области уведомлений. Если установить значение этого признака равным 1, то иконка сервера приложений будет отображаться в tray панели.

SockReadTimeOut

Таймаут операции чтения данных из сокета.

SockWritTimeOut

Таймаут операции записи данных в сокет.

ClientDirDepth

Максимальная глубина директории клиентских данных. Это максимальное количество файлов, которое может храниться в директории клиентского подключения. Значение данного параметра должно находиться в диапазоне 100..999999. Для каждого клиента, сервер приложений создает специальную директорию, в которую записываются входные/выходные данные: …AT_AS\Data\__.__.__.__ (где __.__.__.__ это IP адрес клиента). После того как размер директории превысит значение, указанное в данном параметре, будут удалены файлы с наименьшим временем создания.

MaxSize

Максимальный размер, в байтах, одного файла системного журнала. Информацию о системном журнале Вы найдете в разделе «Системные журналы».

ClLogMaxSz

Максимальный размер, в байтах, одного файла журнала обмена данными с клиентом. В этот журнал заносятся данные, которые были приняты от клиента, а так же данные, переданные клиенту сервером приложений. Более подробно о журнале обмена данными с клиентом, Вы можете прочитать в разделе «Системные журналы».

WriteCmd

Признак журналирования административных команд. Если установить значение этого признака равным 1, то результат выполнения административных команд будет записываться в системные журналы AT Application Server.

AT Application Server: Администрирование

 


MemoryLimit

Лимит на использование ОЗУ (КБ) – это максимально-допустимый порог оперативной памяти, которую может использовать один активный экземпляр СП. Если этот порог будет превышен, то экземпляр СП снимается с выполнения, а клиенту будет отправлено сообщение об ошибке. Если это значение установлено равным 0, то лимит на использование ОЗУ считается не ограниченным.

RunningLimit

Лимит времени выполнения (сек.) – это время, которое отводится одному экземпляру СП для работы. В течение этого времени экземпляр СП должен успеть отработать и передать данные клиенту, в противном случае, экземпляр останавливается, а клиенту передается сообщение об ошибке. Если это значение установлено равным 0, то лимит времени выполнения считается не ограниченным.

Запуск и остановка

Для того чтобы запустить сервер приложений вручную, необходимо сделать следующее:

Откройте консоль управления локальными службами Windows

(Windows 2000 Advanced Server: Start->Programs->Administrative Tools->Services).

AT Application Server: Администрирование

 


Найдите в списке служб - «AT Application Server», кликните на ней правой кнопкой мыши и выберите «Пуск» (Start). Если попытка запустить службу сервера приложений закончится неудачно, то на экран будет выведено сообщение, содержащее код ошибки, из-за которой не удалось стартовать AT Application Server. Описание всех кодов ошибок приведено в ПРИЛОЖЕНИЕ А.

Остановка AT Application Server производится аналогичным образом, описанным выше, только вместо «Пуск», в консоли управления локальными службами Windows, Вам необходимо выбрать «Стоп» (Stop).

Остановка активного экземпляра серверного приложения

Остановка активного экземпляра СП может понадобиться в том случае, если он зациклился, или по каким-то причинам не отвечает, что может повлечь за собой утрату системных ресурсов. Для того чтобы остановить выполняющийся экземпляр вручную, можно воспользоваться диспетчером задач Windows:

Откройте диспетчер задач (Task manager). Перейдите в закладку Процессы/Processes Найдите в списке процесс watk. exe, в котором выполняется Ваш экземпляр, это можно выяснить по глобальному идентификатору процесса (PID) в системе Windows. Нужное значение PID можно посмотреть в утилите AT-AS Admin, закладка «Приложения» - список активных экземпляров СП. Нажмите кнопку «End Process».

AT Application Server: Администрирование

 


Сервисная утилита AT-AS Admin

Утилита AT-AS Admin предоставляет удобный интерфейс для администрирования AT Application Server, позволяющий:

·  Настраивать параметры работы сервера.

·  Стартовать и останавливать сервер приложений.

·  Снимать с выполнения активные экземпляры серверных приложений.

·  Следить за производительностью сервера приложений.

·  Зарегистрировать программный продукт.

Для того чтобы запустить AT-AS Admin, необходимо выполнить: Start->Programs->AT-Software->AT Application Server->Admin.

AT Application Server: Администрирование

 

Настройка параметров работы сервера

В закладке «Настройки», Вы можете скорректировать один, или несколько параметров, которые были подробно описаны в разделе Настройка параметров, а затем нажмите кнопку «Изменить», для того чтобы сохранить их.

Замечание: когда сервер приложений стартован (online), изменить параметры нельзя!

Управление активными экземплярами серверных приложений

В закладке «Приложения» можно посмотреть список серверных приложений хранящихся на диске, а также наблюдать за выполняющимися в данный момент времени экземплярами СП.

PID

Глобальный идентификатор процесса-оболочки СП в системе Windows.

Это значение можно использовать для определения нужного процесса при его завершении через Task manager Windows.

AT Application Server: Администрирование

 

THID

Идентификатор потока, созданного для данного клиентского подключения.

SPECIMEN

Имя СП, экземпляр которого находится в памяти.

LOAD

Дата и время запуска экземпляра.

Для того чтобы остановить активный экземпляр серверного приложения необходимо сделать следующее:

Выбрать элемент из списка. Нажать кнопку «Выгрузить», после чего должно появиться сообщение:

Запуск и остановка сервера приложений

Если Вы хотите стартовать, или остановить сервер приложений AT Application Server, нажмите соответствующую кнопку: «Старт», или «Стоп». В случае возникновения ошибки, Вы увидите следующее сообщение:

Откройте системный журнал Windows: Start->Programs->Administrative Tools->Event Viewer, найдите ошибку:

AT Application Server: Администрирование

 

и кликните на ней два раза, для того чтобы посмотреть подробное описание:

AT Application Server: Администрирование

 

В данном случае не удалось стартовать сервер приложений из-за ошибки с кодом 1101. Подробное описание всех кодов ошибок Вы найдете в ПРИЛОЖЕНИЕ А.

Менеджер сервера приложений

Менеджер дает возможность оценки производительности, как всего сервера приложений, так и каждого выполняющегося экземпляра СП в отдельности. Для удобства восприятия информация отображается в графическом и цифровом виде.

Для запуска менеджера приложений необходимо в административной утилите AT-AS Admin открыть закладку «Приложения» и нажать кнопку «Менеджер».

Замечание: Открыть менеджер можно только в режиме online сервера приложений.

Производительность

Этот режим дает возможность наблюдать за производительностью сервера приложений в целом. «Монитор использования памяти» - это график, на котором отражается история использования памяти всеми активными экземплярами серверных приложений:

    Зеленая линия – используемая оперативная память ОЗУ (КБ).

AT Application Server: Администрирование

 


    Красная линия – количество используемых страниц виртуальной памяти (КБ).

«Общая статистика» отражает количество используемых системных ресурсов:

Mem Usage: оперативная память (ОЗУ). VM Size: виртуальная память. Handles: количество системных дескрипторов.

Приложения

В закладке «Приложения» отображается статистика по каждому работающему экземпляру СП.

Вверху находится список всех активных, на данный момент времени, экземпляров серверных приложений, если выбрать один из элементов в этом списке, то в группе «Экземпляр СП» отобразится подробная информация о конкретном экземпляре:

    PID – Идентификатор процесса-оболочки. THID – Идентификатор потока, который был создан сервером приложений для данной сессии.

AT Application Server: Администрирование

 


    Имя СП – Имя серверного приложения. Загружен – Дата и время создания экземпляра.
    Mem Limit – Лимит на использование оперативной памяти (ОЗУ). Mem Usage - Используемая оперативная память. VM Size – Количество используемых страниц виртуальной памяти. Handles – Количество используемых дескрипторов.

Остановка экземпляров

Для того чтобы снять с выполнения один, или несколько экземпляров СП необходимо поставить напротив них галочки и нажать кнопку «Выгрузить».

ОЗУ

На графике отображается количество оперативной памяти, которая используется каждым загруженным экземпляром СП. Если в настройках сервера задан лимит на использование ОЗУ приложениями, то на графике отображается процент использования памяти от лимита.

AT Application Server: Журналы событий

 


ЖУРНАЛЫ СОБЫТИЙ

AT Application Server ведет два типа журнала:

Ø  Системный журнал.

Ø  Журнал обмена данными с клиентом.

Все файлы журналов находятся в директории Logs сервера приложений.

Системный журнал

Основной журнал событий сервера приложений AT Application Server, в котором отражаются все операции и коды их завершения.

Системный журнал – это два файла на жестком диске, которые ведутся цикличным образом, т. е. в каждый момент времени один из файлов является «текущим», а второй «архивным». Как только место в «текущем» файле заканчивается, он становится «архивным» и начинает перезаписываться второй файл.

Структура файла-журнала:

Дата/Время IP Адрес МОП СЛ СП ИД потока КТ КО Комментарий

15/04-09:20:14 10.240.2.80 LSTN 90 0000 none

15/04-09:20:14 STRT 9873245none

15/04-09:30:32 10.240.2> RUNAPP mydll0 0000 Len=2347

15/04-09:30:33 10.240.2.47 PROC RUNAPP mydll0 0000 none

15/04-09:30:38 10.240.2.47 <--- RUNAPP mydll0 0000 Len=890

15/04-09:31:32 10.240.2> RUNAPP myapp 43Len=45

15/04-09:31:38 10.240.2.50 <--- RUNAPP myapp 43Len=16

15/04-09:50:14 10.240.2.80 STOP 9873245none

*****

Дата/Время (CL14) – Время формирования записи

IP Адрес (CL15) – Адрес сервера или клиента

МОП (CL4) - Мнемокод операции

СЛ (CL9) - Имя службы сервера приложений, или порт для LSTN

СП (CL8) - Имя серверного приложения

ИД потока (CL10) – Идентификатор работающего потока

КТ (CL2) - Код типа ошибки

КО (CL4) - Код ошибки

Комментарий (CL30) - Комментарий

*****

Одна запись в системном журнале отражает завершение одной операции сервером приложений.

AT Application Server: Журналы событий

 


Дата/Время

Время создания записи в журнале.

IP Адрес

Адрес сервера, или клиента, в зависимости от операции.

МОП

Мнемокод операции.

Таблица 5. Операции AT Application Server

Мнемокод

Описание

STRT

Старт сервера приложений.

LSTN

Диспетчер сервера приложений занял порт и начал его прослушивать.

STOP

Остановка сервера приложений.

CONN

Подсоединение клиента к серверу приложений (отсутствует в AT Application Server версии старше 1.1).

--->

Получен запрос от клиента.

PROC

Запрос обработан и выполнен.

<---

Результат выполнения запроса отправлен клиенту.

DISC

Разрыв клиентского подключения (отсутствует в AT Application Server версии старше 1.1).

СЛ

Имя службы сервера приложений, заполнение этого поля зависит от операции. Для операции «LSTN» здесь указывается номер порта.

СП

Имя серверного приложения, заполняется для следующих операций:

Ø  --->

Ø  PROC

Ø  <---

ИД потока

Идентификатор потока, сформировавшего запись.

КТ

Код типа ошибки – это код описывающий ошибку в следующем поле (КО). Он может принимать следующие значения:

Ø  00 – Нет ошибки;

Ø  01 – Предупреждение (Warning);

Ø  02 – Ошибка (Error).

AT Application Server: Журналы событий

 


КО

Четырехзначный код завершения операции (0000 – ошибок нет).

Комментарий

Комментарий к операции. Если в этом поле стоит «none», значит комментарий, отсутствует.

Журнал обмена данными с клиентом

В этом журнале отражается история обмена данными клиентов с сервером приложений.

Журнал обмена данными с клиентом – это один файл на диске, который ведется линейным образом, т. е. когда он достигает своего максимального размера, данный файл перезаписывается заново.

Структура файла-журнала:

Дата/Время IP Адрес ИД потока МОП Данные

15/04-09:30:32 10.240.2> 1543.in

15/04-09:30:38 10.240.2<out

15/04-09:30:32 10.240.2> 12345.in

15/04-09:30:38 10.240.2<out

*****

Дата/Время (CL14) – Время формирования записи

IP Адрес (CL15) – Адрес клиента

МОП (CL4) - Мнемокод операции

ИД потока (CL10) – Идентификатор потока

Данные (CLN) - Данные (полученные/отданные)

*****

Сервер приложений сохраняет данные, полученные от клиента, а так же данные, сформированные для передачи клиенту, в специальных файлах, имена которых совпадают с идентификатором клиентского потока (1543.in – вх., 1543.out – вых.). Эти файлы можно найти в директории..AT_AS\Data\__.__.__.__ (где, __.__.__.__ - IP адрес клиентского подключения).

Дата/Время

Время создания записи в журнале.

IP Адрес

Адрес клиента.

ИД потока

Идентификатор потока, сформировавшего запись.

AT Application Server: Журналы событий

 


МОП

Мнемокод операции. Мнемокоды операций AT Application Server описаны в Таблице 5.

Данные

Имена файлов с данными, которые были получены от клиента, или отправлены ему сервером приложений, в зависимости от операции.

AT Application Server: Приложение А

 


ПРИЛОЖЕНИЕ А. КОДЫ ОШИБОК

Коды типа ошибки

Эти коды идентифицируют тип ошибки: операция закончилась успешно, операция закончилась с предупреждением и операция закончилась с ошибкой.

Ø  AS_RETURN_NONE (0)

Успешное завершение.

Операция, или вызов функции завершились успешно. Значение кода ошибки, в этом случае, устанавливается равным нулю.

Ø  AS_RETURN_WARN (1)

Предупреждение (Warning).

Операция, или вызов функции завершились с предупреждением. Код ошибки содержит не нулевое значение.

Ø  AS_RETURN_ERRO (2)

Ошибка (Error).

Операция, или вызов функции завершились неудачей. В этом случае код ошибки так же содержит не нулевое значение.

Коды ошибок

AS_REASON_1

Описание: Может возникнуть, при попытке стартовать сервер приложений, или при запуске сервисной утилиты AT-AS Admin. Не удалось прочитать переменную (HOME_DIR) из реестра.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить наличие в реестре Windows NT (HKEY_LOCAL_MASCHINE-SOFTWARE-AT Software-ATAS-Home) параметра HOME_DIR, он должен содержать путь к корневой папке AT Application Server.

AS_REASON_1

Описание: Может возникнуть, при попытке стартовать сервер приложений, или при запуске сервисной утилиты AT-AS Admin. Не удалось открыть ключ реестра: HKEY_LOCAL_MASCHINE-SOFTWARE-AT Software-ATAS-Home.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить наличие в реестре Windows NT ключа: HKEY_LOCAL_MASCHINE-SOFTWARE-AT Software-ATAS-Home.

AS_REASON_1

Описание: Может возникнуть, при попытке стартовать сервер приложений. Ознакомительный период закончен.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Ввести регистрационный ключ AT Application Server. Более подробную информацию Вы найдете на сайте:

http://at-software. *****/atas. html

AS_REASON_1

Описание: Может возникнуть, при попытке стартовать сервер приложений, или при запуске сервисной утилиты AT-AS Admin. Не найдена секция [ServerSettings] в настроечном файле, или она пуста.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить наличие секции [ServerSettings], в настроечном файле atas. ini.

AS_REASON_1

Описание: Может возникнуть, при попытке стартовать сервер приложений, или при запуске сервисной утилиты AT-AS Admin. Не найдена секция [Log] в настроечном файле, или она пуста.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить наличие секции [Log], в настроечном файле atas. ini.

AS_REASON_1

Описание: Может возникнуть, при попытке стартовать сервер приложений, или при запуске сервисной утилиты AT-AS Admin. Не найдена секция [Applications] в настроечном файле, или она пуста.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить наличие секции [Applications], в настроечном файле atas. ini.

AS_REASON_1

Описание: Может возникнуть, при попытке стартовать сервер приложений. Не удалось занять порт. Возможно, выбранный порт уже занят другой службой.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Измените номер порта. Не указывайте значение меньше 1024.

AS_REASON_1

Описание: Не удалось создать новый поток для клиентского подключения. Возникает, когда клиент подсоединяется к серверу приложений.

Код типа ошибки: AS_RETURN_WARN.

Действие: Нет.

AS_REASON_1

Описание: Ошибка ввода/вывода сокета. Возникает, когда клиент передает запрос

серверу приложений, или сервер приложений передает данные клиенту.

Код типа ошибки: AS_RETURN_WARN.

Действие: Увеличьте значения таймаутов по операциям чтения/записи в сокет. Параметры: SockReadTimeOut и SockWritTimeOut

AS_REASON_1

Описание: Во время остановки сервера в памяти находились работающие экземпляры СП. Может возникнуть во время выполнения операции STOP сервера приложений.

Код типа ошибки: AS_RETURN_WARN.

Действие: Нет.

AS_REASON_1

Описание: Истек Time-Out ожидания данных от клиента. Возникает, когда клиент подсоединился к серверу приложений, но данных от него не было получено сервером, за определенный промежуток времени.

Код типа ошибки: AS_RETURN_WARN.

Действие: Возможно, Вы указали слишком маленькое значение для этого параметра в настройках AT Application Server.

AS_REASON_1

Описание: Нарушена структура запроса. Возникает, когда сервер приложений разбирает запрос, пришедший от клиента.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить структуру запроса, посылаемую серверу приложений AT Application Server.

AS_REASON_1

Описание: Не удалось найти СП. Возникает, когда сервер приложений запускает приложение, по запросу клиента.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить наличие СП в директории сервера приложений Applications.

AS_REASON_1

Описание: Не удалось найти точку входа СП. Возникает, когда сервер приложений запускает приложение, по запросу клиента.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить работоспособность СП. Это можно сделать при помощи утилиты для локальной отладки - krgdebug. exe.

AS_REASON_1

Описание: Получен запрос нулевой длины, или клиент разорвал соединение с сервером.

Код типа ошибки: AS_RETURN_WARN.

Действие: Нет.

AS_REASON_1

Описание: Не найдена библиотека «aspi. dll». Может возникнуть при вызове функций ASPI. Возможно, Вы не установили библиотеку разработчика (SDK).

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить наличие библиотеки в AT_AS\Bin, и если ее там нет, то установите библиотеку разработчика с дистрибутива AT Application Server.

AS_REASON_1

Описание: Не найдена точка входа функции в библиотеке «aspi. dll». Может возникнуть при вызове функций ASPI.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить корректность библиотеки «aspi. dll». Это можно сделать при помощи демонстрационной программы cln01d. exe

AS_REASON_1

Описание: Возникла исключительная ситуация, во время работы СП.

Код типа ошибки: AS_RETURN_ERRO.


Действие: Проверить работоспособность СП. Это можно сделать при помощи утилиты для локальной отладки - krgdebug. exe.

AS_REASON_1

Описание: Неизвестная команда. Административная команда не распознана сервером приложений.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить правильность составления команды.

AS_REASON_1

Описание: Ошибка в параметрах административной команды «GET».

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить правильность составления команды.

AS_REASON_1

Описание: Ошибка в параметрах административной команды «STOP».

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить правильность составления команды.

AS_REASON_1

Описание: Экземпляр СП не активен. Возникает при попытке остановить не работающий экземпляр серверного приложения.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Нет.

AS_REASON_1

Описание: Ошибка чтения файла с запросом клиента, или файл пуст. Возникает, когда сервер пытается прочитать файл с запросом клиента.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить корректность запроса.

AS_REASON_1

Описание: Ошибка создания процесса-оболочки для СП. Возникает, когда сервер создает процесс для экземпляра СП.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Нет.

AS_REASON_1

Описание: Ошибка создания файла с запросом клиента. Возникает, когда сервер пытается создать файл с запросом клиента.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить корректность запроса.

AS_REASON_1

Описание: Ошибка чтения файла с ответом для клиента. Возникает, когда сервер пытается прочитать файл с данными для клиента.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Нет.

AS_REASON_1

Описание: Процесс-оболочка СП был завершен вручную. Возникает, когда процесс экземпляра СП завершается принудительно.

Код типа ошибки: AS_RETURN_WARN.

Действие: Обратитесь к системному администратору.

AS_REASON_1

Описание: Не удалось остановить процесс СП. Возникает, когда процесс-оболочка активного экземпляра СП завершается принудительно.

Код типа ошибки: AS_RETURN_WARN.

Действие: Обратитесь к системному администратору.

AS_REASON_1

Описание: Экземпляр серверного приложения превысил лимит на использование ОЗУ и был снят с выполнения.

Код типа ошибки: AS_RETURN_WARN.

Действие: Обратитесь к системному администратору.

AS_REASON_1

Описание: Экземпляр серверного приложения превысил лимит времени выполнения и был выгружен.

Код типа ошибки: AS_RETURN_WARN.

Действие: Обратитесь к системному администратору.

AS_REASON_1

Описание: Не определено имя СП в структуре ASKRGCTX. Возникает, когда клиент вызывает функцию ASPI и передает ей на вход эту структуру.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Записать в структуру ASKRGCTX имя СП.

AS_REASON_1

Описание: Имя СП слишком велико. Возникает, когда клиент вызывает функцию ASPI.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Имя СП не должно превышать 8-ми байт.

AS_REASON_1

Описание: Длина строки параметров для СП, слишком велика. Возникает, когда клиент вызывает функцию ASPI (только для AT Application Server v 1.0).

Код типа ошибки: AS_RETURN_ERRO.

Действие: Длина строки с параметрами не должна превышать AS_MAX_CLIENT_INBUF.

AS_REASON_1

Описание: Истек Time-Out ожидания данных от сервера. Возникает, когда клиент вызывает функцию ASPI для запуска СП на сервере приложений, а ответа от сервера, за определенный промежуток времени, не было получено.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Обратитесь к администратору AT Application Server, или увеличьте значение Time-Out.

AS_REASON_1

Описание: Буфер для принятого сообщения слишком мал. Возникает, когда клиент вызывает функцию ASPI для запуска СП на сервере приложений, а размер буфера, для записи ответа на запрос, недостаточен. В этом случае, в поле nOutReqstLen структуры ASKRGCTX, будет указана реальная длина принятого сообщения.

Код типа ошибки: AS_RETURN_WARN.

Действие: Увеличить размер буфера.

AS_REASON_1

Описание: Неправильно заполнена структура ASKRGCTX. Возникает, когда клиент вызывает функцию ASPI и передает ей на вход эту структуру.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить корректность заполнения всех полей структуры ASKRGCTX.

AS_REASON_1

Описание: Не удалось установить связь с сервером приложений. Возникает, когда клиент вызывает функцию ASPI.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить правильность заполнения структуры ASSD, или обратитесь к администратору AT Application Server.

AS_REASON_1

Описание: Неверный формат данных для TClientDataSet. Возникает, когда клиент вызывает функцию ASDL.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить данные, получаемые от СП. Это можно сделать при помощи утилиты для локальной отладки - krgdebug. exe.

AS_REASON_1

Описание: Неправильно заполнена структура ASQUERY. Возникает, когда клиент вызывает функцию ASDL и передает ей на вход эту структуру.

Код типа ошибки: AS_RETURN_WARN.

Действие: Проверить корректность заполнения всех полей структуры ASQUERY.

.

AS_REASON_1

Описание: Ошибка во время открытия TDataSet. Может возникнуть во время вызова функции ASDL из серверного приложения.

Код типа ошибки: AS_RETURN_ERRO.

Действие: Проверить работоспособность СП. Это можно сделать при помощи утилиты для локальной отладки - krgdebug. exe.

AT Application Server: Приложение B. Каркас серверного приложения

 


ПРИЛОЖЕНИЕ B. КАРКАС СЕРВЕРНОГО ПРИЛОЖЕНИЯ (Microsoft Visual C++ 6.0)

/

* ОПИСАНИЕ : Каркас для создания серверного *

* приложения AT Application Server, в среде *

* Visual C++. *

*-------*

* (c) AT-Software *

/

#include "stdafx. h"

#include <aspi. h>

BOOL APIENTRY DllMain( HANDLE hModule,

DWORD ul_reason_for_call,

LPVOID lpReserved

)

{

switch (ul_reason_for_call)

{

case DLL_PROCESS_ATTACH:

case DLL_THREAD_ATTACH:

case DLL_THREAD_DETACH:

case DLL_PROCESS_DETACH:

break;

}

return TRUE;

}

/***

_ASCFRAME - Основная функция СП

pKRGCTX: Дескриптор СП (адрес структуры ASKRGCTX), передается

сервером приложений.

***/

ASINT _ASCFRAME(PASKRGCTX pKRGCTX)

{

char szOutStr[10];

char szInParams[50000];

ASRC RC;

//Забираем входные параметры, переданные клиентом

strcpy(szInParams, pKRGCTX->pInAppParams);

/*

ВАШ КОД

*/

//Например, возвращаем клиенту строку - "HELLO".

//Хотя отдать можно было все что угодно.

strcpy(szOutStr, "HELLO");

//Служебная функция, исп. для связи с AT Application Server

ASPI_Request(pKRGCTX, szOutStr, strlen(szOutStr), &RC);

return RC. nReason;

}

Листинг файла ASCFRAME. cpp

AT-Software

 

Web: http://at-software. *****/atas. html

E-mail: *****@***ru

ТЕХНИЧЕСКАЯ ПОДДЕРЖКА

Все вопросы и замечания, отправляйте по вышеуказанному адресу. Со своей стороны гарантируем, что ни одно письмо не останется без внимания!