Впервые при переоформлении договора получили ошибку:
Код:
server 05-18/18:03:26 ERROR ["http-bio-/0.0.0.0-8080"-exec-10] CommonExecuter - ru.bitel.bgbilling.common.BGException: ru.bitel.bgbilling.common.BGException: Обнаружено пересечение периодов для contractId=246027, 133743: 18.05.2016-31.05.2016. Новый период: 0: 18.05.2016-31.05.2016
ru.bitel.bgbilling.kernel.event.EventProcessorException: ru.bitel.bgbilling.common.BGException: ru.bitel.bgbilling.common.BGException: Обнаружено пересечение периодов для contractId=246027, 133743: 18.05.2016-31.05.2016. Новый период: 0: 18.05.2016-31.05.2016
at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:245)
at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:881)
at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:850)
at bitel.billing.server.contract.action.ActionWrapContract.contractCopy(ActionWrapContract.java:250)
at bitel.billing.server.contract.action.ActionWrapContract.doAction(ActionWrapContract.java:121)
at bitel.billing.server.Executer.doModule(Unknown Source)
at bitel.billing.server.Executer$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at bitel.billing.server.Executer.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at ru.dsi.bgbilling.web.filter.XDFilter.doFilter(XDFilter.java:56)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: ru.bitel.bgbilling.common.BGException: ru.bitel.bgbilling.common.BGException: Обнаружено пересечение периодов для contractId=246027, 133743: 18.05.2016-31.05.2016. Новый период: 0: 18.05.2016-31.05.2016
at ru.bitel.bgbilling.kernel.event.processors.CommonKernelEventProcessor.notify(CommonKernelEventProcessor.java:181)
at ru.bitel.bgbilling.kernel.event.processors.CommonKernelEventProcessor.notify(CommonKernelEventProcessor.java:1)
at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:240)
... 33 more
Caused by: ru.bitel.bgbilling.common.BGException: Обнаружено пересечение периодов для contractId=246027, 133743: 18.05.2016-31.05.2016. Новый период: 0: 18.05.2016-31.05.2016
at ru.bitel.bgbilling.modules.inet.api.server.bean.InetAccountingPeriodDao.updateImpl(InetAccountingPeriodDao.java:78)
at ru.bitel.bgbilling.modules.inet.api.server.bean.InetAccountingPeriodDao.updateImpl(InetAccountingPeriodDao.java:1)
at ru.bitel.common.model.AbstractDao.update(AbstractDao.java:492)
at ru.bitel.common.model.AbstractIdDao.getAndUpdate(AbstractIdDao.java:63)
at ru.bitel.bgbilling.modules.inet.api.server.service.AccountingPeriodServiceImpl.periodUpdate(AccountingPeriodServiceImpl.java:44)
at ru.bitel.bgbilling.modules.inet.api.server.service.AccountingPeriodServiceImpl.periodWrap(AccountingPeriodServiceImpl.java:93)
at ru.bitel.bgbilling.modules.inet.api.server.Module.contractWrap(Module.java:327)
at ru.bitel.bgbilling.modules.inet.api.server.Module.moduleAction(Module.java:194)
at ru.bitel.bgbilling.kernel.event.processors.CommonKernelEventProcessor.notify(CommonKernelEventProcessor.java:160)
... 35 more
Посмотрел - у клиента было 2 одинаковых учётных периода в текущем месяце (переоформляли с 1 числа текущего месяца).
Удалил лишний - всё заработало.
Откуда они берутся?
Мне кажется, где-то есть баг и иногда одновременно активируются 2 периода.
Сделал выборки по 2 экземплярам модуля Inet:
select contractId,dateFrom,dateTo, count(*) cnt from inet_accounting_period_30 group by contractId,dateFrom,dateTo having cnt>1;
mid 30 - 141 дубль (всего 88030 периодов в таблице)
mid 28 - 9 дублей (всего 18911 периодов в таблице)