Rebus cannot subscribe to multiple endpoints with same 'messages' value -


is there reason rebus cannot used in pub/sub protocol, subscribing multiple endpoints publishing messages shared assembly?

when try configure rebus subscriber this:

<rebus inputqueue="ocs.subscriber.input" errorqueue="ocs.subscriber.error" workers="1" maxretries="5">   <endpoints>     <add messages="d3a.messages" endpoint="ocs.publisher.input" />     <add messages="d3a.messages" endpoint="ocs.publisher.input@osi2552" />   </endpoints> </rebus> 

an exception thrown @

.transport(t => t.usemsmqandgetinputqueuenamefromappconfig()) 

the exception thrown this:

an unhandled exception of type 'rebus.configuration.configurationexception' occurred in rebus.dll  additional information:   error occurred when trying parse out configuration of rebusconfigurationsection:   system.configuration.configurationerrorsexception: entry 'd3a.messages' has been added. (c:\projects\ocs.subscriber\bin\release\ocs.subscriber.vshost.exe.config line 22)     @ system.configuration.baseconfigurationrecord.evaluateone(string[] keys, sectioninput input, boolean istrusted, factoryrecord factoryrecord, sectionrecord sectionrecord, object parentresult)     @ system.configuration.baseconfigurationrecord.evaluate(factoryrecord factoryrecord, sectionrecord sectionrecord, object parentresult, boolean getlkg, boolean getruntimeobject, object& result, object& resultruntimeobject)     @ system.configuration.baseconfigurationrecord.getsectionrecursive(string configkey, boolean getlkg, boolean checkpermission, boolean getruntimeobject, boolean requestishere, object& result, object& resultruntimeobject)     @ system.configuration.baseconfigurationrecord.getsectionrecursive(string configkey, boolean getlkg, boolean checkpermission, boolean getruntimeobject, boolean requestishere, object& result, object& resultruntimeobject)     @ system.configuration.baseconfigurationrecord.getsectionrecursive(string configkey, boolean getlkg, boolean checkpermission, boolean getruntimeobject, boolean requestishere, object& result, object& resultruntimeobject)     @ system.configuration.baseconfigurationrecord.getsection(string configkey)     @ system.configuration.clientconfigurationsystem.system.configuration.internal.iinternalconfigsystem.getsection(string sectionname)     @ system.configuration.configurationmanager.getsection(string sectionname)     @ rebus.configuration.rebusconfigurationsection.lookitup()     @ rebus.transports.msmq.msmqconfigurationextension.usemsmqandgetinputqueuenamefromappconfig(rebustransportconfigurer configurer) 

this seems bit odd me. seems valid use case have rebus subscriber multiple publishers - sharing common poco assembly.

what reasoning behind ... , (more importantly) there way achieve in rebus?

and also: expecting rebus add exception log (i use log4net) seems exceptions thrown during configuration time of rebus not logged. must mistake, right?

the reason why doesn't readily work, is assumed each message type belongs ("is owned by") 1 logical service only.

from names of publishers assume they're same - i.e. they're 2 instances of same logical service, means can achieve you're after letting them share subscription storage - e.g. in shared sql server.

when share subscription storage, doesn't matter 1 receives subscription request, , therefore, you'd need map message assembly 1 of instances.

ps: find logging thing - i've created an issue , fixed ;)

pps: update logging thing - remember rebus intentionally not log error during configuration - reasoning logging done exceptions don't surface caller, because you'll able catch other exceptions , think should done them.


Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -