[2.1] Utilisation en tant que singleton
Bonjour,
Je commence tout juste à me mettre au EJB et tout n'est pas encore très clair.
Mon but est d'utiliser un EJB pour gérer un cache et alors nettoyer un répertoire en supprimant les X plus anciennes images et je ne veux qu'un seul EJB pour faire cela
Je n'ai pas la possibilité via Websphère 5.1 de limiter le pool à un EJB.
est-il possible de passer par un singleton pour limiter le nombre d'EJB instancier.
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 27 28 29 30 31 32 33 34 35 36 37
|
private SingletonEJB()
{
NettoyerHome home = null;
try
{
//-------------------------------------------------------------------------------------//
// Chargement de l'EJB //
//-------------------------------------------------------------------------------------//
javax.naming.InitialContext initialContext = new InitialContext();
try {
Object objref = initialContext
.lookup("ejb/NettoyerHome");
home = (NettoyerHome) PortableRemoteObject.narrow(objref,
NettoyerHome.class);
} catch (Exception e) {
e.printStackTrace();
//On efface le lock, on jete l'erreur
}
} catch (Exception e) {
e.printStackTrace();
}
//-------------------------------------------------------------------------------------//
// Création de l'EJB //
//-------------------------------------------------------------------------------------//
try
{
monEJB = home.create();
}
catch (Exception e)
{
e.printStackTrace();
}
} |
De cette manière ja méthode create sera appelée une seule fois mais il y a un hic il me semble puisqu'il me semble qu'a partir d'un certain temps si l'EJB n'est plus utiliser celui-ci est détruit et dans ce cas la je suis coincé.
Est ce qu'il y a des choses que je n'ai pas compris ? surement :P
Est-ce que je veux faire est-il vraiment réalisable ?
Dois-je déplacer mon home.create() de mon singleton ?
si vous avez des idées je suis preneur
merci,