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