Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
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 06/03/2007, 15h17   #1
Membre habitué
 
Inscription : août 2005
Messages : 142
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 142
Points : 104
Points : 104
Par défaut [CTLIB] Tester si une connection est UP

Je souhaiterais savoir comment tester si une connection est UP, j'ai essayer la fonction ct_poll mais elle ne détecte rien alors que la connection a été tuée

Merci de votre aide
tomasha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 16h17   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
A ma connaissance la seule façon de tester qu'une connexion est UP est d'envoyer une requête...

On peut aussi tester la condition CS_CONSTAT_DEAD de la connexion:

Code :
1
2
3
4
5
 
    ct_con_props(info->connection->connection, CS_GET, CS_CON_STATUS,
		 &ret, CS_UNUSED, NULL);
 
    RETVAL = ret & CS_CONSTAT_DEAD;
mais ce status n'est activé qu'après qu'une opération ai échoué.

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 16h49   #3
Membre habitué
 
Inscription : août 2005
Messages : 142
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 142
Points : 104
Points : 104
En effet ce genre de fonction ne renvoie pas FALSE si une opération n'a pas déjà échoué, merci quand même ;-)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int isConnected(CS_CONNECTION *connexion)
{
	CS_BOOL loginStatus;
	CS_INT connexionStatus;
     IF (ct_con_props(*connexion, CS_GET, CS_LOGIN_STATUS, &loginStatus, CS_UNUSED, NULL) != CS_SUCCEED)
    {
    	printf("ct_con_props CS_LOGIN_STATUS failed\n");
    	fflush(stdout);
    	RETURN 0;
    } 
    IF (ct_con_props(*connexion, CS_GET, CS_CON_STATUS, &connexionStatus, CS_UNUSED, NULL) != CS_SUCCEED)
    {
    	printf("ct_con_props CS_CON_STATUS failed\n");
    	fflush(stdout);
    	RETURN 0;
    } 
    RETURN (loginStatus && (connexionStatus == CS_CONSTAT_CONNECTED)); 
}
tomasha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 17h24   #4
Membre habitué
 
Inscription : août 2005
Messages : 142
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 142
Points : 104
Points : 104
Est-ce qu'il n'existe pas une opération simple style polling pour se rendre compte de la déconnection ??

ct_poll ne le permet pas en tout cas...
tomasha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2007, 08h01   #5
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Non - pour voir si la conexion est encore valide il faut envoyer quelque chose, et attendre son retour. La seule façon d'envoyer qqch c'est de faire une requête...

Il y aurait peut-être la possibilité de faire un appel à ct_options() (p.ex. de positionné le CS_OPT_NUMROWS), mais je n'ai pas vérifié que cela detecte effectivement le cas où la connexion est down.

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler 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 15h01.


 
 
 
 
Partenaires

Hébergement Web