Ir para conteúdo
  • 0

[SQLite] Statement is not executing


zAth

Pergunta

Então, por vezes ocorre esse erro.

 

Código

 

 

    private static Connection connection;
    public static File db;

    public static void closeConnection() {
        try {
            if(connection != null && connection.isClosed()) return;

            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void openConnection() {
        try {
            if(connection != null && !connection.isClosed()) return;

            Class.forName("org.sqlite.JDBC");
            connection = DriverManager.getConnection("jdbc:sqlite:" + db.getAbsolutePath());
        } catch (ClassNotFoundException | SQLException ex8) {
            ex8.printStackTrace();
        }
    }    

    public static void updateClan(Clan clan) {
        openConnection();
        try {
            PreparedStatement statement = connection.prepareStatement("UPDATE clans SET clanColoredTag=?, sizeLimit=?, homeLocation=?" +
                ", pvp=?, prize=?, gladWins=?, gladLosts=?, kills=?, deaths=? WHERE clanTag=?");
            statement.setString(1, clan.getColoredTag());
            statement.setInt(2, clan.getSize());
            statement.setString(3, Utils.serializeLocation(clan.getHome()));
            statement.setBoolean(4, clan.getPvp());
            statement.setInt(5, clan.getPrize());
            statement.setInt(6, clan.getGladWins());
            statement.setInt(7, clan.getGladLosts());
            statement.setInt(8, clan.getKills());
            statement.setInt(9, clan.getDeaths());
            statement.setString(10, clan.getTag());

            statement.executeUpdate();
            statement.close();
        } catch (Exception e) {
            //e.printStackTrace();
            Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Erro atualizando o clan");
            Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + clan.toString());
            Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Atualizando novamente...");
            updateClan(clan);
        } finally {
            closeConnection();
        }
    } 

 

 

 

Agora ocorre também outro erro, out of memory. Esse erro é literalmente out of memory? o.O tem 4gb e apenas eu no servidor e apenas 5 objetos sendo salvos.

 

Erros

 

 

[15:16:17 WARN]: java.sql.SQLException: statement is not executing
[15:16:17 WARN]:     at org.sqlite.Stmt.checkOpen(Stmt.java:49)
[15:16:17 WARN]:     at org.sqlite.PrepStmt.execute(PrepStmt.java:62)
[15:16:17 WARN]:     at me.zath.skyclans.utils.Sql.updateClan(Sql.java:275)
[15:16:17 WARN]:     at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]:     at java.util.HashMap$Values.forEach(Unknown Source)
[15:16:17 WARN]:     at me.zath.skyclans.controllers.ClanController$1.run(ClanController.java:166)
[15:16:17 WARN]:     at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[15:16:17 WARN]:     at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:16:17 WARN]:     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[15:16:17 WARN]:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[15:16:17 WARN]:     at java.lang.Thread.run(Unknown Source)
[15:16:17 WARN]: java.sql.SQLException: [SQLITE_MISUSE] Library used incorrectly (out of memory)
[15:16:17 WARN]:     at org.sqlite.DB.newSQLException(DB.java:383)
[15:16:17 WARN]:     at org.sqlite.DB.newSQLException(DB.java:387)
[15:16:17 WARN]:     at org.sqlite.DB.throwex(DB.java:374)
[15:16:17 WARN]:     at org.sqlite.NativeDB.prepare(Native Method)
[15:16:17 WARN]:     at org.sqlite.DB.prepare(DB.java:123)
[15:16:17 WARN]:     at org.sqlite.PrepStmt.<init>(PrepStmt.java:42)
[15:16:17 WARN]:     at org.sqlite.Conn.prepareStatement(Conn.java:404)
[15:16:17 WARN]:     at org.sqlite.Conn.prepareStatement(Conn.java:399)
[15:16:17 WARN]:     at org.sqlite.Conn.prepareStatement(Conn.java:383)
[15:16:17 WARN]:     at me.zath.skyclans.utils.Sql.updateClan(Sql.java:254)
[15:16:17 WARN]:     at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]:     at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]:     at java.util.HashMap$Values.forEach(Unknown Source)
[15:16:17 WARN]:     at me.zath.skyclans.controllers.ClanController$1.run(ClanController.java:166)
[15:16:17 WARN]:     at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[15:16:17 WARN]:     at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:16:17 WARN]:     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[15:16:17 WARN]:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[15:16:17 WARN]:     at java.lang.Thread.run(Unknown Source)

linha 254 : PreparedStatement statement = getConnection().prepareStatement ...
linha 275 : statement.execute();  

 

 

 

Esse erro não ocorre apenas nesse método, é quase em todos ( CREATE TABLE, INSERT, SELECT, UPDATE, etc ) porém é só por vezes, tem vezes que da erro e outras vezes não tem erro.

Alguém já teve esse problema, ou sabe o porquê disso estar aconteçendo?

 

Agradeço desde já :p

Editado por zAth
Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

Cara, recomendo utilizar este método para realizar updates:

public static void executarUpdate(String update) {
	try {
		connection.createStatement().execute(update);
	} catch (Exception ex) {
			ex.printStackTrace();
	}
}

Depois só ir fazendo isso:
 

executarUpdate("UPDATE clans SET clanColoredTag = '" + clan.getColoredTag() + "', "
				+ "sizeLimit = '" + clan.getSize() + "', "
				+ "homeLocation = '" + Utils.serializeLocation(clan.getHome()) + "', "
                + "pvp = '" + clan.getPvp() + "', "
                + "prize = '" + clan.getPrize() + "', "
                + "gladWins = '" + clan.getGladWins() "', "
                + "gladLosts = '" + clan.getGladLosts()) + "', "
                + "kills = '" + clan.getKills() + "', "
                + "deaths = '" + clan.getDeaths() + "' "
                + "WHERE clanTag = '" clan.getTag() + "'");

Lembrando que vai da sua escolha, espero ter ajudado :D

Link para o comentário
Compartilhar em outros sites

Tente trocar isso:

statement.executeUpdate();

por isso:

statement.execute();

Já tinha visto isso quando pesquisei no google, tentei e não resolveu.

 

 

Cara, recomendo utilizar este método para realizar updates:

public static void executarUpdate(String update) {
	try {
		connection.createStatement().execute(update);
	} catch (Exception ex) {
			ex.printStackTrace();
	}
}

Depois só ir fazendo isso:

 

executarUpdate("UPDATE clans SET clanColoredTag = '" + clan.getColoredTag() + "', "
				+ "sizeLimit = '" + clan.getSize() + "', "
				+ "homeLocation = '" + Utils.serializeLocation(clan.getHome()) + "', "
                + "pvp = '" + clan.getPvp() + "', "
                + "prize = '" + clan.getPrize() + "', "
                + "gladWins = '" + clan.getGladWins() "', "
                + "gladLosts = '" + clan.getGladLosts()) + "', "
                + "kills = '" + clan.getKills() + "', "
                + "deaths = '" + clan.getDeaths() + "' "
                + "WHERE clanTag = '" clan.getTag() + "'");

Lembrando que vai da sua escolha, espero ter ajudado :D

Iih vc até se deu ao trabalho de fazer isso :kk:

Então, fiz isso e também não resolveu :/

 

Agora occore também outro erro, out of memory. Esse erro é literalmente out of memory? o.O tem 4gb e apenas eu no servidor e apenas 5 objetos sendo salvos.

 

Erros

 

 

[15:16:17 WARN]: java.sql.SQLException: statement is not executing
[15:16:17 WARN]:        at org.sqlite.Stmt.checkOpen(Stmt.java:49)
[15:16:17 WARN]:        at org.sqlite.PrepStmt.execute(PrepStmt.java:62)
[15:16:17 WARN]:        at me.zath.skyclans.utils.Sql.updateClan(Sql.java:275)
[15:16:17 WARN]:        at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]:        at java.util.HashMap$Values.forEach(Unknown Source)
[15:16:17 WARN]:        at me.zath.skyclans.controllers.ClanController$1.run(ClanController.java:166)
[15:16:17 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[15:16:17 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:16:17 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[15:16:17 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[15:16:17 WARN]:        at java.lang.Thread.run(Unknown Source)
[15:16:17 WARN]: java.sql.SQLException: [SQLITE_MISUSE]  Library used incorrectly (out of memory)
[15:16:17 WARN]:        at org.sqlite.DB.newSQLException(DB.java:383)
[15:16:17 WARN]:        at org.sqlite.DB.newSQLException(DB.java:387)
[15:16:17 WARN]:        at org.sqlite.DB.throwex(DB.java:374)
[15:16:17 WARN]:        at org.sqlite.NativeDB.prepare(Native Method)
[15:16:17 WARN]:        at org.sqlite.DB.prepare(DB.java:123)
[15:16:17 WARN]:        at org.sqlite.PrepStmt.<init>(PrepStmt.java:42)
[15:16:17 WARN]:        at org.sqlite.Conn.prepareStatement(Conn.java:404)
[15:16:17 WARN]:        at org.sqlite.Conn.prepareStatement(Conn.java:399)
[15:16:17 WARN]:        at org.sqlite.Conn.prepareStatement(Conn.java:383)
[15:16:17 WARN]:        at me.zath.skyclans.utils.Sql.updateClan(Sql.java:254)
[15:16:17 WARN]:        at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]:        at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]:        at java.util.HashMap$Values.forEach(Unknown Source)
[15:16:17 WARN]:        at me.zath.skyclans.controllers.ClanController$1.run(ClanController.java:166)
[15:16:17 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[15:16:17 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:16:17 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[15:16:17 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[15:16:17 WARN]:        at java.lang.Thread.run(Unknown Source)

linha 254 : PreparedStatement statement = getConnection().prepareStatement ...
linha 275 : statement.execute(); 

 

 

Editado por zAth
Link para o comentário
Compartilhar em outros sites

 

 

    public static void updateClan(Clan clan) {
        openConnection();
        try {
            PreparedStatement statement = connection.createStatement().execute("UPDATE clans SET clanColoredTag=?, sizeLimit=?, homeLocation=?" +
                ", pvp=?, prize=?, gladWins=?, gladLosts=?, kills=?, deaths=? WHERE clanTag=?");
            statement.setString(1, clan.getColoredTag());
            statement.setInt(2, clan.getSize());
            statement.setString(3, Utils.serializeLocation(clan.getHome()));
            statement.setBoolean(4, clan.getPvp());
            statement.setInt(5, clan.getPrize());
            statement.setInt(6, clan.getGladWins());
            statement.setInt(7, clan.getGladLosts());
            statement.setInt(8, clan.getKills());
            statement.setInt(9, clan.getDeaths());
            statement.setString(10, clan.getTag());

            statement.executeUpdate();
            statement.close();
        } catch (Exception e) {
            //e.printStackTrace();
            Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Erro atualizando o clan");
            Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + clan.toString());
            Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Atualizando novamente...");
            updateClan(clan);
        } finally {
            closeConnection();
        }
    }  
    

 

 

Editado por iLoxt
Link para o comentário
Compartilhar em outros sites

Já tinha visto isso quando pesquisei no google, tentei e não resolveu.

 

 

Iih vc até se deu ao trabalho de fazer isso :kk:

Então, fiz isso e também não resolveu :/

 

Obs: Quando eu salvo no sql, eu faço um loop numa lista e para cada clan nessa lista, eu atualizo. E apenas ocorre esse erro quando atualiza o último clan da lista, em mais nenhum..

Agora occore também outro erro, out of memory. Esse erro é literalmente out of memory? o.O tem 4gb e apenas eu no servidor e apenas 5 objetos sendo salvos.

 

Erros

 

 

[15:16:17 WARN]: java.sql.SQLException: statement is not executing
[15:16:17 WARN]:        at org.sqlite.Stmt.checkOpen(Stmt.java:49)
[15:16:17 WARN]:        at org.sqlite.PrepStmt.execute(PrepStmt.java:62)
[15:16:17 WARN]:        at me.zath.skyclans.utils.Sql.updateClan(Sql.java:275)
[15:16:17 WARN]:        at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]:        at java.util.HashMap$Values.forEach(Unknown Source)
[15:16:17 WARN]:        at me.zath.skyclans.controllers.ClanController$1.run(ClanController.java:166)
[15:16:17 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[15:16:17 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:16:17 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[15:16:17 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[15:16:17 WARN]:        at java.lang.Thread.run(Unknown Source)
[15:16:17 WARN]: java.sql.SQLException: [SQLITE_MISUSE]  Library used incorrectly (out of memory)
[15:16:17 WARN]:        at org.sqlite.DB.newSQLException(DB.java:383)
[15:16:17 WARN]:        at org.sqlite.DB.newSQLException(DB.java:387)
[15:16:17 WARN]:        at org.sqlite.DB.throwex(DB.java:374)
[15:16:17 WARN]:        at org.sqlite.NativeDB.prepare(Native Method)
[15:16:17 WARN]:        at org.sqlite.DB.prepare(DB.java:123)
[15:16:17 WARN]:        at org.sqlite.PrepStmt.<init>(PrepStmt.java:42)
[15:16:17 WARN]:        at org.sqlite.Conn.prepareStatement(Conn.java:404)
[15:16:17 WARN]:        at org.sqlite.Conn.prepareStatement(Conn.java:399)
[15:16:17 WARN]:        at org.sqlite.Conn.prepareStatement(Conn.java:383)
[15:16:17 WARN]:        at me.zath.skyclans.utils.Sql.updateClan(Sql.java:254)
[15:16:17 WARN]:        at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]:        at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]:        at java.util.HashMap$Values.forEach(Unknown Source)
[15:16:17 WARN]:        at me.zath.skyclans.controllers.ClanController$1.run(ClanController.java:166)
[15:16:17 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[15:16:17 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:16:17 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[15:16:17 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[15:16:17 WARN]:        at java.lang.Thread.run(Unknown Source)

linha 254 : PreparedStatement statement = getConnection().prepareStatement ...
linha 275 : statement.execute(); 

 

 

Continua usando PrepareStatement é mais seguro

 

ocorreu outro erro tbm

 

Library used incorrectly (out of memory)

 

tenta isso

 

try(PreparedStatement statement = connection.prepareStatement("UPDATE clans SET clanColoredTag=?, sizeLimit=?, homeLocation=?" +
", pvp=?, prize=?, gladWins=?, gladLosts=?, kills=?, deaths=? WHERE clanTag=?")) {

statement.setString(1, clan.getColoredTag());
statement.setInt(2, clan.getSize());
statement.setString(3, Utils.serializeLocation(clan.getHome()));
statement.setBoolean(4, clan.getPvp());
statement.setInt(5, clan.getPrize());
statement.setInt(6, clan.getGladWins());
statement.setInt(7, clan.getGladLosts());
statement.setInt(8, clan.getKills());
statement.setInt(9, clan.getDeaths());
statement.setString(10, clan.getTag());

statement.executeUpdate();
} catch (Exception e) {
//e.printStackTrace();
Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Erro atualizando o clan");
Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + clan.toString());
Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Atualizando novamente...");
//updateClan(clan);
}

 

Nao fique abrindo e fechando conexao, isso laga o servidor, deixa a conexao sempre aberta com reconnect

Nao faça ele atualizar novamente, isso pode travar o servidor, vai ficar um loop infinito se por exemplo o SQL tiver corrompido e 

realmente nao conseguir atualizar

Link para o comentário
Compartilhar em outros sites

 

 

    public static void updateClan(Clan clan) {
        openConnection();
        try {
            PreparedStatement statement = connection.createStatement().execute("UPDATE clans SET clanColoredTag=?, sizeLimit=?, homeLocation=?" +
                ", pvp=?, prize=?, gladWins=?, gladLosts=?, kills=?, deaths=? WHERE clanTag=?");
            statement.setString(1, clan.getColoredTag());
            statement.setInt(2, clan.getSize());
            statement.setString(3, Utils.serializeLocation(clan.getHome()));
            statement.setBoolean(4, clan.getPvp());
            statement.setInt(5, clan.getPrize());
            statement.setInt(6, clan.getGladWins());
            statement.setInt(7, clan.getGladLosts());
            statement.setInt(8, clan.getKills());
            statement.setInt(9, clan.getDeaths());
            statement.setString(10, clan.getTag());

            statement.executeUpdate();
            statement.close();
        } catch (Exception e) {
            //e.printStackTrace();
            Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Erro atualizando o clan");
            Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + clan.toString());
            Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Atualizando novamente...");
            updateClan(clan);
        } finally {
            closeConnection();
        }
    }  
    

 

 

connection.createStatement().execute não retorna PreparedStatement, é void.. arrumei e tentei mesmo assim e não deu.

 

 

Continua usando PrepareStatement é mais seguro

 

ocorreu outro erro tbm

Library used incorrectly (out of memory)

tenta isso

try(PreparedStatement statement = connection.prepareStatement("UPDATE clans SET clanColoredTag=?, sizeLimit=?, homeLocation=?" +
", pvp=?, prize=?, gladWins=?, gladLosts=?, kills=?, deaths=? WHERE clanTag=?")) {

statement.setString(1, clan.getColoredTag());
statement.setInt(2, clan.getSize());
statement.setString(3, Utils.serializeLocation(clan.getHome()));
statement.setBoolean(4, clan.getPvp());
statement.setInt(5, clan.getPrize());
statement.setInt(6, clan.getGladWins());
statement.setInt(7, clan.getGladLosts());
statement.setInt(8, clan.getKills());
statement.setInt(9, clan.getDeaths());
statement.setString(10, clan.getTag());

statement.executeUpdate();
} catch (Exception e) {
//e.printStackTrace();
Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Erro atualizando o clan");
Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + clan.toString());
Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Atualizando novamente...");
//updateClan(clan);
}

Nao fique abrindo e fechando conexao, isso laga o servidor, deixa a conexao sempre aberta com reconnect

Nao faça ele atualizar novamente, isso pode travar o servidor, vai ficar um loop infinito se por exemplo o SQL tiver corrompido e 

realmente nao conseguir atualizar

Como assim reconnect?

Sobre o loop infinito, já fiz gambiarra para testar se isso realmente aconteçia, apenas enche a consola de erros durante uns 5segundos mas depois para porém com apenas eu no servidor e uns 3 objetos sendo salvos, se tivesse mais provavelmente iria travar e crashar mas acho que seria o melhor caso o sql realmente corrompesse.

Editado por zAth
Link para o comentário
Compartilhar em outros sites

connection.createStatement().execute não retorna PreparedStatement, é void.. arrumei e tentei mesmo assim e não deu.

 

 

Como assim reconnect?

Se ta usando Sqlite kkkk

deixa quieto, isso é no caso de MySQL

Mas nao precisa ficar iniciando conexao, deixa conexao aberta, para o java nao ter que pegar informações toda hora que entrar no arquivo, isso é trabalhoso.

Link para o comentário
Compartilhar em outros sites

Se ta usando Sqlite kkkk

deixa quieto, isso é no caso de MySQL

Mas nao precisa ficar iniciando conexao, deixa conexao aberta, para o java nao ter que pegar informações toda hora que entrar no arquivo, isso é trabalhoso.

Vou tentar deixar a conexão aberta então.

 

Pesquisei aqui e encontrei várias situações parecidas porém a host deles tinha 16gb logo esse erro não está relacionada à quantidade de memória, encontrei também issues no github com este erro e os autores responderam que não sabem o porquê já que eles têm a opção de usar MySQL ativada. E nenhuma solução encontrei :doh:

Então eu acho que é mesmo do SQLite que é uma bosta.

 

@Edit

Pesquisei um pouco mais aqui sobre dicas de sqlite, muitas delas falaram para deixar a conexão aberta.

Fiz isso e realmente não deu mais nenhum erro (out of memory), porém será que irá ter mau desempenho se eu deixar 10 conexões abertas? ( irei ter 10 +- plugins usando sqlite, agora tenho 4 )

Editado por zAth
Link para o comentário
Compartilhar em outros sites

Vou tentar deixar a conexão aberta então.

 

Pesquisei aqui e encontrei várias situações parecidas porém a host deles tinha 16gb logo esse erro não está relacionada à quantidade de memória, encontrei também issues no github com este erro e os autores responderam que não sabem o porquê já que eles têm a opção de usar MySQL ativada. E nenhuma solução encontrei :doh:

Então eu acho que é mesmo do SQLite que é uma bosta.

 

@Edit

Pesquisei um pouco mais aqui sobre dicas de sqlite, muitas delas falaram para deixar a conexão aberta.

Fiz isso e realmente não deu mais nenhum erro (out of memory), porém será que irá ter mau desempenho se eu deixar 10 conexões abertas? ( irei ter 10 +- plugins usando sqlite, agora tenho 4 )

Pode chegar a dar umas travada quando for dar update, mas creio que não irá lagar não.

Link para o comentário
Compartilhar em outros sites

Se ta usando Sqlite kkkk

deixa quieto, isso é no caso de MySQL

Mas nao precisa ficar iniciando conexao, deixa conexao aberta, para o java nao ter que pegar informações toda hora que entrar no arquivo, isso é trabalhoso.

E como seria essa parte do auto reconnect do MySQL?...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...