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

InterBase Discussion :

connection reset avec interbase 6.01 sous linux redhat7.2


Sujet :

InterBase

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 6
    Points : 6
    Points
    6
    Par défaut connection reset avec interbase 6.01 sous linux redhat7.2
    hello,
    J'ai une appli java qui se connecte à interbase 6.01 via interclient 2.5 .
    Cette application fonctionne parfaitement bien quand le tout (appli et base de données) est installé sous windows XP.
    Par contre lorsque je migre tout ça sur un serveur linux (redhat7.2), plus rien ne va!
    En fait au vue des messages d'erreurs, il semblerait que mon application n'arrive pas à garder de connection avec la base de données!
    Donc si je ne recrée pas explicitement une connection à chaque fois que je veux accéder à la base, ça me fait une erreur.

    J'ouvre ma connection avec le code suivant :
    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
     
    public void connectBase() {
       	DataSource dataSource = new interbase.interclient.DataSource();
     
    	try {
     
    	   // Set the standard properties
    	   dataSource.setNetworkProtocol("jdbc:interbase:"); /* set the network protocol */
    	   dataSource.setServerName("localhost"); /* the hostname or IP address of the server */
    	   dataSource.setDatabaseName("/opt/base/MaBase"); /* the full path to your database file */
    	   dataSource.setPortNumber(3060); /* the TCP port Interclient listens on by default */
    	   dataSource.setLoginTimeout(10); /* set the login timeout to 10 seconds */
     
    	   // Set the non-standard properties
    	   dataSource.setSweepOnConnect(false); /* Perform a sweep when connecting */
     
    	   // The following line actually starts up the database connection:
    	   this.con = dataSource.getConnection("login","password");
     
    	} catch ( SQLException se ) {
     
    	   // Report the problem to the standard error stream:
    	   System.err.println("Problème de connection à la base de donnée: "+se);
     
    	}
    }
    Ensuite 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
     
    int param1, param2;
    string param3;
    bd=new BD();
    bd.connectBase();
    sment=bd.getPreparedStatement("execute procedure maProcedure(?, ?, ?);");
    for(Iterator it=col.iterator() ; it.hasNext() ; ) {
    [...]
    sment.setInt(1, param1);
    sment.setInt(2, param2);
    sment.setString(3, param3);
    sment.execute();
    [...]
    }
    bd.disconnectBase();
    ou la fonction disconnectBase est écrite comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public void disconnectBase() {
    	try {
    		con.close();
    		con=null;
    	} catch ( SQLException se ) {
    		se.printStackTrace();
    	}
    }

    A l'exécution, les 2 premières exécution de sment.execute() passe bien, mais à la 3e j'obtiens l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    interbase.interclient.CommunicationException: [interclient] Communication error: An IO exception occurred while trying to receive data from server localhost.
    The message of the IOException is "Connection reset".
    See API reference for exception interbase.interclient.CommunicationException
            at interbase.interclient.JDBCNet.receiveMessage(Unknown Source)
            at interbase.interclient.JDBCNet.sendAndReceiveMessage(Unknown Source)
            at interbase.interclient.PreparedStatement.remote_EXECUTE_PREPARED_STATEMENT(Unknown Source)
            at interbase.interclient.PreparedStatement.execute(Unknown Source)
            at trail.utils.FonctionBD.replacePassage(FonctionBD.java:57)
            at trail.server.Traitement.run(Traitement.java:113)
            at java.lang.Thread.run(Unknown Source)
    et aux exécutions suivantes l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    interbase.interclient.CommunicationException: [interclient] Communication error: An IO exception occurred while trying to send data to server localhost.
    The message of the IOException is "Broken pipe".
    See API reference for exception interbase.interclient.CommunicationException
            at interbase.interclient.JDBCNet.sendMessage(Unknown Source)
            at interbase.interclient.JDBCNet.sendAndReceiveMessage(Unknown Source)
            at interbase.interclient.PreparedStatement.remote_EXECUTE_PREPARED_STATEMENT(Unknown Source)
            at interbase.interclient.PreparedStatement.execute(Unknown Source)
            at trail.utils.FonctionBD.replacePassage(FonctionBD.java:57)
            at trail.server.Traitement.run(Traitement.java:113)
            at java.lang.Thread.run(Unknown Source)
    J'ai donc l'impression que la connexion à la base n'arrive pas à restée ouverte, mais je ne sais pas pourquoi. Sur la version Windows, je n'avais pas de souci, elle restait ouverte.

    Je suis vraiment très embêtée car mon application doit tourner en permanence pendant 48H pour récupérer et intégrer des données servant à la gestion et surtout la sécurité d'une course pédestre, et je ne peux pas me permettre de perdre des données.
    En plus je ne peux pas revenir vers un serveur windows, car je suis tenue de fonctionner sur linux pour l'hébergement.

    Si quelqu'un a une idée, je lui en serait vraiment très reconnaissante...

    merci d'avance

    Isabelle

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Salut,

    je vais te décevoir mais je n'ai pas la réponse à ton problème, par contre, j'aimerais savoir comment tu as récupéré le driver interclient 2.5, car je n'arrive à récupérer que le 2.01.

    Et mon appli ne peut pas fonctionner avce cette version là. Je cherche donc la version 2.5 comprenant InterServer et InterClient.

    Merci d'avance et encore désolé de ne pas pouvoir t'aider.
    Bon courage.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/05/2008, 15h06
  2. connection delphi avec interbase
    Par JLASSI dans le forum InterBase
    Réponses: 2
    Dernier message: 06/03/2007, 22h03
  3. Réponses: 4
    Dernier message: 01/03/2006, 11h35
  4. Problème avec myODBC et odbc sous linux avec unixODBC
    Par tytyi11 dans le forum Administration système
    Réponses: 2
    Dernier message: 18/11/2005, 16h08

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