WSIFOperation - Référence des délais synchrones et asynchrones
Lorsque vous utilisez WSIF (Web Services Invocation Framework) avec JMS (Java™ Message Service), vous pouvez définir des délais d'expiration pour les opérations synchrones et asynchrones.
Les valeurs par défaut de ces délais sont définies dans le fichier wsif.properties :
# maximum number of milliseconds to wait for a response to a synchronous request.
# Default value if not defined is to wait forever.
wsif.syncrequest.timeout=10000
# maximum number of seconds to wait for a response to an async request.
# if not defined or invalid defaults to no timeout
wsif.asyncrequest.timeout=60
Le code qui traite ces deux valeurs de délai utilise les millisecondes comme unité de temps. La méthode getAsyncTimeout de la classe WSIFProperties multiplie la valeur wsif.asyncrequest.timeout par 100 afin de convertir les secondes en millisecondes.
Vous pouvez remplacer ces valeurs par défaut pour une demande donnée en créant une extension WSDL définissant une propriété JMS sur la demande d'opération à l'aide des éléments WSDL <jms:property> et <jms:propertyValue>. Définissez le nom de la propriété afin qu'il corresponde au nom du délai d'expiration défini dans le fichier de propriétés WSIF.
<jms:propertyValue name="wsif.syncrequest.timeout" type="xsd:string" value="120000"/>
et l'exemple suivant désactive les délais d'expiration asynchrones (la valeur zéro signifie une attente illimitée) :<jms:propertyValue name="wsif.asyncrequest.timeout" type="xsd:string" value="0"/>
Lorsqu'un délai asynchrone arrive à expiration, aucun écouteur (listener) ni aucune base de données de messages en attente de réponse n'est notifié. Le délai d'expiration asynchrone permet uniquement d'informer le service de corrélation que l'opération WSIF peut être supprimée. Pour plus d'informations sur le service de corrélation, voir WSIFOperation - Référence des interactions asynchrones.