Запросить гарантии с гибернацией или пулами соединений - PullRequest
0 голосов
/ 09 мая 2018

Требуется ли для режима гибернации, использующего пулы соединений, повторные попытки для устранения периодических сбоев (например, проблем с сетью). Мой коллега считает, что это не является необходимой причиной использования пулов соединений, и что если с соединением что-то не так, то менеджер пулов соединений позаботится об этом. Я не уверен, так как соединение может быть открытым и действительным, но когда запрос сделан, он может уступить сетевым проблемам.

Поскольку то, что делается, связано с платежами, нам нужны надежные гарантии того, что обновление произойдет. Я попытался погуглить, как пулы гибернации / соединений могут справляться с периодически возникающими проблемами во время одного запроса, но не смог найти много информации.

Объект сохраняется путем вызова getSession().update(object);, где getSession() возвращает текущий сеанс Hibernate. Мы используем Hibernate v4.3 и, глядя на документацию hibernate , в ней упоминается только исключение, если экземпляр персистентности имеет такой же идентификатор.

Буду признателен, если я смогу получить ссылки на некоторые справочные материалы / документацию, которые могли бы привести меня в замешательство.

1 Ответ

0 голосов
/ 09 мая 2018

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

Пулы соединений не предоставляют такой функциональности, они облегчают повторное использование соединений. См. Этот вопрос о пуле соединений: Что такое пул баз данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...