SQL Error: 90098

Alex Po

Member
Здравствуйте.
Уже не первый раз появляется ошибка SQL.
wcs_manager.mv.db в процессе работы flashphoner постоянно растет и ошибка появляется, когда его размер переваливает за 300М
Лечится путем восстановления wcs_manager.mv.db из бэкапа и перезапуском flashphoner
Лог:
10:00:30,004 WARN SqlExceptionHelper - RMI TCP Connection(15952)-127.0.0.1 SQL Error: 90098, SQLState: 90098
10:00:30,004 ERROR SqlExceptionHelper - RMI TCP Connection(15952)-127.0.0.1 The database has been closed [90098-184]
10:00:30,005 ERROR ansactionInterceptor - RMI TCP Connection(15952)-127.0.0.1 Application exception overridden by rollback exception
Почему база растет и почему возникает с ней проблема, и как избежать этой ситуации?
В данный момент используем FlashphonerWebCallServer-5.0.2414
 

Max

Administrator
Staff member
Добрый день.
Проблема со встроенной базой данных H2.
Чтобы ее устранить, нужно перейти на базу данных MySQL
Инструкция в аттаче.
Эту инструкцию и работу с mysql мы также проверяем у себя. Как проверим, отпишем о результатах.
 

Attachments

Alex Po

Member
А все-таки почему она растет? У меня при прошлом падении она на 500М раздулась.
 

Max

Administrator
Staff member
Можно посмотреть что внутри и какие таблицы занимают место:
Code:
java -cp h2*.jar org.h2.tools.Shell
jdbc:h2:/usr/local/FlashphonerWebCallServer/database/wcs_manager
SQL:
Code:
show tables;
 

Alex Po

Member
Я перевел flashphoner на MySQL server, буду мониторить и посмотрю, что там пишется так усиленно.
файла h2*.jar в директории flashphoner нет. Где его искать?
 

Max

Administrator
Staff member
Надо распаковать архив wcs_manager-1.0.jar
Внутри него lib/h2-1.x.x.jar
 

Alex Po

Member
Судя по всему постоянно растет таблица stream_info_2
Можно ли отключить запись в нее или хотя бы каким-то образом ее очищать автоматически от старых или уже ненужных записей?
Туда насколько я понимаю пишется вся информация о подключении при включении трансляции и при просмотре, причем даже неудачные попытки.
Например у меня в поле name есть повторяющееся значение 5a3a1726bb333, по этому имени клиент пытается подключиться к несуществующей трансляции.
Данные из лога:
3:19:03,209 INFO agerRemoteRmiService - RMI TCP Connection(18)-127.0.0.1 RECEIVED REST OBJECT <==
URL:http://rest.***.com/flashphoner/rest/StreamStatusEvent
OBJECT:
{
"nodeId" : "sqtBKfLSOieGn8HRrdtq44BQzd6H3kEd@2.2.2.2",
"appKey" : "defaultApp",
"sessionId" : "/1.1.1.1:34562/2.2.2.2:8443",
"mediaSessionId" : "5e304bf0-e638-11e7-b47c-b3fd7cd5c0cd",
"name" : "5a3a1726bb333",
"published" : false,
"hasVideo" : true,
"hasAudio" : true,
"status" : "FAILED",
"info" : "Session does not exist",
"record" : false,
"width" : 1280,
"height" : 0,
"bitrate" : 0,
"quality" : 0,
"mediaProvider" : "WebRTC",
"history" : false,
"publishing" : false,
"playing" : false,
"tokenview" : "",
"translationpassword" : ""
}
13:19:03,250 INFO agerRemoteRmiService - RMI TCP Connection(18)-127.0.0.1 SEND REST OBJECT ==>
URL:http://rest.***.com/flashphoner/rest/ConnectionStatusEvent
OBJECT:
{
"nodeId" : "sqtBKfLSOieGn8HRrdtq44BQzd6H3kEd@2.2.2.2",
"appKey" : "defaultApp",
"sessionId" : "/1.1.1.1:34562/2.2.2.2:8443",
"status" : "DISCONNECTED"
}
 
Last edited:

Alex Po

Member
Может ее по крону чистить или через MySQL EVENT? Но там даже дат нет - во всех полях _date стоит значение NULL, а были бы хоть какие-то даты - можно было бы старые записи удалять.
То есть мне не определить какая давность создания конкретной записи в этой таблице и нужна ли запись в данный момент вообще.
 
Last edited:

Alex Po

Member
не все так гладко с подключением к MySQL. Через разные промежутки времени после запуска flashphoner подключение к базе разрывается с ошибкой в логе:
15:25:22,219 WARN SqlExceptionHelper - RMI TCP Connection(66)-127.0.0.1 SQL Error: 0, SQLState: 08003
15:25:22,219 ERROR SqlExceptionHelper - RMI TCP Connection(66)-127.0.0.1 No operations allowed after connection closed.
15:25:22,219 ERROR ansactionInterceptor - RMI TCP Connection(66)-127.0.0.1 Application exception overridden by rollback exception
Причем у меня в wcs-manager.properties прописано -Dspring.datasource.url=jdbc:mysql://172.16.0.37/wcs
откуда берется 127.0.0.1? Почему обрывается подключение?
 

Max

Administrator
Staff member
Судя по всему постоянно растет таблица stream_info_2
Сейчас используется stream_info_3.
 

Alex Po

Member
При обновлении flashphoner таблица stream_info_3 создастся или надо на чистую базу коннект делать?
 

Max

Administrator
Staff member
При обновлении база остается старая.
База данных хранится в файлах в папке WCS_HOME/database
Поэтому старую базу можно забэкапить и перенести в другое место, просто скопировав и удалив эти файлы.
При обновлении и запуске сервера, в этом случае база создастся заново со всеми настройками по умолчанию.
 
Top