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

Account пытается обработать контракты, которых нет
http://forum.bitel.ru/viewtopic.php?f=44&t=9834
Страница 1 из 1

Автор:  oldb0y [ 14 окт 2014, 13:46 ]
Заголовок сообщения:  Account пытается обработать контракты, которых нет

Обработчик пытается обработать договора, которых нет. Не могу понять откуда он берет эти ID контратов. Где могут еще хранится ID договоров???
Код:
connection 10-14/13:25:55 ERROR [sa-p-9-t-2] InetServRuntimeMap - Contract not found with id=47 but inetServ exist
connection 10-14/13:25:55 ERROR [sa-p-9-t-2] ServiceActivatorDeviceWorker - Device:9 - null
java.lang.NullPointerException
   at ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServModifyEvent.toSaEvent(InetSaServModifyEvent.java:243)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doTask(ServiceActivatorDeviceWorker.java:349)
   at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.internalDoTaskImpl(AsyncEventWorker.java:211)
   at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.notify(AsyncEventWorker.java:201)
   at ru.bitel.bgbilling.kernel.event.AcknowledgeConsumer.onMessage0(AcknowledgeConsumer.java:83)
   at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.internalDoTask(AsyncEventWorker.java:176)
   at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.doTasks(AsyncEventWorker.java:109)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runWorker(ServiceActivatorDeviceWorker.java:239)
   at ru.bitel.bgbilling.kernel.event.EventWorker.internalRunWorker(EventWorker.java:139)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runImpl(ServiceActivatorDeviceWorker.java:145)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
   at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
   at java.lang.Thread.run(Thread.java:619)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)


Вот результат выборки MySQL-запроса таблицы сервисов:
Код:
mysql> select id,contractId from inet_serv_1;
+----+------------+
| id | contractId |
+----+------------+
|  3 |          3 |
|  4 |          4 |
|  9 |         10 |
| 10 |         11 |
| 11 |         13 |
| 12 |         14 |
| 13 |         15 |
| 14 |         16 |
| 15 |         17 |
| 16 |         18 |
| 17 |         19 |
| 18 |         20 |
| 19 |         21 |
| 20 |         22 |
| 33 |         24 |
| 21 |         25 |
| 22 |         29 |
| 23 |         30 |
| 24 |         31 |
| 25 |         32 |
| 26 |         33 |
| 27 |         34 |
| 31 |         36 |
| 34 |         37 |
| 36 |         41 |
| 35 |         42 |
| 47 |         50 |
| 46 |         51 |
+----+------------+
28 rows in set (0.00 sec)

Автор:  vkulakov [ 14 окт 2014, 14:42 ]
Заголовок сообщения:  Re: Account пытается обработать контракты, которых нет

У нас такая же беда. Дело в том, что в нашей версии/сборке биллинга есть косяк с удалением договоров: когда договор удаляется, то сервисы инет от него остаются в базе. Это легко видеть, если выполнить в клиенте "Модули" -> "Инет" -> "Поиск" -> "Найти" и отсортировать по договору. Вверху списка будут сервисы без договоров. Чтобы очищать такие сервисы я писал отдельный скрипт...

Автор:  vkulakov [ 14 окт 2014, 14:43 ]
Заголовок сообщения:  Re: Account пытается обработать контракты, которых нет

Вот моя тема: viewtopic.php?f=44&t=7913

Автор:  Amir [ 14 окт 2014, 14:44 ]
Заголовок сообщения:  Re: Account пытается обработать контракты, которых нет

Какая версия/билд?
Скоре всего ругается так, потому что этот сервис действительно был и остался еще в кэше.
А вот почему пытается обработать задание по этому сервису - не понятно.
Возможно что этот сервис удалили не так давно, задание по какой-то причине не выполнилось и все еще пытается выполнить.
Через какое-то время должен прекратить пытаться. Как скоро - зависит от билда, на последних - быстрее.
Возможно что удаляли договор не совсем корректно или при вызове обработчика активации на удаление сервиса происходила ошибка.

Автор:  barguzin2 [ 14 окт 2014, 14:49 ]
Заголовок сообщения:  Re: Account пытается обработать контракты, которых нет

прежде чем удалять договор, нужно закрыть его по статусу и периоду. и еще желательно подержать его некоторое время для истории. а то мало ли чего.

Автор:  oldb0y [ 14 окт 2014, 16:08 ]
Заголовок сообщения:  Re: Account пытается обработать контракты, которых нет

Вопрос решен.

Спасибо за ответы, и прошу не удалять тему.

По какой-то причине, access-сервер не выгружался из памяти (это стало понятно, когда изменения времени повторения в планировщике ни к чему не привело).

Помогла физическая перегрузка сервера.

Автор:  barguzin2 [ 14 окт 2014, 18:08 ]
Заголовок сообщения:  Re: Account пытается обработать контракты, которых нет

радикально.... можно же просто прибить access через kill -9, а не ребутить весь сервер.

Автор:  skyb [ 15 окт 2014, 03:56 ]
Заголовок сообщения:  Re: Account пытается обработать контракты, которых нет

договора вообще лучше не удалять, а закрывать

Автор:  stark [ 15 окт 2014, 11:37 ]
Заголовок сообщения:  Re: Account пытается обработать контракты, которых нет

vkulakov писал(а):
Вот моя тема: viewtopic.php?f=44&t=7913

Там же вроде исправили.

Автор:  vkulakov [ 15 окт 2014, 14:52 ]
Заголовок сообщения:  Re: Account пытается обработать контракты, которых нет

Там-то исправили, но мы-то ещё не обновились... Мало ли какая у человека сборка стоит.

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