Resolvido [Erro] Database bloqueado ou não existe database

Discussão em 'Resolvidos' iniciado por WizardlyBump17, 7 Maio 2019.

  1. WizardlyBump17
    Offline

    WizardlyBump17 Membro Ativo

    Afiliado:
    11 Março 2018
    Mensagens:
    752
    Sexo:
    Masculino
    Avaliações:
    +220 / -2
    Apelido no Minecraft:
    WizardlyBump17
    Erro:
    Código (Forge Crash):

    [14:46:30] [Server thread/WARN]: java.sql.SQLException: [SQLITE_BUSY]  The database file is locked (database is locked)
    [14:46:30] [Server thread/WARN]:    at org.sqlite.DB.newSQLException(DB.java:383)
    [14:46:30] [Server thread/WARN]:    at org.sqlite.DB.newSQLException(DB.java:387)
    [14:46:30] [Server thread/WARN]:    at org.sqlite.DB.throwex(DB.java:374)
    [14:46:30] [Server thread/WARN]:    at org.sqlite.NativeDB.prepare(Native Method)
    [14:46:30] [Server thread/WARN]:    at org.sqlite.DB.prepare(DB.java:123)
    [14:46:30] [Server thread/WARN]:    at org.sqlite.PrepStmt.<init>(PrepStmt.java:42)
    [14:46:30] [Server thread/WARN]:    at org.sqlite.Conn.prepareStatement(Conn.java:404)
    [14:46:30] [Server thread/WARN]:    at org.sqlite.Conn.prepareStatement(Conn.java:399)
    [14:46:30] [Server thread/WARN]:    at org.sqlite.Conn.prepareStatement(Conn.java:383)
    [14:46:30] [Server thread/WARN]:    at tntwars.wizardlybump17.utils.SQLite.command(SQLite.java:46)
    [14:46:30] [Server thread/WARN]:    at tntwars.wizardlybump17.utils.SQLite.open(SQLite.java:24)
    [14:46:30] [Server thread/WARN]:    at tntwars.wizardlybump17.main.Main.onEnable(Main.java:26)
    [14:46:30] [Server thread/WARN]:    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)
    [14:46:30] [Server thread/WARN]:    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340)
    [14:46:30] [Server thread/WARN]:    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)
    [14:46:30] [Server thread/WARN]:    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357)
    [14:46:30] [Server thread/WARN]:    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317)
    [14:46:30] [Server thread/WARN]:    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:741)
    [14:46:30] [Server thread/WARN]:    at org.bukkit.Bukkit.reload(Bukkit.java:535)
    [14:46:30] [Server thread/WARN]:    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25)
    [14:46:30] [Server thread/WARN]:    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
    [14:46:30] [Server thread/WARN]:    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641)
    [14:46:30] [Server thread/WARN]:    at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162)
    [14:46:30] [Server thread/WARN]:    at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997)
    [14:46:30] [Server thread/WARN]:    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45)
    [14:46:30] [Server thread/WARN]:    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1)
    [14:46:30] [Server thread/WARN]:    at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13)
    [14:46:30] [Server thread/WARN]:    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    [14:46:30] [Server thread/WARN]:    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    [14:46:30] [Server thread/WARN]:    at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44)
    [14:46:30] [Server thread/WARN]:    at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715)
    [14:46:30] [Server thread/WARN]:    at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374)
    [14:46:30] [Server thread/WARN]:    at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
    [14:46:30] [Server thread/WARN]:    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
    [14:46:30] [Server thread/WARN]:    at java.lang.Thread.run(Thread.java:748)
     
    Classe SQlite
    Código (Forge Crash):

    package tntwars.wizardlybump17.utils;

    import java.io.File;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    import tntwars.wizardlybump17.main.Main;

    public class SQLite {
       
       private static Connection con;
       
       public static void open() {
         File file = new File(Main.getJavaPlugin().getDataFolder() + "/mapas.db");
         String url = "jdbc:sqlite:" + file;
         try {
           Class.forName("org.sqlite.JDBC");
           con = DriverManager.getConnection(url);
           command("CREATE DATABASE IF NOT EXISTS mapas;");
           command("CREATE TABLE IF NOT EXISTS maps (nome VARCHAR(255) PRIMARY KEY, n1x BLOB, n1y BLOB, n1z BLOB, n2x BLOB, n2y BLOB, n2z BLOB, s1x BLOB, s1y BLOB, s1z BLOB, s2x BLOB, s2y BLOB, s2z BLOB);");
         } catch (ClassNotFoundException e) {
           e.printStackTrace();
         } catch (SQLException e) {
           e.printStackTrace();
         }
       }
       
       public static void close() {
         if(con != null) {
           try {
             con.close();
           } catch (SQLException e) {
             e.printStackTrace();
           }
         }
       }
       
       public static void command(String cmd) {
         if(con != null) {
           try {
             PreparedStatement stm;
             stm = con.prepareStatement(cmd);
             stm.execute();
           } catch (SQLException e) {
             e.printStackTrace();
           }
         }
       }
       
       public static ResultSet command1(String cmd) {
         ResultSet r = null;
         if(con != null) {
           Statement stm;
           try {
             stm = con.createStatement();
             r = stm.executeQuery(cmd);
           } catch (SQLException e) {
             e.printStackTrace();
           }
         }
         return r;
       }

    }
     
    Class Main
    Código (Forge Crash):

    package tntwars.wizardlybump17.main;

    import org.bukkit.Bukkit;
    import org.bukkit.plugin.java.JavaPlugin;

    import tntwars.wizardlybump17.commands.TntWars;
    import tntwars.wizardlybump17.config.Config;
    import tntwars.wizardlybump17.events.DefSpawn;
    import tntwars.wizardlybump17.utils.SQLite;

    public class Main extends JavaPlugin {
       
       private static JavaPlugin java;
       public static JavaPlugin getJavaPlugin() {
         return java;
       }
       
       @Override
       public void onEnable() {
         java = this;
         
         onCommand();
         onEvent();
         
         Config.salasDeEspera.saveDefaultConfig();
         SQLite.open();
       }
       
       @Override
       public void onDisable() {
       }
       
       private void onCommand() {
         getCommand("tntwars").setExecutor(new TntWars());
       }
       
       private void onEvent() {
         Bukkit.getServer().getPluginManager().registerEvents(new DefSpawn(), this);
       }

    }
     

    Classe DefSpawn
    Código (Forge Crash):

    package tntwars.wizardlybump17.events;

    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;

    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockPlaceEvent;
    import org.bukkit.inventory.ItemStack;

    import tntwars.wizardlybump17.commands.TntWars;
    import tntwars.wizardlybump17.utils.SQLite;
    import tntwars.wizardlybump17.utils.Spawn;

    public class DefSpawn implements Listener {
       
       public static List<Player> lista = new ArrayList<Player>();
       
       @EventHandler
       public void defSpawn(BlockPlaceEvent e) {
         Player p = e.getPlayer();
         Block block = e.getBlock();
         if(lista.contains(p))
         if(p.getItemInHand().equals(new ItemStack(Material.GLASS))) {
           try {
             boolean existe = SQLite.command1("SELECT * FROM maps WHERE nome = '" + p.getWorld().getName() + "';").next();
             if(existe) {
               Spawn spawn = new Spawn(block.getX(), block.getY(), block.getZ());
               TntWars.mapa.setSpawn1(spawn);
               SQLite.command("UPDATE maps SET s1x '" + block.getX() + "' WHERE nome = '" + p.getWorld().getName() + "';");
               SQLite.command("UPDATE maps SET s1y '" + block.getY() + "' WHERE nome = '" + p.getWorld().getName() + "';");
               SQLite.command("UPDATE maps SET s1z '" + block.getZ() + "' WHERE nome = '" + p.getWorld().getName() + "';");
               lista.remove(p);
               p.sendMessage("§b[WTntWars] §aSpawn do time 1 setado nas coordenadas: \nX: " + block.getX() + "\nY: " + block.getY() + "\nZ: " + block.getZ());
               e.setCancelled(true);
             } else {
               e.setCancelled(true);
               p.sendMessage("§b[WTntWars] §cMapa inexistente!");
             }
           } catch (SQLException e1) {
             e1.printStackTrace();
           }
           
         }
       }
       
    }
     

    Quem puder me ajudar, pf ajude, por que meu minigame ta parado por causa desses erros
     
  2. armelin1
    Offline

    armelin1 Moderador Sênior do Fórum Equipe GameMods Moderador do Fórum Moderador do Aventura Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    5 Maio 2014
    Mensagens:
    1,895
    Sexo:
    Masculino
    Avaliações:
    +645 / -0
    Apelido no Minecraft:
    armelin1
    Feche todas as conexões antes antes de iniciar novas conexões.
     
    • Concordo Concordo x 1
  3. Gabriel8579
    Offline

    Gabriel8579 Veterano Veterano VIP Sabotador.com VIP Sabotador.com

    Afiliado:
    18 Janeiro 2016
    Mensagens:
    434
    Sexo:
    Masculino
    Avaliações:
    +250 / -1
    Apelido no Minecraft:
    Gabriel8579
    Uma dúvida, por que salvar coordenadas em binário?
     
  4. WizardlyBump17
    Offline

    WizardlyBump17 Membro Ativo

    Afiliado:
    11 Março 2018
    Mensagens:
    752
    Sexo:
    Masculino
    Avaliações:
    +220 / -2
    Apelido no Minecraft:
    WizardlyBump17
    https://www.sqlite.org/draft/datatype3.html
    --- Post duplo mesclado, 8 Maio 2019 ---
    Se eu fazer isso, vou estar trocando 6 por VI
     
  5. armelin1
    Offline

    armelin1 Moderador Sênior do Fórum Equipe GameMods Moderador do Fórum Moderador do Aventura Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    5 Maio 2014
    Mensagens:
    1,895
    Sexo:
    Masculino
    Avaliações:
    +645 / -0
    Apelido no Minecraft:
    armelin1
    Você não está fechando as conexões após os comandos.
     
  6. WizardlyBump17
    Offline

    WizardlyBump17 Membro Ativo

    Afiliado:
    11 Março 2018
    Mensagens:
    752
    Sexo:
    Masculino
    Avaliações:
    +220 / -2
    Apelido no Minecraft:
    WizardlyBump17
    Da o mesmo erro, muda nada
    --- Post duplo mesclado, 9 Maio 2019, Data da postagem original 9 Maio 2019 ---
    Hey guys, arrumei um dos erros, o unico erro q tenho agr é o "Database is locked"
    Como resolvo?
     
  7. armelin1
    Offline

    armelin1 Moderador Sênior do Fórum Equipe GameMods Moderador do Fórum Moderador do Aventura Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    5 Maio 2014
    Mensagens:
    1,895
    Sexo:
    Masculino
    Avaliações:
    +645 / -0
    Apelido no Minecraft:
    armelin1
    upload_2019-5-9_20-41-41.png
     
  8. WizardlyBump17
    Offline

    WizardlyBump17 Membro Ativo

    Afiliado:
    11 Março 2018
    Mensagens:
    752
    Sexo:
    Masculino
    Avaliações:
    +220 / -2
    Apelido no Minecraft:
    WizardlyBump17
    Desculpe, mas n sou muito bom com ingles, tem como me passar o link do site?
     
  9. Mr_Bilbis
    Offline

    Mr_Bilbis Líder dos Ajudantes, de Publicidade e do Discord Equipe GameMods Criador de Conteúdo Ajudante do Servidor Moderador do Discord Construtor Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    23 Novembro 2014
    Mensagens:
    2,904
    Avaliações:
    +2,258 / -1
    Apelido no Minecraft:
    Mr_Bilbis
    Saber bem inglês é um bom passo para aprender a programar corretamente.
    Link do site: https://www.sqlite.org/rescode.html
     
    • Concordo Concordo x 1

Compartilhe esta Página