2008-09-22 10 views
0

J'utilisais Spring.NET pour créer un écouteur de message au démarrage de l'application. J'ai maintenant besoin de la possibilité de créer des écouteurs 0-n, dont certains pourraient écouter différentes files d'attente. Je devrai être capable de les créer/les détruire à l'exécution. Quelle serait la meilleure façon de faire cela? Ma configuration de printemps précédent était quelque chose comme:Quelle est la meilleure façon de créer dynamiquement un écouteur MSMQ?

<objects xmlns="http://www.springframework.net"> 

    <object id='inputQueue' type='Spring.Messaging.Support.MessageQueueFactoryObject, Spring.Messaging'> 
    <property name='Path' value='.\Private$\inputQueue'/> 
    </object> 

    <!-- MSMQ Transaction Manager --> 
    <object id="messageQueueTransactionManager" type="Spring.Messaging.Core.MessageQueueTransactionManager, Spring.Messaging"/> 

    <!-- Message Listener Container that uses MSMQ transactional for receives --> 
    <object id="transactionalMessageListenerContainer" type="Spring.Messaging.Listener.TransactionalMessageListenerContainer, Spring.Messaging"> 
    <property name="MessageQueueObjectName" value="inputQueue"/> 
    <property name="PlatformTransactionManager" ref="messageQueueTransactionManager"/> 
    <property name="MaxConcurrentListeners" value="10"/> 
    <property name="MessageListener" ref="messageListenerAdapter"/> 
    </object> 

    <!-- Adapter to call a PONO as a messaging callback --> 
    <object id="messageListenerAdapter" type="Spring.Messaging.Listener.MessageListenerAdapter, Spring.Messaging"> 
    <property name="HandlerObject" ref="messageListener"/> 
    </object> 

    <!-- The PONO class that you write --> 
    <object id="messageListener" type="Com.MyCompany.Listener, Com.MyCompany"> 
    <property name="Container" ref="transactionalMessageListenerContainer"/> 
    </object> 

</objects> 

Devrais-je faire ce programme ce fichier fait chaque fois que je besoin d'un nouvel auditeur? Ne devrais-je pas utiliser le framework de messagerie de Spring.NET pour cela?

Répondre

1

Si j'utilise judicieusement Spring.NET (c'est-à-dire la messagerie, les aides ADO.NET, etc.) comme je l'ai déjà dit, je le ferais par programmation. Et puis ajoutez le nouveau graphique à mon conteneur existant. De cette façon, Spring.NET gère toujours le cycle de vie pour moi.