POLLКоманда EPP <poll> предназначена для чтения служебных сообщений, которые сервер EPP направляет клиенту. Если очередь сообщений не пуста, то успешный ответ на команду <poll op="req"> вернет первое сообщение из очереди сообщений. В ответе сервера содержится уникальный идентификатор сообщения (необходим для подтверждения получения сообщения) и счетчик, показывающий общее количество сообщений в очереди. Получив сообщение, клиент должен ответить на него явным подтверждением приема. Получив подтверждение, сервер удалит сообщение из очереди, уменьшит счетчик очереди и сделает доступным для чтения следующее сообщение в очереди (если оно существует). Изменение объектов, которые хранятся в Реестре, могут происходить:
Системные сообщения создаются для владельцев (регистраторов) объектов, в которых произошли изменения. Например, информация о поступившей команде <transfer> помещается в очередь регистратору, который уполномочен принять или отклонить запрос на трансфер. Сообщения в очереди хранятся ограниченное время, которое определяется параметрами Реестра - один месяц. Если клиенты в течение этого срока не удаляют прочитанные сообщения (подтверждают их прием), то самые старые сообщения будут автоматически удаляться. Команда <poll> имеет атрибут "op", определяющий действие, производимое командой: Пример команды <poll op="req">:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<poll op="req" />
<clTRID>USER2-1276609056</clTRID>
</command>
</epp>
Пример ответа на команду <poll op="req"> с информацией, специфической для объекта:
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<response>
<result code="1301">
<msg lang="en">Command completed successfully; ack to dequeue</msg>
</result>
<msgQ count="5" id="12345">
<qDate>2010-06-15T16:37:35+03:00</qDate>
<msg>Transfer requested.</msg>
</msgQ>
<resData>
<domain:trnData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>example2-epp.uz</domain:name>
<domain:trStatus>pending</domain:trStatus>
<domain:acID>webname.uz</domain:acID>
<domain:acDate>2010-06-22T16:37:35+03:00</domain:acDate>
<domain:exDate>2012-06-10T22:58:28+03:00</domain:exDate>
</domain:trnData>
</resData>
<trID>
<clTRID>USER2-1276609056</clTRID>
<svTRID>hst-20100615163736-665862-00002</svTRID>
</trID>
</response>
</epp>
В атрибуте "id" элемента msgQ указывается номер текущего сообщения и количество сообщений, оставшихся в очереди. Клиент должен подтвердить прием каждого ответа, чтобы исключить сообщение из очереди и сделать последующие сообщения доступными для чтения. Команда <poll> с атрибутом "ack" должна иметь дополнительный атрибут "msgID", указывающий номер сообщения в очереди. Пример подтверждения с помощью команды <poll op="ack">:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<poll op="ack" msgID="12345" />
<clTRID>USER2-1276609057</clTRID>
</command>
</epp>
Пример ответа на команду <poll op="ack"> с подтверждением чтения сообщения:
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<response>
<result code="1000">
<msg lang="en">Command completed successfully</msg>
</result>
<msgQ count="4" id="12345" />
<trID>
<clTRID>USER2-1276609057</clTRID>
<svTRID>hst-20100615163737-665862-00002</svTRID>
</trID>
</response>
</epp>
В атрибуте "id" элемента msgQ указывается номер удаленного сообщения и количество сообщений, оставшихся в очереди. Пример ответа на команду <poll op="req">, который показывает, что очередь сообщений пуста:
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<response>
<result code="1300">
<msg lang="en">Command completed successfully; no messages</msg>
</result>
<trID>
<clTRID>USER2-1276609059</clTRID>
<svTRID>hst-20100615163739-665862-00002</svTRID>
</trID>
</response>
</epp>
Коды ответов сервера на команду <poll>
1000 "Command completed successfully"
"Команда выполнена успешно"
Ответ на успешно выполненную команду <poll op="ack">
1300 "Command completed successfully; no messages"
"Команда выполнена успешно, нет сообщений"
Ответ при успешном выполнении команды <poll op="req">
при пустой очереди сообщений.
1301 "Command completed successfully; ack to dequeue"
"Команда выполнена успешно, исключение из очереди"
Ответ при успешном выполнении команды <poll op="req">,
уведомляющее, что сообщение помечено как прочитанное
и может быть удалено из очереди.
2001 "Command syntax error"
"Синтаксическая ошибка команды"
2004 "Parameter value range error"
"Ошибка в значении параметра"
Ответ при успешном выполнении команды <poll op="ack">,
уведомляющее, что сообщение с указанным номером не найдено в очереди.
|
Объекты EPPПримеры EPP командДополнительная информация |