BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 04:04

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Обнаружил ошибку с платежами
СообщениеДобавлено: 17 фев 2017, 21:17 
Не в сети

Зарегистрирован: 17 сен 2014, 10:57
Сообщения: 10
Карма: 0
Доброго времени суток.

Внедряю биллинг, испытываю разные сценарии работы под свои нужды и наткнулся на такую особенность работы системы:
1. Делаю любой платеж для клиента.
2. Удаляю платеж.
3. Штатно перезагружаю сервер со всеми необходимыми server_stop.sh, service mysqld stop и тому подобное.
4. После запуска системы тому же клиенту делаю новый платеж.
5. Удаляю его и получаю ошибку "ru.bitel.bgbilling.common.BGException: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '4' for key 'PRIMARY'"

Проверяю таблицы contract_payment & contract_payment_deleted.
Вижу в contract_payment_deleted платеж, удаленный в пункте 2. У него ID=4
В contract_payment вижу платеж, созданный в пункте 4, у него тоже ID=4.
Естественно - конфликт при удалении.

Очищаю contract_payment_deleted. Убираю последний платеж из contract_payment.
Повторяю сценарий - аналогичная картина.

Снова очистка.
Пробую сценатрий не с 1 платежем, а с несколькими. Несколько завел, потом все удалил.
Та же катрина - конфликт.

Снова очистка.
Повторяю без перезагрузки сервера - все работает как нужно.

Поскольку поле ID автоинкрементное, то виноват скорее всего mysql, который забывает в момент перезагрузки что там были записи с большим ID.
Но может ID платежа в contract_payment нужно дополнительно контролировать?
Возможно возникновение подобных ошибок и в других подсистемах при похожем сценарии.

Да, забыл совсем.
Клиент: вер. 7.0.867 / 23.01.2017 13:35:02
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_112
Сервер: вер. 7.0.1182 / 27.01.2017 17:01:29
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_40
bill: вер. 7.0.111 / 09.12.2016 13:27:55
mariadb-server-5.5.47-1.el7_2.x86_64


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обнаружил ошибку с платежами
СообщениеДобавлено: 18 фев 2017, 20:21 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
это известная и документированная фича мускуля и иннодб - при старте он пересчитывает значение текущего автоинкремента

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обнаружил ошибку с платежами
СообщениеДобавлено: 19 фев 2017, 22:41 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
Надо поменять тип индекса у таблицы contract_payment_deleted.
Исправим...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.108s | 24 Queries | GZIP : On ]