IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[HSQLDB] "db.script" -> "db.script.new"


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut [HSQLDB] "db.script" -> "db.script.new"
    Bonjour tout le monde,

    J'utilise une base de données HSQL ( db.script ) lors des l'échanges et le nombre du vas et vient des requêtes avec mon ".script", je me trouve avec le cas ou mon script est renommé : "db.script" -> "db.script.new"
    et bien sur ça plante !!!!

    quelqu'un a une idée !!

    Merci d'avance ...

  2. #2
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    Bonjour,
    la création des fichiers temporaires .new est normale, au shutdown du serveur. Ils sont ensuite renommés avec leurs extension d'origine (.script, .data....)

    Le .new que tu vois n'est peut-être que la conséquence (et pas l'origine de ton pb)

    Quand tu dis que ça plante, ça plante comment ? as-tu quelque chose dans les logs, ou des messages dans ton appli ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par kox2ee Voir le message
    Bonjour,
    la création des fichiers temporaires .new est normale, au shutdown du serveur. Ils sont ensuite renommés avec leurs extension d'origine (.script, .data....)

    Le .new que tu vois n'est peut-être que la conséquence (et pas l'origine de ton pb)

    Quand tu dis que ça plante, ça plante comment ? as-tu quelque chose dans les logs, ou des messages dans ton appli ?
    Bonjour,

    le problème est que après la shutdown du serveur, le script garde le nom du fichier temporaire "db.script.new" !! et sur le log me dit qu'il y a une perte de connexion avec la base et si je renommes pas mon script ( garde le script "db.script.new" ) et je lance l'appli une deuxième fois, un nouveau fichier "db.script" se créer ( comportement normal de créer un nouveau script -db.script-)
    c'est un comportement un petit peu bizarre, parce que je me trouves dans ce cas là dans une moyenne d'1 exécution / 4 !!!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut
    heeeeeeeeeeeeeple
    le problème me bloque à chaque fois dans les tests
    merci d'avance

  5. #5
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    Bonjour,
    je pense qu'il faut que tu en dises plus sur ta configuration :
    connexion à HSQLDB, contexte de l'application, contexte du plantage... et le code qui va avec éventuellement

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    les paramètres de connexion:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    database.user=sa
    database.password=
    database.url=jdbc:hsqldb:file:data/db.script;shutdown=true
    database.driver=org.hsqldb.jdbcDriver
    et pour les méthodes que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    private static final String DRIVER = Context.getString("database.driver");
    private static final String URL = Context.getString("database.url");
    private static final String USER = Context.getString("database.user");
    private static final String PASSWORD = Context.getString("database.password");
     
    	private static Connection connection = null;
     
    	// La méthode permet de fermer la connexion à la base de données
    	public static void closeConnection() {
    		try {
    			// On vérifie s'il y a une connexion déjà établie à la DB
    			// et si elle est toujours ouverte, si le cas on ferme la connexion
    			if (connection != null && !connection.isClosed()) {
    				connection.close();
    			}
    		} catch (SQLException e) {
    			logger.error("error to close connection");
    		}
    	}
     
    	// La méthode permet d'établir la connexion à la base de données
    	public static Connection getConnection() throws SQLException, ERROR {
     
    		// On vérifie que la connexion est férmée
    		if (connection == null || connection.isClosed()) {
    			try {
    				// Chargement du driver
    				Class.forName(DRIVER);
    				// Connexion
    				connection = DriverManager.getConnection(URL, USER, PASSWORD);
    				connection.setAutoCommit(true);
    			} catch (SQLException e) {
    				ERROR be = new TechnicalError("erreur création de connection ", e);
    				throw be;
    			} catch (ClassNotFoundException e) {
    				ERROR be = new TechnicalError("erreur de lecture du ficheier prperties ", e);
    				throw be;
    			}
    		}
    		return connection;
    	}
    et voila un exemple de méthode d'ajout à la DB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
     
    public void ajouterUtilisateur(Utilisateur u) throws ERROR {
    		Connection connection = null;
    		PreparedStatement ps = null;
    		try {
    			connection = ConnectionFactory.getConnection();
    // INSERT_USER_QUERY = " INSERT INTO UTILISATEUR (LOGIN , NOM , PRENOM , PASSWORD , ADMIN ) VALUES  ( ? , ? , ? , ?  , ? )";
    			ps = connection.prepareStatement(INSERT_USER_QUERY);
    			ps.setObject(1, u.getLogin());
    			ps.setObject(2, u.getNom());
    			ps.setObject(3, u.getPrenom());
    			ps.setObject(4, u.getPassword());
    			ps.setObject(5, false);
    			ps.execute();
    		} catch (SQLException e) {
    			ERROR error = new TechnicalError("erreur sql", e);
    			LOGGER.error(e.getMessage());
    			throw error;
    		} finally {
    			if (ps != null) {
    				try {
    					connection.close();
    					ps.close();
    				} catch (SQLException e) {
    					LOGGER.error(e.getMessage());
    				}
    			}
    		}
    	}
    Voyez -vous un problème ??

  7. #7
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    Bonjour,
    il serait plus logique de fermer le statement, puis la connexion que l'inverse...
    mais je ne sais pas si c'est ça qui provoque la plantage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ps.close();
    connection.close();

  8. #8
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    En prenant plus de précautions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    if (ps != null) {
    	try {
    		ps.close();
    	} catch (SQLException e) {
    		LOGGER.error(e.getMessage());
    	}
    }
    if (connection != null) {
    	try {
    		connection.close();
    	} catch (SQLException e) {
    		   LOGGER.error(e.getMessage());     
    	}
    }

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut
    ok, merci
    j'ai fait quelque test après cette modification, et ça marche pour l'instant ( j’espère qu'il marchera pour toujours )

Discussions similaires

  1. [PowerShell] double quotes et variables dans une ligne de script Powershell
    Par Aenean dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 08/12/2014, 17h55
  2. Faire un script qui me créer un script
    Par tripper.dim dans le forum Oracle
    Réponses: 8
    Dernier message: 30/11/2005, 11h11
  3. Réponses: 4
    Dernier message: 03/11/2005, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo