BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 22 июн 2025, 03:35

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
СообщениеДобавлено: 24 янв 2011, 08:45 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Решили ребутнуть сервер со slave-базой, в результате сервер биллинга просто повис.

Выдаёт кучу соответствующих ошибок:
java.net.NoRouteToHostException: No route to host
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

После рестарта сервера биллинга он заработал, но с тормозами, пока не поднялся slave.

Вопрос к разработчикам: как правильно в рабочем режиме выключать slave? Сначала гасить mysql, потом ждать определенное время?
И почему сервер виснет при недоступности слейва?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 янв 2011, 09:18 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
он виснет потому что пытается достучаться до него, у меня та же проблема была.
а что значит выключить слейв?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 янв 2011, 10:06 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Физически вырубить хост :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 янв 2011, 10:11 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
я как делал - вырубал в конфигах биллинга все что связано со слейвом и ребутал это все, потом физически вырубал. :)

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 янв 2011, 11:06 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Нет, просто физически ребутал.
Как бы ожидалось, что при недоступности слейва биллинг просто перейдет на основную базу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 янв 2011, 11:08 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
не отрабатывает конфиг о том что при не доступности отключать слейв?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 янв 2011, 12:00 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Отрабатывает, письма шлёт. Но висит при этом. Видимо при недоступности хоста каждый вызов getDBSlaveConnectionFromPool() выполняется довольно долго. Но это так, моя версия.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 янв 2011, 12:47 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
ненене, я говорю про то что он должен отключать слейв при недоступности

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 янв 2011, 12:59 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Цитата:
ID события: db.slave.connect.error
Время регистрации события: 24.01.2011 10:23:37

Ошибка соединения с Slave базой данных: null.
Вместо соединения с данной базой было использовано соединение с Master базой.
Необходимо срочно восстановить соединение с Slave базой null.

java.lang.NullPointerException
at ru.bitel.bgbilling.server.util.DefaultServerSetup.getDBSlaveConnectionFromPool(DefaultServerSetup.java:566)
at ru.bitel.bgbilling.server.util.DefaultServerSetup.getDBSlaveConnectionFromPool(DefaultServerSetup.java:510)
at bitel.billing.server.admin.eventbus.BillingEventBus$ListenerThread.run(BillingEventBus.java:188)


Цитата:
ID события: db.slave.connect.error
Время регистрации события: 24.01.2011 10:23:03

Ошибка соединения с Slave базой данных: 1.
Необходимо срочно восстановить соединение с Slave базой 1.

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: java.net.NoRouteToHostException: No route to host

STACKTRACE:

java.net.SocketException: java.net.NoRouteToHostException: No route to host
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2641)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:94)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:300)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:816)
at ru.bitel.bgbilling.server.util.DefaultServerSetup.getSlaveConnectionFromPool(DefaultServerSetup.java:768)
at ru.bitel.bgbilling.kernel.admin.server.errorlog.DatabaseCheckTask.checkForDisable(DatabaseCheckTask.java:103)
at ru.bitel.bgbilling.kernel.admin.server.errorlog.DatabaseCheckTask.doTask(DatabaseCheckTask.java:23)
at bitel.billing.server.admin.errorlog.AlarmSender.run(AlarmSender.java:238)


** END NESTED EXCEPTION **



Last packet sent to the server was 0 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2707)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:94)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:300)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:816)
at ru.bitel.bgbilling.server.util.DefaultServerSetup.getSlaveConnectionFromPool(DefaultServerSetup.java:768)
at ru.bitel.bgbilling.kernel.admin.server.errorlog.DatabaseCheckTask.checkForDisable(DatabaseCheckTask.java:103)
at ru.bitel.bgbilling.kernel.admin.server.errorlog.DatabaseCheckTask.doTask(DatabaseCheckTask.java:23)
at bitel.billing.server.admin.errorlog.AlarmSender.run(AlarmSender.java:238)



Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 янв 2011, 13:03 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Там если уже есть соединение созданное с БД в пуле, то при отваливании MySQL и вызове этого коннекта повисает на тестовом запросе SELECT 1.
Возможно, нет в Java возможности распознать, что коннект TCP закрыт с другой стороны.. Или в драйвере это не предусмотрено.
Решили проблему установкой для тестового запроса таймаута на выполнение и + опции коннекта &queryTimeoutKillsConnection=true
Т.е. если по таймауту не отвечает коннект, то соединение считается неактивным. И коннект возвращается как null с подхватом мастер - БД.
Только:
1) это сделали только для 5.2 пока.
2) нужно будет обновить версию MySQL.
В ближайшее время тогда постараемся портировать на 5.1.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 янв 2011, 13:45 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Ок, спасибо.


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Обновления выложены. Нужно поставить update_lib для BGBIllingServer, чтобы обновилась библиотека mysql.jar.
В прочих приложениях можно обновить её вручную.
И в URL подключения к БД везде нужно выставить опцию queryTimeoutKillsConnection=true.


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

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


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

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


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

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