forum.bitel.ru
http://forum.bitel.ru/

Ошибка в "Пролонгации подписок не в реальном времени"
http://forum.bitel.ru/viewtopic.php?f=61&t=11755
Страница 1 из 1

Автор:  maxst-net [ 01 июл 2016, 15:08 ]
Заголовок сообщения:  Ошибка в "Пролонгации подписок не в реальном времени"

В планировщике имеется задача "Пролонгация подписок не в реальном времени". При каждом запуске этой задачи в логах шедулера сыпятся следующие ошибки
Цитата:
LoggingPrintStream - Exception in thread "pool-2-thread-1"
scheduler 07-01/11:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - java.lang.NullPointerException
scheduler 07-01/11:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.modules.tv.api.server.ProductManager.productsProlongate(ProductManager.java:370)
scheduler 07-01/11:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.modules.tv.task.TvProlongationTask.executeTaskImpl(TvProlongationTask.java:113)
scheduler 07-01/11:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.modules.tv.task.TvProlongationTask.executeTask(TvProlongationTask.java:52)
scheduler 07-01/11:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:76)
scheduler 07-01/11:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
scheduler 07-01/11:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
scheduler 07-01/11:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at java.lang.Thread.run(Thread.java:745)


Что бы это могло быть?

Цитата:
Клиент: вер. 6.2.809 / 22.03.2016 17:12:01
os: Windows 8.1; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91
Сервер: вер. 6.2.1038 / 28.03.2016 19:03:40
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_77

Автор:  maxst-net [ 03 июл 2016, 13:16 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

И, соответственно, данная задача не вполняется, см.скриншот. А началось всё после обновления модуля TV до версии 6.2.221

Вложения:
prolong.png
prolong.png [ 23.16 КБ | Просмотров: 7947 ]

Автор:  Phricker [ 03 июл 2016, 15:42 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

Код модуля - 160 О_о
160 модулей О_О

Автор:  maxst-net [ 03 июл 2016, 17:20 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

Есть ли что-нибудь у кого-нибудь "по делу"?

Автор:  dimOn [ 03 июл 2016, 21:42 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

maxst-net писал(а):
А началось всё после обновления модуля TV до версии 6.2.221

Во-первых всегда показывайте весь текст из about при описании проблем.
Во-вторых, если версии клиента/сервера из первого сообщения верные, то выходит, что вы обновили модуль TV не обновляя остальную часть биллинга. Никогда так не делайте, все компоненты надо всегда обновлять целиком.
Итого: начать решение этой проблемы в любом случае надо с нормального обновления.

Автор:  maxst-net [ 04 июл 2016, 12:15 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

Цитата:
Итого: начать решение этой проблемы в любом случае надо с нормального обновления.

Правильно ли я понимаю, что нормальное обновление - это запуск ./update.sh ?

Автор:  dimOn [ 04 июл 2016, 12:44 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

да. или bginstaller update + перезагрузки приложений

Автор:  maxst-net [ 04 июл 2016, 13:41 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

А кто может доходчиво объяснить что есть "пролонгация подписок" и нужна ли она вообще? С примером по возможности.

Автор:  Amir [ 04 июл 2016, 16:55 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

По умолчанию продукты пытаются продлиться прямо в момент завершения, т.е. в реальном времени.
Это может не подойти, если используются дебетовые абонплаты и посуточное списание в модуле ТВ - в этом случае ТВ протарифицирует и начислит наработку раньше абонплат.
Поэтому в продукте в модуле можно установить продление не "в реальном времени", а "по планировщику" и продлением такого продукта будет заниматься задача планировщика.

Данная ошибка означает, скорее всего, что на договоре был активирован какой-то продукт, но потом в модуле он был удален.
SELECT * FROM inv_product as p LEFT JOIN inv_product_spec as s ON p.specId=s.id WHERE s.id IS NULL

В недавних билдах запретили удалять продукт из модуля, если он уже был активирован на договоре.
В новых билдах сделаем, чтобы в этом месте в такой же ситуации просто писал предупреждение одной строчкой.

Автор:  maxst-net [ 04 июл 2016, 20:06 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

Amir писал(а):
По умолчанию продукты пытаются продлиться прямо в момент завершения, т.е. в реальном времени.
Это может не подойти, если используются дебетовые абонплаты и посуточное списание в модуле ТВ - в этом случае ТВ протарифицирует и начислит наработку раньше абонплат.
Поэтому в продукте в модуле можно установить продление не "в реальном времени", а "по планировщику" и продлением такого продукта будет заниматься задача планировщика.

Данная ошибка означает, скорее всего, что на договоре был активирован какой-то продукт, но потом в модуле он был удален.
SELECT * FROM inv_product as p LEFT JOIN inv_product_spec as s ON p.specId=s.id WHERE s.id IS NULL

В недавних билдах запретили удалять продукт из модуля, если он уже был активирован на договоре.
В новых билдах сделаем, чтобы в этом месте в такой же ситуации просто писал предупреждение одной строчкой.


Премного благодарен. Доходчивое описание.
Ошибка побеждена. Действительно, дело было в не правильном удалении продуктов с договора.

Автор:  abu [ 02 авг 2016, 09:05 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

Появилась та же ошибка, на тестовом биллинге пробовал заводить по-разному продукты, наверное, что-то напутал, есть подозрение на то, что создавал персональные тарифные планы с модулем TV, вроде как до них все работало нормально:
Код:
08-02/11:56:06  INFO [Thread-12] RunTaskDataManager - get next tasks: new task id=1 ru.bitel.bgbilling.modules.tv.task.TvProlongationTask
08-02/11:56:06  INFO [Thread-12] TaskRunProcessor - Running Task: ru.bitel.bgbilling.modules.tv.task.TvProlongationTask
08-02/11:56:06  INFO [pool-1-thread-1] TvProlongationTask - start task id => 13 at time 02.08.2016 11
08-02/11:56:06  INFO [pool-1-thread-1] Setup - Load config for mid=10
08-02/11:56:07 ERROR [pool-1-thread-1] TvProlongationTask - java.lang.NullPointerException
08-02/11:56:07  INFO [pool-1-thread-1] TvProlongationTask - RunTask finished time=899 ms.

При этом предложенный скрипт
Цитата:
SELECT * FROM inv_product as p LEFT JOIN inv_product_spec as s ON p.specId=s.id WHERE s.id IS NULL

не отрабатывает, ругается на поле p.specid, если его поправить и запустить так:
Цитата:
SELECT * FROM inv_product as p LEFT JOIN inv_product_spec as s ON p.productspecId=s.id WHERE s.id IS NULL

то ничего не выдает.

Подскажите пожалуйста, на что еще обратить внимание, чтобы найти ошибку?

Информация о версии:

Клиент: вер. 6.2.833 / 28.07.2016 19:52:37
os: Linux; java: Java HotSpot(TM) Server VM, v.1.8.0_74
Сервер: вер. 6.2.1100 / 29.07.2016 15:30:49
os: Linux; java: Java HotSpot(TM) Client VM, v.1.8.0_74

assist: вер. 6.2.87 / 13.07.2016 17:32:04
bill: вер. 6.2.87 / 10.06.2016 13:28:18
card: вер. 6.2.39 / 26.05.2016 14:50:45
dba: вер. 6.2.163 / 02.02.2016 17:42:00
enaza: вер. 6.2.59 / 19.04.2016 21:47:47
gorod: вер. 6.2.164 / 01.03.2016 00:18:32
inet: вер. 6.2.677 / 29.07.2016 15:18:30
mps: вер. 6.2.214 / 14.07.2016 16:43:28
npay: вер. 6.2.196 / 20.07.2016 09:56:08
paylinks: вер. 6.2.31 / 02.02.2016 17:42:04
qiwi: вер. 6.2.48 / 14.07.2016 14:11:51
rentsoft: вер. 6.2.61 / 26.05.2016 18:24:51
reports: вер. 6.2.209 / 06.06.2016 12:43:49
rscm: вер. 6.2.177 / 10.06.2016 13:40:20
ru.bitel.bgbilling.plugins.cladr: вер. 6.2.119 / 02.02.2016 17:42:00
ru.bitel.bgbilling.plugins.dispatch: вер. 6.2.85 / 11.07.2016 17:32:00
trayinfo: вер. 6.2.170 / 02.02.2016 17:42:09
tv: вер. 6.2.223 / 25.07.2016 19:56:48
wellpay: вер. ?
wm: вер. 6.2.188 / 29.07.2016 16:09:59
yamoney: вер. 6.2.57 / 19.04.2016 21:47:48

Автор:  Amir [ 02 авг 2016, 15:33 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

Покажите ошибку полностью, возможно она немного другая.

Автор:  abu [ 02 авг 2016, 18:27 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

А вот вся она такая, короткая. Мб, что-нибудь настроить для более подробного логирования (не знаю, что именно)? Причем, в первый раз ошибка была подробнее, но я порылся в настройках, добавил начало периода в одном из продуктов, удалил один "подозрительный" аккаунт, и стало вот так - коротко совсем. А подробный вариант пропал после перезагрузки, не думал, что станет совсем коротко, старый лог не сохранил.

Попутно проверил персональные тарифы на старой виртуалке - все работает, дело не в них как таковых. Мб, повлиял такой порядок действий:

- завел в тарифе продукты, все с нулевой оплатой
- один из продуктов надо было сделать с не нулевой оплатой, но вспомнил я об этом уже тогда, когда принялся активировать продукты в договоре
- когда вспомнил, открыл тариф, поменял оплату на продукте, при этом на договоре оставалась открытой закладка с добавлением продукта
- потом продукт с измененной оплатой активировал на договоре, после активации за сутки сразу списалась АП (списание настраивал посуточное, такое, как обсуждали недавно)
- на следующие сутки пошла ошибка

Автор:  Amir [ 02 авг 2016, 21:38 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

Выложили обновление.

Автор:  abu [ 03 авг 2016, 06:57 ]
Заголовок сообщения:  Re: Ошибка в "Пролонгации подписок не в реальном времени"

Ошибка ушла, спасибо.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/