Так как поработал я много где и в разных ролях, накопился у меня пул забавных (и не очень) историй. От самой первой интересной историей в своей карьере решил поделиться.
Я работал в банке на должности сотрудника поддержки третьей линии. В трудовой было гордое слово "инженер", но по факту я с небольшой командой решал различные сложные проблемы с СУБД Oracle и WAY4.
Был вечер четверга - 16:55. Ваш скромный слуга, завершив все рабочие дела, лениво серфил по интернету, ожидая, пока основная часть работников уйдет. Я так часто делал, чтобы не стоять в очереди на выходе, а потом еще и в пробках.
Внезапно зазвонил рабочий телефон. Это было плохо. Прямо очень плохо, так как любой звонок - это проблема. А за 5 минут до окончания рабочего дня - проблема большая. Ноги мои направились к выходу, но правая рука, зараза такая, все-таки успела схватить трубку и пришлось сказать угрюмо-испуганное:
- Алло, слушаю.
- Алексей, ты еще здесь, как здорово!
- <звуки боли Алексея>
- Нам срочно нужно два списка клиентов: все, кто сегодня вносил деньги через кассу по всем филиалам и все, у кого есть задвоения по этим операциями. Мы в вее (WAY4) фильтры накидали, но баланс все равно не сходится, что-то пропустили.
- Хорошо, а что случилось то?
- Все потом, в двух словах - банк теряет деньги, а мы тут экстренно блокируем клиентов пачками.
"Штош...", - подумал я, заканчивая разговор и, включив в наушниках Hammer Fall, полез писать запросы на PL/SQL.
По итогу, вот какая оказия произошла:
- приходит Вася в отделение банка, чтобы положить на счет 200.000 рублей. Сумма не маленькая, особенно по тем временам.
- Отдает Вася деньги кассиру, ждет. Потом еще ждет. Потом еще. И еще.
- Кассир в это время пытается провести транзакцию в своей системе. Однако, система висит, кнопка нажимается, но ничего не происходит. Ну, кассир на легкой панике нажимает постоянно на кнопку. Через минут пять система отвисает, Вася уходит, кассир вытирает пот со лба.
- Вася выходит из банка, достает сигаретку и слышит упавшую смс на телефон. Смотрит в экран, а там... "Вы положили на счет такой-то 800.000р."
- Вася в шоке, телефон тоже в шоке. Докурив сигаретку и пораскинув мозгами, Вася через приложение банка переводит все 800.000р со счета на свою карту, снимает их в ближайшем банкомате и уходит в закат.
Так же поступает Петя, Коля, Наташа... ну вы поняли.
Почему не было проверки уникальности операции или почему она не сработала, для меня загадка, все-таки доступа к исходникам систем у меня не было. Суть в том, что эти подвисания на пять минут были в течение всего рабочего дня, что привело к массовым задвоениям сумм в десятках филиалов.
Конечно, банк потом блокировал счета, взыскивал средства, но всех все равно не обработать в виду огромного количества задвоенных операций. Уж не знаю, сколько банк потерял, но точно не мало.
От так вот.