Чтобы уточнить, существуют ли какие-либо хорошие способы обработки запроса к удаленной службе, для которого тайм-аут на клиенте оставляет сомнительным результат выполнения запроса?
Примите следующие настройки:
thick client <--> web service <--> database
Предположим, что типичный процесс сохранения данных следующий:
- толстый клиент отправляет запрос на размещение в веб-службу
- веб-служба передает данные вбаза данных
- веб-служба возвращает успех «толстому» клиенту
Я не знаю, как справиться с ситуацией, когда между шагами 2 и 3 происходит тайм-аут на стороне клиента.В этом случае человек, сидящий перед толстым клиентом, подумает, что его запрос не удался, но на самом деле он был успешным.
Есть ли способ смягчить такую ситуацию, которая не предполагает попытки объяснитьчеловек пользуется толстым клиентом, что состояние запроса вызывает сомнения?Я не думаю, что смогу написать сообщение об ошибке, которое бы сработало.
Следующий запрос также является проблемой.Если исходный запрос должен был создать новые данные, последующий запрос может создать дубликаты данных.Если исходный запрос состоял в обновлении существующих данных, а сервер использует оптимистическую стратегию блокировки, последующий запрос вызовет еще одну ошибку.