OVH Cloud OVH Cloud

PooledConnection

2 réponses
Avatar
Segurane
Bonjour,
Quelqu'un aurait t'il des retours d'experiences d'utilisation de l'interface
PooledConnection ?
En particulier, si l'on souhaite gerer un timeout de fermeture de connexion,
on dirait que cela oblige d'attacher un thread surveillant par Connection.

--
Nico

2 réponses

Avatar
jerome moliere
Segurane wrote:
Bonjour,
Quelqu'un aurait t'il des retours d'experiences d'utilisation de l'interface
PooledConnection ?
peu de monde en a , puisque cette interface n'est pas faite pour être

manipulée par le commun des mortels :)
En particulier, si l'on souhaite gerer un timeout de fermeture de connexion,
on dirait que cela oblige d'attacher un thread surveillant par Connection.
heu, je ne vois rien de tel du a cette interface, elle est beaucoup trop

haut niveau pour s'oocuper de telles choses... expliques ton probleme ?
ou regardes les sources d'un serveur d'applications (JONAS ou JBOSS)

jerome

Avatar
Segurane
Segurane wrote:
Bonjour,
Quelqu'un aurait t'il des retours d'experiences d'utilisation de l'interface
PooledConnection ?


peu de monde en a , puisque cette interface n'est pas faite pour être
manipulée par le commun des mortels :)

En particulier, si l'on souhaite gerer un timeout de fermeture de connexion,
on dirait que cela oblige d'attacher un thread surveillant par Connection.


heu, je ne vois rien de tel du a cette interface, elle est beaucoup trop
haut niveau pour s'oocuper de telles choses... expliques ton probleme ?
ou regardes les sources d'un serveur d'applications (JONAS ou JBOSS)


Salut,
Desole pour le lag enoooorme de reponse.
Le pb venait d'une mauvaise comprehension de l'interface, je n'avais pas saisi
que les PooledConnection devaient etre utilisees au niveau applicatif (he oui
:)). Bien que n'utilisant pas actuellement de PooledConnection, je verrai bien
un truc comme ci dessous. Tout commentaire est le bienvenu.

class TimedConnection implements PooledConnection{

long lastUsed;
String basename;
Connection connection;
// ConnectionEvent stuff
EventListenerList listenerList;

public TimedConnection(){
..
}

/*----------- Interface Pooledconnection --------*/
public void addConnectionEventListener(...){
..
}

public void removeConnectionEventListener(...){
..
}

public Connection getConnection() throws SQLException{
/* return connection */
..
return conn;
}


public void close(){
/* close connection */
..
fireConnectionClosed();
}
/*----------- Fin Interface Pooledconnection --------*/


public void errorOccure(){
/** an error occure */
..
fireErrorOccured();
}

public long getLastUsed(){
return lastUsed;
}

public void recaleTime{
lastUsed = System.currentTimeMillis();
}

/** fire ConnectionEvent to listeners */
private void fireConnectionClosed(){
..
}

/** fire ConnectionEvent to listeners */
private void fireErrorOccured(){
..
}
// fin classe TimedConnection
}

class MyConnectionPool implements ConnectionEventListener{

// TimedConnection cache
Vector timedConnections;
// timeout check monitor, check unused connection
Thread monitor;
// max time
static final long MAX_IDLE = 1000 * 60 * 5;

/** get a connection and add it in the pool. if a connection
is already available, get it from cache and recale her use time. if cache is
empty, launch monitor thread. */
public TimedConnection checkout(String baseName){
..
}

/** close a connection and remove it from the pool */
public void checkIn(TimedConnetion conn{
..
}

/*--------- interface ConnectionEventListener --------*/
public void connectionClosed(){
// get the TimedConnection event source and remove it from the pool
..
}

public void errorOccured(){
// get the TimedConnection event source and remove it from the pool
..
}
/*--------- fin interface ConnectionEventListener -----*/


finalize(){

// top monitor thread
// close all connections

}

--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/