Précédent   Forum des professionnels en informatique > Bases de données > Firebird > Connexion aux bases de données
Connexion aux bases de données Forum d'entraide sur la connectivité Firebird: composants, drivers, transactions, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/09/2007, 16h37   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 10
Points : 10
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 :
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
ch0upette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 18h25   #2
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
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
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 20h45   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 10
Points : 10
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
ch0upette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 10h23   #4
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 10
Points : 10
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.


ch0upette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 11h20   #5
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
contacter le support d'Interbase

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

bon ceci dit :
Citation:
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
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 12h01   #6
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 10
Points : 10
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 ...
ch0upette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 15h50   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 10
Points : 10
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.
ch0upette est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h17.


 
 
 
 
Partenaires

Hébergement Web