Серверная задача Billing
Задача Billing предназначена для сбора информации, необходимой для составления счетов за использование серверов Notes. Сервер Notes помещает необходимую для этого информацию в очередь сообщений задачи Billing. Задача Billing периодически опрашивает эту очередь сообщений и заносит необходимую информацию в специальную базу данных или файл.
Классы информации, которая должна отслеживаться сервером Notes и затем протоколироваться задачей Billing, перечисляются в переменной BillingClass в файле NOTES.INI. Например, если задано
BillingClass=Session,Database,Document,Replication,Mail,Agent
то требуется отслеживать всю возможную информацию. Рассмотрим возможные классы.
· Session Отслеживаются начало и окончание каждой сессии с сервером составления счетов (сервер, на котором работает задача Billing), включая выполненные за время сессии действия, в частности, редактирование документов или репликации.
· Database Отслеживаются моменты открытия и закрытия баз на сервере составления счетов пользователями и другими серверами, а также продолжительность использования этих баз.
· Document Отслеживаются обращения (для чтения или записи) только к некоторым документам в базах данных на сервере составления счетов. Такие документы должны содержать поля с именами $ChargeRead и (или) $ChargeWrite
типа Number (Currency) со значением, по смыслу интерпретируемым как "цена обращения к документу".
· Replication
Отслеживается репликации, инициированные сервером составления счетов с другими серверами или станциями пользователей с данным сервером.
· Mail Отслеживается факты отправления почтовых сообщений с сервера составления счетов на другие серверы (включая имена отправителя и получателя).
· Agent
Отслеживается время, затраченное сервером составления отчетов на выполнение агентов.
Переменная BillingAddinRuntime=n (из файла NOTES.INI) задает количество секунд, отводимых задаче Billing на извлечение сообщений из очереди и запись информации о них в базу или файл. Значение по умолчанию 10 секунд. По истечении этого "кванта времени" задача приостанавливает свою работу, даже если в очереди остались необработанные сообщения.
Переменная BillingAddinWakeup=n
(из файла NOTES.INI) задает интервал в секундах, с которым задача Billing повторят процесс извлечения сообщений из очереди и записи информации о них в базу или файл. Значение по умолчанию 60 секунд. Естественно, что значение переменной BillingAddinWakeup должно быть больше, чем значение переменной BillingAddinRuntime.
Задача Billing заносит необходимую информацию в специальную базу данных или файл, в зависимости от того, что вы укажите в качестве значения переменной BillingAddinOutput в файле NOTES.INI. Если BillingAddinOutput=1, информация записывается в базу данных BILLING.NSF, если BillingAddinOutput=8 - в "двоичный" файл BILLING.NBF, если BillingAddinOutput=9 - одновременно и в базу BILLING.NSF, и в файл BILLING.NBF.


Рис. 11.18 База данных BILLING.NSF - информация о почтовых сообщениях, переданных сервером
Файл BILLING.NBF так же автоматически создается, если при запуске задача Billing обнаруживает его отсутствие. Это не текстовый, а "записеориентированный" файл относительно несложной структуры. Каждая его запись содержит свою длину, тип записи и соответствующую типу информацию. Администраторы, заинтересованные в специфических способах представления содержащейся в файле информации, могут разработать для этого собственные программы.