Помогите много warn'ов в консоли при работе с бд

  • Автор темы Автор темы Pa4ok
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Pa4ok

Активный участник
Пользователь
Баллы
66
делаю плагин на историю ip адресов по нику и наоборот историю ников по ip адресу
все храню в бд mysql, но столкнулся с некоторыми проблемами, при любом действии с бд в консоль кидает множество варнов, даже если все делается правильно (пишет или читает в/из бд)
Код:
[19:29:53] [Server thread/WARN]: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 117 186 milliseconds ago.  The last packet sent successfully to the server was 0 milliseconds ago.
[19:29:53] [Server thread/WARN]:     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[19:29:53] [Server thread/WARN]:     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
[19:29:53] [Server thread/WARN]:     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
[19:29:53] [Server thread/WARN]:     at java.lang.reflect.Constructor.newInstance(Unknown Source)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3082)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2968)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3516)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2570)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1474)
[19:29:53] [Server thread/WARN]:     at ru.pa4ok.mysql.MySQLWorker.GetPlayerStats(MySQLWorker.java:74)
[19:29:53] [Server thread/WARN]:     at ru.pa4ok.iphistory.Events.onJoin(Events.java:18)
[19:29:53] [Server thread/WARN]:     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[19:29:53] [Server thread/WARN]:     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[19:29:53] [Server thread/WARN]:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[19:29:53] [Server thread/WARN]:     at java.lang.reflect.Method.invoke(Unknown Source)
[19:29:53] [Server thread/WARN]:     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301)
[19:29:53] [Server thread/WARN]:     at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
[19:29:53] [Server thread/WARN]:     at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502)
[19:29:53] [Server thread/WARN]:     at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487)
[19:29:53] [Server thread/WARN]:     at net.minecraft.server.v1_8_R1.PlayerList.onPlayerJoin(PlayerList.java:272)
[19:29:53] [Server thread/WARN]:     at net.minecraft.server.v1_8_R1.PlayerList.a(PlayerList.java:156)
[19:29:53] [Server thread/WARN]:     at net.minecraft.server.v1_8_R1.LoginListener.b(LoginListener.java:109)
[19:29:53] [Server thread/WARN]:     at net.minecraft.server.v1_8_R1.LoginListener.c(LoginListener.java:41)
[19:29:53] [Server thread/WARN]:     at net.minecraft.server.v1_8_R1.NetworkManager.a(NetworkManager.java:159)
[19:29:53] [Server thread/WARN]:     at net.minecraft.server.v1_8_R1.ServerConnection.c(ServerConnection.java:82)
[19:29:53] [Server thread/WARN]:     at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:800)
[19:29:53] [Server thread/WARN]:     at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:316)
[19:29:53] [Server thread/WARN]:     at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:634)
[19:29:53] [Server thread/WARN]:     at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:537)
[19:29:53] [Server thread/WARN]:     at java.lang.Thread.run(Unknown Source)
[19:29:53] [Server thread/WARN]: Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2529)
[19:29:53] [Server thread/WARN]:     at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2979)
[19:29:53] [Server thread/WARN]:     ... 28 more
для работы с бд использовал готовые классы, которые нашел в 1 из гайдов
(прикрепляю ниже)
при надобности могу скинуть весь код, напишите в ЛС
 

Вложения

  • MySQL.txt
    MySQL.txt
    1,3 КБ · Просмотры: 9
  • Database.txt
    Database.txt
    2,9 КБ · Просмотры: 7
  • null.png
    null.png
    7,7 КБ · Просмотры: 13
Последнее редактирование:
[19:29:53] [Server thread/WARN]: Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
 
Нет соединения с сервером. Думаю понятно все.
 
Нет соединения с сервером. Думаю понятно все.
он пишет в бд при этом все равно, но кидает кучу варнов в консоль
мне бы по русски да по прроще объяснить)
 
alice-facepalm.jpg
я не супер java программист, а только учусь, и не могу разобраться в тонне незнакомого кода
я попросил просто объяснить в чем проблема и как ее можно решить
 
я не супер java программист, а только учусь, и не могу разобраться в тонне незнакомого кода
я попросил просто объяснить в чем проблема и как ее можно решить
Те ссылку кинули… Ты английский не знаешь?
 
я не супер java программист, а только учусь, и не могу разобраться в тонне незнакомого кода
я попросил просто объяснить в чем проблема и как ее можно решить
Если инглиш не знаешь, сложно будет дальше подниматься, сейчас без инглиша никуда.
 
Те ссылку кинули… Ты английский не знаешь?
из того что я понял, там пишут про закрытие соединения с бд, но я не знаю почему, у меня все на том же хосте, где и бд сервера, это происходит абсолютно при каждой моей попытке взаимодействовать с бд
 
из того что я понял, там пишут про закрытие соединения с бд, но я не знаю почему, у меня все на том же хосте, где и бд сервера, это происходит абсолютно при каждой моей попытке взаимодействовать с бд
А у тебя установлены другие плагины которые юзают MySQL?
 
У тебя соединение с БД долго простаивало: "The last packet successfully received from the server was 117 186 milliseconds ago". Через определённое время бездействия MySQL закрывает соединения, условно говоря. Я думаю, это время можно настроить, но будет костыль. Дело в том, что не рекомендуется оставлять соединения "висящими" - большое количество таких соединений может снизить скорость работы БД.
Поэтому всегда рекомендуется делать один или целую группу в ограниченный промежуток времени. После этого соединение стоит закрывать и открывать только при следующей необходимости выполнить запрос(ы).
Условно говоря, игрок зашёл на сервер - загрузили все необходимые данные о нём в память при помощь 5 запросов, а соединение закрыли. Ещё один игрок - опять открываем соединение и проделываем ту же группу запросов, и так далее...
Собственно, в примере со stackoverflow соединение переоткрывается вообще при каждом запросе. Это решит твою проблему, однако, конечно, тоже не очень оптимально. В идеале нужно научиться оперировать открытием и закрытием вручную (при синхронной работе не так сложно), либо организовать менеджер для работы с БД, который будет автоматом закрывать соединение по прошествии определённого времени после последнего запроса (такой же механизм, что и со стороны MySQL сервера).
 
У тебя соединение с БД долго простаивало: "The last packet successfully received from the server was 117 186 milliseconds ago". Через определённое время бездействия MySQL закрывает соединения, условно говоря. Я думаю, это время можно настроить, но будет костыль. Дело в том, что не рекомендуется оставлять соединения "висящими" - большое количество таких соединений может снизить скорость работы БД.
Поэтому всегда рекомендуется делать один или целую группу в ограниченный промежуток времени. После этого соединение стоит закрывать и открывать только при следующей необходимости выполнить запрос(ы).
Условно говоря, игрок зашёл на сервер - загрузили все необходимые данные о нём в память при помощь 5 запросов, а соединение закрыли. Ещё один игрок - опять открываем соединение и проделываем ту же группу запросов, и так далее...
Собственно, в примере со stackoverflow соединение переоткрывается вообще при каждом запросе. Это решит твою проблему, однако, конечно, тоже не очень оптимально. В идеале нужно научиться оперировать открытием и закрытием вручную (при синхронной работе не так сложно), либо организовать менеджер для работы с БД, который будет автоматом закрывать соединение по прошествии определённого времени после последнего запроса (такой же механизм, что и со стороны MySQL сервера).
Ля мог бы просто написать юзать хикари
 
Ля мог бы просто написать юзать хикари
Я, например, вообще не знал о такой штуке. Хотя, в общем-то, мне и не надо, потому что давно всё готово.
В любом случае, ТСу, думаю, будет полезно почитать о причинах его проблемы.
Ну, а так да, можно юзать HikariCP, наверно (сам не вчитывался пока):
https://habrahabr.ru/post/269023/
 
Я, например, вообще не знал о такой штуке. Хотя, в общем-то, мне и не надо, потому что давно всё готово.
В любом случае, ТСу, думаю, будет полезно почитать о причинах его проблемы.
Ну, а так да, можно юзать HikariCP, наверно (сам не вчитывался пока):
https://habrahabr.ru/post/269023/
Так а ты че делаешь для пула конектов к бд то?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх