.UA ccTLD Domain Network Information Centre

POLL

Команда EPP <poll> призначена для читання службових повідомлень, які сервер EPP направляє клієнтові.

Якщо черга повідомлень не порожня, то успішна відповідь на команду <poll op="req"> поверне перше повідомлення з черги повідомлень. У відповіді серверу міститься унікальний ідентифікатор повідомлення (необхідний для підтвердження отримання повідомлення) і лічильник, що показує загальну кількість повідомлень в черзі.

Отримавши повідомлення, клієнт повинен відповісти на нього явним підтвердженням прийому. Отримавши підтвердження, сервер видалить повідомлення з черги, зменшить лічильник черги і зробить доступним для читання наступне повідомлення в черзі (якщо воно існує).

Зміна об'єктів, які зберігаються в Реєстрі, можуть відбуватися:

  • за ініціативою спонсора об'єкту,
  • як результат виконання команд іншого клієнта,
  • у наслідок дій самого сервера.

Системні повідомлення створюються для клієнтів, що попали під дію над об'єктом. Наприклад, інформація про команду, що поступила <transfer> ставиться в чергу реєстраторові, який уповноважений прийняти або відхилювати запит на трансфер.

Повідомлення в черзі зберігаються обмежений час, який визначається параметрами Реєстру. Якщо клієнти дуже довго не видаляють прочитані повідомлення (підтверджують їх прийом), то найстаріші повідомлення автоматично видалятимуться.

Команда <poll> має атрибут "op", що визначає дію, що буде зроблена командою:
"req" - читання першого непрочитаного повідомлення з черги повідомлень;
"ack" - підтвердження прочитання повідомлення.

Приклад команди <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="http://hostmaster.ua/epp/domain-1.1">
          <domain:name>example2.epp.ua</domain:name>
          <domain:trStatus>pending</domain:trStatus>
          <domain:reID>ua.test</domain:reID>
          <domain:reDate>2010-06-15T16:37:35+03:00</domain:reDate>
          <domain:acID>ua.hostmaster</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>UA-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>UA-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>UA-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">,
	яка повідомляє, що повідомлення з вказаним номером не знайдене в черзі.