2012-09-28 3 views
1

La documentation porte à croire que BeginAcceptMessageSession() déclenchera un TimeoutException si la durée spécifiée dans le paramètre serverWaitTime est dépassée. Cela ne semble pas toujours arriver. Donc, le comportement de cette chose est tel qu'il n'est pas censé rendre un MessageSession s'il n'y a pas de messages dans le Sujet (c'est-à-dire qu'il attend un certain laps de temps, et lorsqu'il ne trouve aucun message, il jette le TimeoutException)? Ou, plutôt, est-ce que le temps d'attente seulement s'il ne peut pas répondre dans le laps de temps, peu importe s'il y a ou non des messages?Azure Service Bus - SuscriptionClient.BeginAcceptMessageSession() et TimeoutException

Je réalise des tests TRÈS simples sur un sujet vide, et un abonnement vide. En utilisant une valeur de délai de 5 secondes, il lance parfois le TimeoutException et parfois non.

Ce qui donne? Pourquoi cette chose n'est pas cohérente? Quelle est la règle pour quand le TimeoutException sera ou ne sera pas lancé? Puis-je obtenir un MessageSession sur un abonnement vide?

Ces documents sont carrément clairsemés.

Nous vous remercions de l'aide que vous pouvez nous fournir.

Répondre

1

Oui, la non-documentation est assez impressionnante.

Etes-vous Close() en utilisant le MessageSession dans le cas où vous l'obtenez? Rappelez-vous que l'objet retourné représente un jeton qui vous confère des droits exclusifs de suppression de la file d'attente du sujet jusqu'à ce que vous le retourniez ou que quelqu'un d'autre le 'gagne'.

Questions connexes