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

Ошибка соединения с Master базой данных
http://forum.bitel.ru/viewtopic.php?f=5&t=9142
Страница 1 из 1

Автор:  mazay-d [ 10 апр 2014, 18:26 ]
Заголовок сообщения:  Ошибка соединения с Master базой данных

Может кто наведет на правильное направление....
Периодически приходит на почту сообщения c темой:
[BGRadiusDialup] Ошибка соединения с Master базой данных
Код:
ID события: db.master.connect.error
Время регистрации события: 10.04.2014 16:00:10
Хост сервера: bill.xxxxxxxx.net/127.0.0.1

Необходимо срочно восстановить соединение с Master базой.

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
        at sun.reflect.GeneratedConstructorAccessor56.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
        at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:696)
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1102)
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2336)
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
        at sun.reflect.GeneratedConstructorAccessor43.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
        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:75)
        at ru.bitel.bgbilling.server.util.DefaultServerSetup$2.makeObject(DefaultServerSetup.java:376)
        at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
        at ru.bitel.bgbilling.server.util.DatabaseConnectionPool$1.getConnection(DatabaseConnectionPool.java:30)
        at ru.bitel.bgbilling.server.util.DefaultServerSetup.getDBConnectionFromPool(DefaultServerSetup.java:572)
        at ru.bitel.common.sql.SetupConnectionSet.newMasterConnection(SetupConnectionSet.java:39)
        at ru.bitel.common.sql.ConnectionSet.getConnection(ConnectionSet.java:87)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.preprocessAccountingRequest(RadiusProcessor.java:322)
        at ru.bitel.bgbilling.modules.dialup.radius.DialUpRadiusProcessor.preprocessAccountingRequest(DialUpRadiusProcessor.java:476)
        at ru.bitel.bgbilling.modules.dialup.radius.DialUpRadiusProcessor.preprocessAccountingRequest(DialUpRadiusProcessor.java:1)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:511)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.accountingRequest(RadiusListenerWorker.java:493)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processAccountingRequest(RadiusListenerWorker.java:283)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:254)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:147)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:168)
        at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
        at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
        at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
        at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:620)
        ... 34 more

Вроде все понятно на первый взгляд, но есть маленькое но
база находится физически на другой машине, а адрес в сообщении
Хост сервера: bill.xxxxxxxx.net/127.0.0.1

Что это значит и как понимать?
Может это относится к activemq, он на этой машине
в логах mq.log:
Код:
04-10/15:17:51  INFO [EventProcessor-init] EventProcessor - Init EventProcessor MQ connection factory...
04-10/15:33:41  INFO [event-proc-p-2-t-1] StaticAddressMonitor - Killing sessions with addresses:
04-10/15:48:22  INFO [event-proc-p-2-t-1] StaticAddressMonitor - Killing sessions with addresses:
04-10/16:17:46  INFO [event-proc-p-2-t-1] StaticAddressMonitor - Killing sessions with addresses:


Кто знает куда копать, подскажите.

---------------
лиент: вер. 6.0 сборка 1313 от 10.04.2014 12:48:58
os: Windows 8; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45
Сервер: вер. 6.0 сборка 1723 от 10.04.2014 12:49:07
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45

Автор:  zavndw [ 11 апр 2014, 10:49 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

в файле radius.properties
Код:
#опции подключения к БД
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&characterEncoding=Cp1251&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false

Автор:  mazay-d [ 11 апр 2014, 11:44 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

У меня немного отличается:
Код:
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://192.168.10.5/bgbilling?useUnicode=true&characterEncoding=Cp1251&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&cachePrepStmts=true&queryTimeoutKillsConnection=true&connectTimeout=1000
db.user=xxxxxx
db.pswd=xxxxxxx
db.maxIdle=10
db.maxActive=850
db.validationTimeout=20

Автор:  zavndw [ 11 апр 2014, 12:04 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

проверьте время на машине с биллингом и базой совпадает? по ходу разсинхроризированно

Автор:  Phricker [ 11 апр 2014, 12:13 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

Либо в отчете или скрипте или еще где используется соединение со слейв базой, на которую и ругается

Автор:  zavndw [ 11 апр 2014, 12:16 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

самое интересное что видать ошибка как молния
Цитата:
0 milliseconds ago

Автор:  mazay-d [ 11 апр 2014, 12:24 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

Время секунда в секунду.
Slave не используется не в скриптах не в отчетах, (только для бэкапа ночью).
Началось или совпало с переходом с 5.1 на 6.0.
Уже не знаю куда копать.
Была мысль, что не хватает кол-ва коннектов к базе, да нет вроде хватает.
База с биллингом состыкована отдельными сетевыми по оптике "попа к попе",
ошибок на интерфейсах нет, загрузка вроде тож в норме.

А сколько один радиус может тянуть сессий pppoe?
У меня сейчас от 10000 до 13500....может здесь засада?

Автор:  zavndw [ 11 апр 2014, 12:29 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

что бы отмести все сомнения проверьте как различаются настройки подключения к базе в конфигах 5.1 и 6.0, значит что то изменилось.

Автор:  mazay-d [ 11 апр 2014, 12:58 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

Отличаются.
В инструкции по обновлению было сказано:
Код:
Установите новые версии коллекторов и RADIUS серверов произведя аналогичные старым настройки .properties файлов.
   Для .properties файлов RADIUS серверов и коллекторов установка опций производится по аналогии с опциями URL из .properties файла из новой версии!


Поэтому так и сделал....Вот как сейчас:
Код:
db.url=jdbc:mysql://192.168.10.5/bgbilling?useUnicode=true&characterEncoding=Cp1251&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&cachePrepStmts=true&queryTimeoutKillsConnection=true&connectTimeout=1000

как было:
Код:
db.url=jdbc:mysql://192.168.10.5/bgbilling?useUnicode=true&characterEncoding=Cp1251&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false

Автор:  stark [ 11 апр 2014, 15:18 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

покажите результат sql-Запроса :
Код:
 show variables like "%timeout%";

Автор:  mazay-d [ 11 апр 2014, 15:28 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

Запрос с сервера где установлен радиус:
Код:
mysql> show variables like "%timeout%";
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| connect_timeout            | 10    |
| delayed_insert_timeout     | 300   |
| innodb_lock_wait_timeout   | 120   |
| innodb_rollback_on_timeout | OFF   |
| interactive_timeout        | 28800 |
| net_read_timeout           | 30    |
| net_write_timeout          | 60    |
| slave_net_timeout          | 3600  |
| table_lock_wait_timeout    | 50    |
| wait_timeout               | 28800 |
+----------------------------+-------+
10 rows in set (0.00 sec)

Автор:  stark [ 11 апр 2014, 16:04 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

mazay-d писал(а):
Вроде все понятно на первый взгляд, но есть маленькое но
база находится физически на другой машине, а адрес в сообщении
Хост сервера: bill.xxxxxxxx.net/127.0.0.1



Я вот не понял. Вас не смущает сама ошибка о недоступности базы, но смущает сообщение "Хост сервера:" . Это не хост базы, а хост того приложения где произошла ошибка. Причем localhost этой машины ( там просто выводится то, что возвращается в java.net.InetAddress.getLocalHost().toString() ).

Автор:  zavndw [ 11 апр 2014, 17:47 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

а с того где лежит база биллинга?

Автор:  mazay-d [ 11 апр 2014, 18:08 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

stark писал(а):
mazay-d писал(а):
Вроде все понятно на первый взгляд, но есть маленькое но
база находится физически на другой машине, а адрес в сообщении
Хост сервера: bill.xxxxxxxx.net/127.0.0.1



Я вот не понял. Вас не смущает сама ошибка о недоступности базы, но смущает сообщение "Хост сервера:" . Это не хост базы, а хост того приложения где произошла ошибка. Причем localhost этой машины ( там просто выводится то, что возвращается в java.net.InetAddress.getLocalHost().toString() ).


Это я уже понял. Просто первые мысли были такие...

Автор:  mazay-d [ 11 апр 2014, 18:09 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

zavndw писал(а):
а с того где лежит база биллинга?


Код:
mysql> show variables like "%timeout%";
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| connect_timeout            | 10    |
| delayed_insert_timeout     | 300   |
| innodb_lock_wait_timeout   | 120   |
| innodb_rollback_on_timeout | OFF   |
| interactive_timeout        | 28800 |
| net_read_timeout           | 30    |
| net_write_timeout          | 60    |
| slave_net_timeout          | 3600  |
| table_lock_wait_timeout    | 50    |
| wait_timeout               | 28800 |
+----------------------------+-------+
10 rows in set (0.00 sec)


Автор:  Amir [ 11 апр 2014, 19:41 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

Попробуйте указать connectTimeout=10000 вместо текущей 1000.

Автор:  mazay-d [ 11 апр 2014, 20:40 ]
Заголовок сообщения:  Re: Ошибка соединения с Master базой данных

Amir писал(а):
Попробуйте указать connectTimeout=10000 вместо текущей 1000.


Поставил. Буду ждать.

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