SOAP-транзакция - синхронизируется ли она? - PullRequest
0 голосов
/ 08 февраля 2012

введите код. У меня есть основной вопрос относительно реализации с использованием веб-службы Axis2 и клиента Android KSOAP2.

У меня есть API сервера, который получает непросмотренные записи из таблицы Таблица: ключ, cul1..culn, culViewes - бит, если был просмотрен или нет.

Я реализовал GetUnViewedAPI следующим образом (в службе):

public int[] getUnviewed()
{
    ... getting all unviewed ids...
    ... marking them as viewed...
    ... return the unviewed ids..
}

Что, если соединение потеряно в середине (с мобильным клиентом)? Тогда не просмотренные записи не будут просматриваться ... так как были помечены как просмотренные, но результат не дошел до пользователя.

Должен ли пользователь отправлять ACK для каждого из идентификаторов (или ack для всех вместе ...)? Или же... ???? Как это обычно обрабатывается?

Йоав

1 Ответ

1 голос
/ 08 февраля 2012

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

Если вы все делаете автоматически, у вас нетидея, если пользователи действительно когда-либо видели это или получили это в этом отношении.Теоретически Soap поддерживает транзакции как часть одного из стандартов ws *, но я сомневаюсь, что это будет полезно в вашем случае использования.Я также не думаю, что ksoap2 android поддерживает их (и я владелец проекта ..)

...