Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > InterBase
InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, Tutoriels
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 14/08/2004, 02h08   #1
Invité de passage
 
Inscription : juillet 2003
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 6
Points : 2
Points : 2
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 :
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 :
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 :
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 :
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 :
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
nebka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2004, 18h10   #2
Invité de passage
 
Inscription : juillet 2004
Messages : 2
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 2
Points : 2
Points : 2
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.
jboga 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 22h05.


 
 
 
 
Partenaires

Hébergement Web