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

Connexion aux bases de données Firebird Discussion :

Connexion qui ne se ferme pas


Sujet :

Connexion aux bases de données Firebird

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Connexion qui ne se ferme pas
    Salut à tous.
    J'ai un problème : j'ai un programme java qui se connecte sur une base Interbase 7.
    J'utilise le driver EasySoft ODBC IB7 (driver ODBC).
    Lorsque j'ouvre une connexion, pas de problème, un processus sur le serveur est lancé (j'ai fait d'autres tests qui me permettent d'affirmer que j'accède à la base).
    Mais lorsque je la ferme, le processus lui tourne toujours.


    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
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
     
    import javax.swing.JOptionPane;
     
    public class Cnx
    {
    public static void main(final String[] args) throws ClassNotFoundException, SQLException
    {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     
    Connection con = DriverManager.getConnection ("jdbc:odbc:dw","sysdba","masterkey");
     
    JOptionPane.showMessageDialog(null,"coucou");
    System.out.println("Connexion fermée");
    con.close();
    }
    }
    J'ai demandé de l'aide dans le forum de java qui m'a dit que le code était bon, et que le problème ne devait pas venir de java mais de la base ou du serveur.

    Quelqu'un aurait-il une idée?
    Car j'ai le problème aussi lorsque je crée un Statement ou un ResultSet. Des processus se lancent sur le serveur et tout semblent fonctionner mais pas la fermeture de ces composants en réalité. Les processus tourne toujours, donc la RAM du serveur finit saturée, et l'application est très lente.
    Merci à vous

  2. #2
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    et IB7 n'a pas de pilote JDBC plutot que d'ajouter cette couche lourdingue et inutile d'ODBC ?
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    EasySoft est un driver ODBC uniquement.
    Et la personne qui a installé interbase a acheté 5 licence avec.
    Sinon, j'ai vu que le driver JDBC pour interbase est interclient.
    Mais je n'ai pas encore pu le tester, et n'étant pas au travail cette semaine, je ne pourrai le faire que la semaine prochaine.
    Mais si certains ont d'autres idées, elles seront les bienvenues
    Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    J'ai testé avec un driver purement jdbc (interclient), mais aucun résultat.
    J'ai donc regardé les ressources utilisées par le processus ibserver quand je lance ibexpert ou ibconsole :
    ibserver est le processus lancé au démarrage d'interbase. Quand j'ouvre une connexion avec ibexpert, la RAM utilisée par ce processus passe de 3292 ko à 13772 ko. Avec ibexpert, j'effectue des requêtes, consulte des tables .... La RAM du processus augmente, et bien que je fasse des commit sur les requêtes, que je ferme mes tables, cette RAM n'est pas libérée.
    Et lorsque je ferme ma connexion, seul 8000 ko sont libérée. Donc si une vingtaine de requête sont effectuée, je me retrouve avec des dizaine de Mo de RAM utilisées inutilement.

    2 questions :
    est-ce normal qu'un seul processus soit utilisé pour toutes les connexions et autre transaction?
    Quelqu'un a-t-il déjà eu ce souci de RAM non libérée? Et comment faire pour éviter ce problème?

    S'il vous plait, aidez moi, car j'en peux plus, j'ai plus d'idées.



  5. #5
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    contacter le support d'Interbase

    c'est un produit propriétaire payant il me semble non ?

    bon ceci dit :
    la RAM utilisée par ce processus passe de 3292 ko à 13772 ko
    soit une différence de 10480 ko (pas énorme au passage)
    tu ne crois pas que c'est juste le cache qui se remplit et qu'il est normal que cet espace là ne soit pas libéré ?

    Pou Firebird par défaut le cache en Superserveur est fixé à 2048 pages ce qui pour une base avec des pages de 4096 fait 8192 ko

    par exemple là sur un test basique je passe de 3796 ko à 7320 ko juste avec la connexion puis après quelques requetes je suis à 5 576 ko après avoir fermé toutes les connexions mais cela n'a rien d'inquiétant et franchement 2Mo de mémoire aujourd'hui c'est rien et ce n'est que le quelques données qui reste en cache pour justement permettre que les nouvelles connexions en profitent et aillent plus vite.
    maintenant s'il y a des fuites mémoires chez Interbase, c'est avec Interbase qu'il faut voir
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Oui, c'est bien un produit propriétaire payant, mais ayant acheter les licences il y a déjà 3 ou 4 ans, je ne sais pas si le support est toujours d'activité.
    Mais je vais voir de ce côté.
    Merci de ton intérêt

    Sinon, il y a peut être un souci dans l'installation, car je n'arrive pas à désinstaller interbase (msg d'erreur java du prog de désinstall).

    Et le formatage n'est pas envisageable car plusieurs programmes ont été installés par un informaticien d'une SSII (je n'ai pas des prog d'install), et sans ces progs, la base ne se mettrait plus à jour.
    Quelle poisse ...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Ce n'est pas un souci d'installation car elle vient d'être refaite, sans succès.
    Ca ne vient pas du driver.
    Si c'était un problème de quelques dizaine de Mo, ce ne serait pas gênant.
    Mais là, je lance mon appli, je lance des procédures stockées très lourdes, et nombreuses, puis je ferme ma connexion.
    J'ai toujours 270 Mo pour ibserver.
    Je déteste cette base, elle m'apporte que des problèmes.
    Si je trouve la solution, je la poste promis.

Discussions similaires

  1. Connexion qui ne se ferme pas
    Par ch0upette dans le forum JDBC
    Réponses: 3
    Dernier message: 03/09/2007, 16h28
  2. TransferSpreadsheet et Excel qui ne se ferme pas
    Par it-worker dans le forum VBA Access
    Réponses: 6
    Dernier message: 30/07/2007, 15h58
  3. Formulaire qui ne se ferme pas.
    Par Smint dans le forum Access
    Réponses: 7
    Dernier message: 02/06/2006, 10h34
  4. [VB6]Process qui ne se ferme pas
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 19/04/2006, 13h57
  5. [FORMS] Form qui ne se ferme pas
    Par MxPx_23 dans le forum Oracle
    Réponses: 4
    Dernier message: 08/12/2005, 07h29

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