|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Cette interface est implémentée par des classes qui doivent vérifier à
fréquence régulière de la présence de nouveaux messages à transmettre au
Systeme EAI.
Par exemple on peut imaginer un JDBCConnector qui vérifierait à fréquence
régulière de la présence de nouvels enregistrements dans une base avant de les
envoyer au Systeme EAI.
Autre exemple, Un HTTPConnector qui requêtrait à fréquence régulière sur une
URL jusqu'à ce qu'une nouvelle réponse soit fournie.
création d'une
PoolingFunction
, et lancement d'une
PoolingFunction
.while( !interrupted ) { try { if(pf.hasNewDocument()
) { Object o,r; while( (o=pf.getNextDocument()
)!=null ) { r=eai.submit(o,pf.getRouteInfos()
); boolean nok=(r instanceof Exception);pf.notifyResponse(o,r,!nok)
; } } } catch( Exception e ) { ignore cette requette } if( !interrupted ) try { Thread.sleep(pf.getFrequency()
); } catch( InterruptedException ie) { interrupted=true; } }
ListeningFunction
.XMLConfigurable
pour son initialisation à
partir d'un élément XML. Le schéma XML de l'initialisation est totalement
libre, elle doit seulement être limitée à cet
élément et à ses descendants.hasNewDocument()
et getNextDocument()
. Une instance de
PoolingFunction n'est pas utilisée de manière
multi threadée. Cette instance a donc le loisir d'initialiser des variables
internes lors de l'appel à hasNewDocument et de les utiliser sans risque lors
des appels successifs à getNextDocument.
Method Summary | |
long |
getFrequency()
Fournit La durée pendant laquelle l'EAIsystem doit attendre avant de renouveller les appels. |
java.lang.Object |
getNextDocument()
Retourne le document suivant de la liste initialisé lors de l'appel à hasNewDocument(). L'implémentation de cette méthode ne doit pas être bloquante. |
RouteInfos |
getRouteInfos()
Fournit les informations de routage pour le dernier document lu par getNextDocument. |
boolean |
hasNewDocument()
La PoolingFunction a-elle de nouveaux documents à soumettre au Systeme EAI ? |
void |
notifyResponse(java.lang.Object doc,
java.lang.Object response,
boolean ok)
Notifie la PoolingFunction que la soumission de l'objet doc a eu lieu et que la réponse est response. |
Methods inherited from interface submarine.core.XMLConfigurable |
init |
Method Detail |
public boolean hasNewDocument()
public java.lang.Object getNextDocument() throws java.lang.Exception
java.lang.Exception
- Si une exception est levée lors de l'exécution de
cette méthode, le processus d'interrogation s'interrompt.public long getFrequency()
public RouteInfos getRouteInfos()
public void notifyResponse(java.lang.Object doc, java.lang.Object response, boolean ok)
doc
- L'objet Java ayant été retourné par le précedent appel à
getNextDocument.response
- La réponse de la soumission du message au Systeme EAI. Voir
EAISystem.submit(java.lang.Object, submarine.core.RouteInfos, submarine.core.Message.MsgContext)
.ok
- Vrai si la soumission s'est passée sans erreur, et faut si une
exception s'est produite. Si la soumission était asynchrone, ok n'indique pas
si le traitement du message s'est bien passé mais seulement qu'il a bien été
inséré dans la file d'attente.
|
Submarine project. free distribution of this software must include the opensource licence. Guénolé de Cadoudal. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |