Если у вас есть собственный класс даты, вы должны отличить его от встроенного класса Date. то почему вы создали свой собственный. Что-то вроде ImmutableDate или BetterDate или NanoDate, даже MyDate укажет, почему у вас есть свой собственный класс даты. В этом случае они будут иметь уникальное имя.
COMMIT может завершиться ошибкой. Возможно, у вас было достаточно ресурсов для регистрации всех изменений, которые вы хотели бы внести, но не хватало ресурсов для фактической реализации этих изменений.
И это не учитывая другие причины, по которым он может потерпеть неудачу:
Само изменение может не соответствовать ограничениям базы данных.
Потеря мощности мешает завершению.
Уровень запрошенного параллелизма выбора может запретить обновление (например, курсоры обновляют измененную таблицу).
Фиксация может истечь или быть на соединении, которое истекло из-за проблем с голоданием.
Сетевое соединение между клиентом и базой данных может быть потеряно.
И все другие «простые» причины, которые не в моей голове.
Конечно.
В многопользовательской среде COMMIT может завершиться сбоем из-за изменений со стороны других пользователей (например, ваш COMMIT нарушит ссылочное ограничение при применении к текущей текущей базе данных ...).
Томас
Один очень простой и часто упускаемый из виду пункт: аппаратный сбой. Фиксация может закончиться неудачей, если основной сервер умирает. Это может быть диск, процессор, память или даже сеть.
Транзакция может потерпеть неудачу, если она никогда не получит одобрения от мастера (по ряду причин).
Независимо от того, насколько чудесно может быть спроектирована система, будет вероятность того, что коммит попадет в ситуацию, когда невозможно узнать, успешен ли он или нет. В некоторых случаях это может не иметь значения (например, если жесткий диск, содержащий базу данных, превращается в кучу шлака, может быть невозможно определить, была ли успешна фиксация до того, как это произошло, но это не имело бы никакого значения); в других случаях, однако, это может быть проблемой. Особенно в системах распределенных баз данных, если сбой соединения происходит в нужное время во время фиксации, обе стороны могут быть уверены в том, ожидает ли другая сторона фиксации или отката.