BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
СообщениеДобавлено: 22 июн 2015, 18:57 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
Необходимо получить суммарную наработку за временной интервал, как на скриншоте во вложении.
Пробую так:
Код:
   Preferences prefs = new Preferences();
   Period period = new Period();
   Calendar datecal = Calendar.getInstance();
   datecal.set(Calendar.DAY_OF_MONTH, Calendar.getInstance().getActualMinimum(Calendar.DAY_OF_MONTH));
   period.setDateFrom(datecal.getTime());
   period.setDateTo(new Date());

   VoiceIpReportUtils viru = new VoiceIpReportUtils(con, VOICEIP_MID, prefs);
   
   try {
      viru.addLoginsAmounts(period, 404, (Element)null, "voiceip", "");
   } catch (SQLException e) {
   
      System.out.println(e.getMessage());
   }

Вылазит Null pointer exception, скорее всего из-за третьего параметра в addLoginsAmounts.
Что нужно передавать в этом Element? Есть где-нибудь рабочий пример?


Вложения:
voiceip-наработка.png
voiceip-наработка.png [ 21.1 КБ | Просмотров: 6004 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 июн 2015, 19:00 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
вы бы показали чтоли exception со стеком. В этом параметре передается фильтер, можно туда передать пустую строку.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 июн 2015, 19:24 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
stark писал(а):
вы бы показали чтоли exception со стеком. В этом параметре передается фильтер, можно туда передать пустую строку.

Код:
ava.lang.NullPointerException    at bitel.billing.server.voiceip.bean.VoiceIpReportUtils.addLoginsAmounts(VoiceIpReportUtils.java:92)    at ru.xxxtelecom.global.schedulerBase.execute(schedulerBase.java:120)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:606)    at ru.bitel.bgbilling.kernel.dynamic.server.DynamicCodeServiceImpl.run(DynamicCodeServiceImpl.java:329)    at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:606)    at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:101)    at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke0(AbstractJaxWsHandler.java:195)    at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.access$0(AbstractJaxWsHandler.java:169)    at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$1.run(AbstractJaxWsHandler.java:242)    at java.security.AccessController.doPrivileged(Native Method)    at javax.security.auth.Subject.doAs(Subject.java:415)    at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:236)    at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.invoke(JaxWsHandler.java:315)    at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:335)    at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150)    at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261)    at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)    at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)    at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)    at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)    at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)    at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314)    at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608)    at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259)    at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162)    at ru.bitel.bgbilling.kernel.container.ws.server.JaxWSAdapter.handle(JaxWSAdapter.java:288)    at bitel.billing.server.Executer.doPost(Unknown Source)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)    at java.lang.Thread.run(Thread.java:745)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 июн 2015, 20:43 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
Попробовал через getSessionsColSumTimeTinTout:
Код:
try {
   viru.getSessionsColSumTimeTinTout(215, period, "");
} catch (SQLException e) {
   // TODO: handle exception
   System.out.println(e.getMessage());
}

В исключении падает SQL-ошибка:
Код:
Unknown column 'input_octets' in 'field list'


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2015, 14:25 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
у вас какая версия ? покажите содержимое "О программе" из клиента.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2015, 14:27 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Tau писал(а):
Необходимо получить суммарную наработку за временной интервал, как на скриншоте во вложении.
Пробую так:
Код:
      viru.addLoginsAmounts(period, 404, (Element)null, "voiceip", "");



У вас падает потому что вы туда null передаете. Вместо
Код:
Element data


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2015, 14:29 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Tau писал(а):
В исключении падает SQL-ошибка:
Код:
Unknown column 'input_octets' in 'field list'


Тут опять лучше ошибку со всем стеком.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2015, 15:20 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
stark писал(а):
Tau писал(а):
Необходимо получить суммарную наработку за временной интервал, как на скриншоте во вложении.
У вас падает потому что вы туда null передаете. Вместо
Код:
Element data

Что нужно передавать в этом Element? Есть где-нибудь рабочий пример?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2015, 15:23 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
stark писал(а):
Tau писал(а):
В исключении падает SQL-ошибка:
Код:
Unknown column 'input_octets' in 'field list'


Тут опять лучше ошибку со всем стеком.

Это всё, что вернул getMessage().


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 июн 2015, 17:38 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
Получится что-либо разъяснить по проблеме?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 июн 2015, 18:53 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Tau писал(а):
stark писал(а):
Tau писал(а):
Необходимо получить суммарную наработку за временной интервал, как на скриншоте во вложении.
У вас падает потому что вы туда null передаете. Вместо
Код:
Element data

Что нужно передавать в этом Element? Есть где-нибудь рабочий пример?


Код:
Document doc = XMLUtils.newDocument();
final Element rootNode = XMLUtils.createElement( doc, "data" );


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 июн 2015, 18:54 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Tau писал(а):
stark писал(а):
Tau писал(а):
В исключении падает SQL-ошибка:
Код:
Unknown column 'input_octets' in 'field list'


Тут опять лучше ошибку со всем стеком.

Это всё, что вернул getMessage().


В логах сервера ошибки не было ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2015, 14:17 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
stark писал(а):
Tau писал(а):
stark писал(а):
Tau писал(а):
В исключении падает SQL-ошибка:
Код:
Unknown column 'input_octets' in 'field list'


Тут опять лучше ошибку со всем стеком.

Это всё, что вернул getMessage().


В логах сервера ошибки не было ?

В логах ошибок не было.

Вот что идет в MySQL:
Код:
        0x0030:  d2d1 08ca cf00 0000 0353 454c 4543 5420  .........SELECT.
        0x0040:  2043 4f55 4e54 2869 6429 2c20 5355 4d28  .COUNT(id),.SUM(
        0x0050:  7365 7373 696f 6e5f 636f 7374 292c 2053  session_cost),.S
        0x0060:  554d 2873 6573 7369 6f6e 5f74 696d 6529  UM(session_time)
        0x0070:  2c20 5355 4d28 696e 7075 745f 6f63 7465  ,.SUM(input_octe
        0x0080:  7473 292c 2053 554d 286f 7574 7075 745f  ts),.SUM(output_
        0x0090:  6f63 7465 7473 2920 4652 4f4d 206c 6f67  octets).FROM.log
        0x00a0:  5f73 6573 7369 6f6e 5f33 5f32 3031 3530  _session_3_20150
        0x00b0:  3620 5748 4552 4520 6c69 643d 3130 3920  6.WHERE.lid=109.
        0x00c0:  414e 4420 4441 594f 464d 4f4e 5448 2820  AND.DAYOFMONTH(.
        0x00d0:  7365 7373 696f 6e5f 7374 6172 7420 293e  session_start.)>
        0x00e0:  3d31 2020 414e 4420 4441 594f 464d 4f4e  =1..AND.DAYOFMON
        0x00f0:  5448 2820 7365 7373 696f 6e5f 7374 6172  TH(.session_star
        0x0100:  7420 293c 3d31 20                        t.)<=1.

Ответ:
Код:
        0x0000:  4508 006e 607b 4000 4006 dc04 7f00 0001  E..n`{@.@.......
        0x0010:  7f00 0001 0cea c77f 16d2 0b6f c4d7 4795  ...........o..G.
        0x0020:  8018 0400 fe62 0000 0101 080a d2d1 08d6  .....b..........
        0x0030:  d2d1 08d6 3600 0001 ff1e 0423 3432 5332  ....6......#42S2
        0x0040:  3255 6e6b 6e6f 776e 2063 6f6c 756d 6e20  2Unknown.column.
        0x0050:  2769 6e70 7574 5f6f 6374 6574 7327 2069  'input_octets'.i
        0x0060:  6e20 2766 6965 6c64 206c 6973 7427       n.'field.list'


Запрос получается такой:
Код:
select count(id), sum(session_cost), sum(session_time), sum(input_octets), sum(output_octets) from log_session_3_201506 where ...


Но таблица не имеет поля input_octets (и output_octets):
Код:
mysql> desc log_session_3_201506;
+-------------------------+---------------+------+-----+---------+----------------+
| Field                   | Type          | Null | Key | Default | Extra          |
+-------------------------+---------------+------+-----+---------+----------------+
| id                      | int(11)       | NO   | PRI | NULL    | auto_increment |
| type                    | int(11)       | NO   |     | NULL    |                |
| nas_id                  | int(11)       | NO   | MUL | NULL    |                |
| lid                     | int(11)       | NO   | MUL | NULL    |                |
| cid                     | int(11)       | NO   | MUL | NULL    |                |
| session_start           | datetime      | NO   | MUL | NULL    |                |
| session_time            | int(11)       | NO   |     | NULL    |                |
| round_session_time      | int(11)       | NO   |     | NULL    |                |
| from_number             | char(16)      | NO   |     | NULL    |                |
| to_number               | char(16)      | NO   |     | NULL    |                |
| dest_code               | int(11)       | NO   |     | NULL    |                |
| zone                    | int(11)       | NO   | MUL | NULL    |                |
| min_cost                | float(10,5)   | NO   |     | NULL    |                |
| session_cost            | decimal(10,5) | NO   |     | NULL    |                |
| oper_id                 | int(11)       | NO   | MUL | 0       |                |
| oper_round_session_time | int(11)       | NO   |     | 0       |                |
| oper_session_cost       | decimal(10,5) | NO   |     | 0.00000 |                |
| sid                     | int(11)       | NO   |     | NULL    |                |
| h323_id                 | char(40)      | NO   |     | NULL    |                |
| dc                      | char(4)       | YES  |     | NULL    |                |
| lr                      | int(11)       | NO   |     | NULL    |                |
+-------------------------+---------------+------+-----+---------+----------------+
21 rows in set (0.00 sec)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2015, 15:22 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
вы так и не ответили какая у вас версия.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2015, 15:28 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Tau писал(а):
[

Запрос получается такой:
Код:
select count(id), sum(session_cost), sum(session_time), sum(input_octets), sum(output_octets) from log_session_3_201506 where ...




Эта таблица имеет эти поля только для модуля dialup. Для voiceip их нет. Видимо вы вызываете метод ReportUtils.getSessionsColSumTimeTinTout - он имеет смысл только для модуля dialup.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2015, 16:24 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
stark писал(а):
Tau писал(а):
[

Запрос получается такой:
Код:
select count(id), sum(session_cost), sum(session_time), sum(input_octets), sum(output_octets) from log_session_3_201506 where ...




Эта таблица имеет эти поля только для модуля dialup. Для voiceip их нет. Видимо вы вызываете метод ReportUtils.getSessionsColSumTimeTinTout - он имеет смысл только для модуля dialup.

А как быть с модулем Voice IP? "Реверс-инжиниринг" запросов к БД ясности не внёс.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2015, 17:52 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Tau писал(а):
stark писал(а):
Tau писал(а):
[

Запрос получается такой:
Код:
select count(id), sum(session_cost), sum(session_time), sum(input_octets), sum(output_octets) from log_session_3_201506 where ...




Эта таблица имеет эти поля только для модуля dialup. Для voiceip их нет. Видимо вы вызываете метод ReportUtils.getSessionsColSumTimeTinTout - он имеет смысл только для модуля dialup.

А как быть с модулем Voice IP? "Реверс-инжиниринг" запросов к БД ясности не внёс.



Метод addLoginsAmounts как раз и возвращает те, данные который у вас на скриншоте. Только они их заполняет в xml-узел, нужно их оттуда считать. Т.е передать пустой узел, потом оттуда получить.

Либо сами можете получить из таблицы log_session_{mid}_yyyyMM с группировкой по lid.


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

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


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

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


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

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