forum.bitel.ru http://forum.bitel.ru/ |
|
Блокировка шлюза сервером при начислении абонплаты. http://forum.bitel.ru/viewtopic.php?f=7&t=3516 |
Страница 1 из 2 |
Автор: | iONE [ 01 фев 2010, 17:12 ] |
Заголовок сообщения: | Блокировка шлюза сервером при начислении абонплаты. |
Есть проблема. Второй месяц подряд идут обращения из Т.П., по поводу не верного блокирования шлюза IPN, сервером. Шлюз блокируется, даже при положительном балансе. Начисление абонплаты запускается в 05 мин. каждого часа. Проверка шлюзов IPN запускается с интервалом в 5 мин. Сервер 4.6.647 IPN 4.6.239 |
Автор: | stark [ 01 фев 2010, 18:16 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
в логах шедулера надо искать строки типа : Locking xxx balance: -188.38 limit 0.00 где xxx - номер договора |
Автор: | iONE [ 01 фев 2010, 18:36 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
02-01/01:10:05 INFO [pool-2-thread-2] IPNTestGates - Locking XXX balance: -146.23 limit 0.00 |
Автор: | iONE [ 03 фев 2010, 13:42 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Ув. разработчики, кто нибудь ответит? |
Автор: | stark [ 04 фев 2010, 16:59 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
у вас это стабильно происходит ? Попробуйте разнести подсчёт абонплаты и обсчет IPN по времени, чтобы они не пересекались . не получается это отловить |
Автор: | stark [ 04 фев 2010, 17:05 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Предлагаю установить в на таблицу contract_balance подобие вот этого тригера : http://wiki.bgbilling.ru/index.php/%D0% ... 0%B8%D0%B9 и отследить когда меняется баланс . Если ситуация повторится и баланс неожиданно временно станет отрицательыным, тогда нужны логи шедулера и сервера на момент этих изменений |
Автор: | iONE [ 04 фев 2010, 18:23 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Да регулярно, вчера ещё всплыли договоры с такой проблемой. Триггер на таблицу contract_balance поставим, но придётся ждать следующего месяца. Абоненты сидят без связи, пока сообразят обратится в ТП. |
Автор: | stark [ 04 фев 2010, 19:07 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
iONE писал(а): Да регулярно, вчера ещё всплыли договоры с такой проблемой. Триггер на таблицу contract_balance поставим, но придётся ждать следующего месяца. Абоненты сидят без связи, пока сообразят обратится в ТП. А почему ждать следующего месяца ? у вас в середине месяца такое не происходит ? |
Автор: | iONE [ 04 фев 2010, 19:37 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Ну по крайней мере ТП не обращалась с такой проблемой в середине месяца. |
Автор: | stark [ 04 фев 2010, 19:44 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
iONE писал(а): Ну по крайней мере ТП не обращалась с такой проблемой в середине месяца. мы наткнулись еще на один такой случай ..там это произошло 31-го числа |
Автор: | iONE [ 04 фев 2010, 19:54 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Триггеры на добавление, изменение таблицы contract_balance стоят, посмотрим что происходит и когда. |
Автор: | iONE [ 05 фев 2010, 13:42 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Вот такое действие, сначала INSERT с вх. ост = 0, а потом UPDATE с вх.ост=1000 - нормальное поведение? Код: select * from events_log_contract_balance where cid = 14;
+----+---------------------+--------+------+----+-----+---------+--------+--------+--------+ | id | date | event | yy | mm | cid | summa1 | summa2 | summa3 | summa4 | +----+---------------------+--------+------+----+-----+---------+--------+--------+--------+ | 62 | 2010-02-04 23:18:57 | INSERT | 2010 | 2 | 14 | 0.00 | 0.00 | 0.00 | 0.00 | | 63 | 2010-02-04 23:18:57 | UPDATE | 2010 | 2 | 14 | 1000.00 | 0.00 | 0.00 | 0.00 | +----+---------------------+--------+------+----+-----+---------+--------+--------+--------+ 2 rows in set (0.00 sec) |
Автор: | stark [ 05 фев 2010, 17:09 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
iONE писал(а): Вот такое действие, сначала INSERT с вх. ост = 0, а потом UPDATE с вх.ост=1000 - нормальное поведение? Код: select * from events_log_contract_balance where cid = 14; +----+---------------------+--------+------+----+-----+---------+--------+--------+--------+ | id | date | event | yy | mm | cid | summa1 | summa2 | summa3 | summa4 | +----+---------------------+--------+------+----+-----+---------+--------+--------+--------+ | 62 | 2010-02-04 23:18:57 | INSERT | 2010 | 2 | 14 | 0.00 | 0.00 | 0.00 | 0.00 | | 63 | 2010-02-04 23:18:57 | UPDATE | 2010 | 2 | 14 | 1000.00 | 0.00 | 0.00 | 0.00 | +----+---------------------+--------+------+----+-----+---------+--------+--------+--------+ 2 rows in set (0.00 sec) да |
Автор: | iONE [ 09 фев 2010, 20:05 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
В продолжение темы. Поступил запрос из ТП, что при положительном балансе, шлюз не перешёл из состояния "заблокирован" в состояние "закрыт". Пришлось открывать в ручную. Вот логи по этому договору, собранные триггером: Код: +-----+---------------------+--------+------+----+------+---------+--------+---------+--------+
| id | date | event | yy | mm | cid | summa1 | summa2 | summa3 | summa4 | +-----+---------------------+--------+------+----+------+---------+--------+---------+--------+ | 504 | 2010-02-09 12:00:03 | UPDATE | 2010 | 2 | 5134 | 4007.42 | 0.00 | 4300.00 | 0.00 | | 547 | 2010-02-09 16:00:03 | UPDATE | 2010 | 2 | 5134 | 4007.42 | 0.00 | 4000.00 | 0.00 | +-----+---------------------+--------+------+----+------+---------+--------+---------+--------+ 2 rows in set (0.01 sec) |
Автор: | stark [ 09 фев 2010, 20:35 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
iONE писал(а): В продолжение темы. Поступил запрос из ТП, что при положительном балансе, шлюз не перешёл из состояния "заблокирован" в состояние "закрыт". Пришлось открывать в ручную. Вот логи по этому договору, собранные триггером: Код: +-----+---------------------+--------+------+----+------+---------+--------+---------+--------+ | id | date | event | yy | mm | cid | summa1 | summa2 | summa3 | summa4 | +-----+---------------------+--------+------+----+------+---------+--------+---------+--------+ | 504 | 2010-02-09 12:00:03 | UPDATE | 2010 | 2 | 5134 | 4007.42 | 0.00 | 4300.00 | 0.00 | | 547 | 2010-02-09 16:00:03 | UPDATE | 2010 | 2 | 5134 | 4007.42 | 0.00 | 4000.00 | 0.00 | +-----+---------------------+--------+------+----+------+---------+--------+---------+--------+ 2 rows in set (0.01 sec) А это другой случай. Обратную операцию , т.е перевод из состояния открыт в состояние закрыт делает не задача проверки шлюзов . Это происходит только по приходу платежа . Но у вас приходов платежа не было . В 16:00:03 у вас уменьшилась наработка . Посмотрите какой пересчет был в это время и почему так получилось . |
Автор: | stark [ 09 фев 2010, 20:40 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
вы случайно не используете какие-нибудь скрипты для дебитовых абонплат ? |
Автор: | iONE [ 09 фев 2010, 20:45 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Да это не тот случай. Мне сообщили что был сделан перерасчёт. На сколько я понял открытие шлюза происходит по приходу платежа, а вот жёсткая блокировка разблокировка должна производится модулем автоматически в зависимости от состояния баланса. |
Автор: | stark [ 09 фев 2010, 20:48 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
iONE писал(а): Да это не тот случай. Мне сообщили что был сделан перерасчёт. На сколько я понял открытие шлюза происходит по приходу платежа, а вот жёсткая блокировка разблокировка должна делаться производится модулем автоматически в зависимости от состояния баланса. что вы понимаете под блокировкой и разблокировкой ? |
Автор: | iONE [ 09 фев 2010, 20:53 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
блокировка - состояние шлюза "Заблокирован", абонент не может сам открыть. разблокировка - состояние шлюза "Закрыт", абонент может сам открыть. |
Автор: | stark [ 09 фев 2010, 20:56 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
т.к открытие шлюза это и есть разблокировка ..вы просто разнесли эти понятия выше Нет ..автоматически(в задаче проверки шлюзов) происходит только бликировка по состоянию баланса. Обратная операция не производится |
Автор: | iONE [ 09 фев 2010, 21:00 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
т.е. состояния шлюза "Закрыт/Открыт" меняются только по событию прихода платежа? И как быть в такой ситуации? Всем в ручную после выхода из минуса или скриптом по таймеру, не по приходу платежа, "разблокировать"? |
Автор: | stark [ 10 фев 2010, 13:46 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
iONE писал(а): т.е. состояния шлюза "Закрыт/Открыт" меняются только по событию прихода платежа? не совсем . Работает так 1. задача поверки шлюзов запускается по планировщику и кроме проверки статус самих шлюзов (реальны статус шлюза на железке совпадает со статусом модуля IPN ) она перед этим еще может менять статус модуля IPN. Но меняет она его в одну сторону. Т.е если баланс стал меньше лимита , то стату шлюза меняет за заблокирован. 2. По приходу платежа(или изменения лимита ) если баланс стал больше лимита , то статус шлюза меняется на открыт. Логика тут такая . наработка обычно должна расти в результате пересчетов, а не уменьшаться, поэтому в 1-м пункте статус IPN меняется только в одну сторону . И баланс должен расти только во 2-м случае . Если это происходит по каким-то другим причинам , то это либо ошибка и надо разбираться почему наработка уменьшилась либо это какой-то специальный случай (поменяли тариф и сделали перобсчет напрмер) и в этом случае надо поменять статус шлюза вручную. iONE писал(а): И как быть в такой ситуации? Всем в ручную после выхода из минуса или скриптом по таймеру, не по приходу платежа, "разблокировать"? ну в данном случае ,это специальный случай скорее всего , конкретно на этом договоре наверное что-то сделали и должны были вручную отработать шлюз. |
Автор: | stark [ 10 фев 2010, 13:48 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
вот тут эта тема поднималась уже: viewtopic.php?f=7&t=3244 |
Автор: | iONE [ 01 ноя 2010, 20:44 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Шлюз не переходит из состояния "Заблокирован" в состояние "Открыт" по приходу платежа через модуль "карточки и удалённые платежи". Если платёж внести из клиента, то статус меняется. Сервер 5.0.768. |
Автор: | iONE [ 01 ноя 2010, 23:08 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Есть сервер 5.0.766 на нём такой проблемы не наблюдается. |
Автор: | iONE [ 02 ноя 2010, 00:27 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Обновил сервер до 5.0.778 Ситуация не изменилась, при приходе платежа шлюз IPN не меняет статус. Сейчас вышел из положения путём ручного смены статуса в базе. |
Автор: | iONE [ 02 ноя 2010, 12:23 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Так же не понятки со сменой статуса шлюза на "заблокирован" задачей IPNTestGates: Код: SELECT count(*) FROM contract c, ipn_contract_status_7 ics WHERE c.id = ics.cid AND c.status <> 0 AND ics.status = 0; +----------+ | count(*) | +----------+ | 189 | +----------+ Лог scheduler.log: Код: 11-02/09:30:07 INFO [pool-2-thread-1] IPNTestGates - Gate: X.X.0.90 : 4567 [ ??19 ] - checking end..
11-02/09:30:07 INFO [pool-2-thread-1] IPNTestGates - Gate: X.X.1.7 : 4567 [ ???????? ] - checking end.. 11-02/09:30:08 INFO [pool-2-thread-1] IPNTestGates - Gate: X.X.59.18 : 4567 [ ??????? ] - checking end.. 11-02/09:30:09 INFO [pool-2-thread-1] IPNTestGates - Locked clients: 11-02/09:30:09 INFO [pool-2-thread-1] IPNTestGates - 11-02/09:30:09 INFO [pool-2-thread-1] IPNTestGates - Task finished time=6453 ms. |
Автор: | iONE [ 02 ноя 2010, 13:13 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
Сегодня пришёл платёж от дилера и шлюз успешно сменил статус с "Заблокирован" на "Открыт". Что происходит, от чего зависит результат? Куда копать, что смотреть? |
Автор: | stark [ 02 ноя 2010, 18:48 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
iONE писал(а): Так же не понятки со сменой статуса шлюза на "заблокирован" задачей IPNTestGates: Код: SELECT count(*) FROM contract c, ipn_contract_status_7 ics WHERE c.id = ics.cid AND c.status <> 0 AND ics.status = 0; +----------+ | count(*) | +----------+ | 189 | +----------+ Лог scheduler.log: Код: 11-02/09:30:07 INFO [pool-2-thread-1] IPNTestGates - Gate: X.X.0.90 : 4567 [ ??19 ] - checking end.. 11-02/09:30:07 INFO [pool-2-thread-1] IPNTestGates - Gate: X.X.1.7 : 4567 [ ???????? ] - checking end.. 11-02/09:30:08 INFO [pool-2-thread-1] IPNTestGates - Gate: X.X.59.18 : 4567 [ ??????? ] - checking end.. 11-02/09:30:09 INFO [pool-2-thread-1] IPNTestGates - Locked clients: 11-02/09:30:09 INFO [pool-2-thread-1] IPNTestGates - 11-02/09:30:09 INFO [pool-2-thread-1] IPNTestGates - Task finished time=6453 ms. в Locked clients: выводятс те, у кого сменился статус при запуске этой задачи . Т.е баланс меньше лимита, а статус открыт . тогда меняется статус в ipn_contract_status. У вас похоже таких нет. |
Автор: | stark [ 02 ноя 2010, 18:48 ] |
Заголовок сообщения: | Re: Блокировка шлюза сервером при начислении абонплаты. |
iONE писал(а): Сегодня пришёл платёж от дилера и шлюз успешно сменил статус с "Заблокирован" на "Открыт". Что происходит, от чего зависит результат? Куда копать, что смотреть? статус договора у вас при этом какой ? |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |