You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by James Carr <ja...@gmail.com> on 2009/12/09 04:36:54 UTC

Multiple Subscribers on a Topic?

Hi All,

I have been using CXF to implement SOAP over JMS (mostly configured
through http://cwiki.apache.org/CXF20DOC/using-the-jmsconfigfeature.html)
and had great success, however I have a setup where the application is
running on a cluster on different nodes, and I publishing to a JMS
topic to replicate some specific information across all the nodes. Is
there a way to set it up so that the implementation classes (which are
the subscribers) have uniquely generated clientIDs so they get invoked
on each node when I publish to a topic by call the client proxy?


Thanks,
James

Re: Multiple Subscribers on a Topic?

Posted by James Carr <ja...@gmail.com>.
Sorry, I mean the clientID for a subscriber of a JMS Topic


Thanks,
James

On Fri, Dec 11, 2009 at 3:52 PM, Daniel Kulp <dk...@apache.org> wrote:
>
> You may need to dig into some code.   Are you talking about the CorrelationId?
>
> If so, it's basically:
>
> If the request context has a JMSMessageHeadersType object on it that has a
> correlation ID on it, that is used.   Thus, you can control it on a per invoke
> basis.
>
> Beyond that, it's basically:
> if (!jmsConfig.isSetConduitSelectorPrefix()
>     && (!jmsConfig.isSetUseConduitIdSelector()
>           || !jmsConfig.isUseConduitIdSelector())) {
>                messageIdPattern = true;
>            } else {
>                if (jmsConfig.isUseConduitIdSelector()) {
>                    correlationId = JMSUtils.createCorrelationId(jmsConfig
>                        .getConduitSelectorPrefix()
>                                                                 + conduitId,
> messageCount
>                        .incrementAndGet());
>                } else {
>                    correlationId = JMSUtils.createCorrelationId(jmsConfig
>                        .getConduitSelectorPrefix(),
> messageCount.incrementAndGet());
>                }
>            }
>
>
> If the messageIdPattern is true, it ends up just being the result of
> jmsMessage.getJMSMessageID();
>
>
> Not sure if that helps at all.
>
> Dan
>
>
> On Fri December 11 2009 1:32:14 pm James Carr wrote:
>> Sorry, accidentally sent while typing. My question is:
>>
>> How are clientIDs assigned when you leave the parameter out when you
>> set up a conduit?
>>
>> Thansks,
>> James
>>
>> On Fri, Dec 11, 2009 at 12:31 PM, James Carr <ja...@gmail.com> wrote:
>> > Maybe I phrased my question wrong.. .so let me try again. :)
>> >
>> > How are clientIDs assigned to subscribers? I noticed you're not req
>> >
>> > On Tue, Dec 8, 2009 at 9:36 PM, James Carr <ja...@gmail.com> wrote:
>> >> Hi All,
>> >>
>> >> I have been using CXF to implement SOAP over JMS (mostly configured
>> >> through
>> >> http://cwiki.apache.org/CXF20DOC/using-the-jmsconfigfeature.html) and
>> >> had great success, however I have a setup where the application is
>> >> running on a cluster on different nodes, and I publishing to a JMS topic
>> >> to replicate some specific information across all the nodes. Is there a
>> >> way to set it up so that the implementation classes (which are the
>> >> subscribers) have uniquely generated clientIDs so they get invoked on
>> >> each node when I publish to a topic by call the client proxy?
>> >>
>> >>
>> >> Thanks,
>> >> James
>>
>
> --
> Daniel Kulp
> dkulp@apache.org
> http://www.dankulp.com/blog
>

Re: Multiple Subscribers on a Topic?

Posted by Daniel Kulp <dk...@apache.org>.
You may need to dig into some code.   Are you talking about the CorrelationId?

If so, it's basically:

If the request context has a JMSMessageHeadersType object on it that has a 
correlation ID on it, that is used.   Thus, you can control it on a per invoke 
basis.

Beyond that, it's basically:
if (!jmsConfig.isSetConduitSelectorPrefix()
     && (!jmsConfig.isSetUseConduitIdSelector() 
           || !jmsConfig.isUseConduitIdSelector())) {
                messageIdPattern = true;
            } else { 
                if (jmsConfig.isUseConduitIdSelector()) {
                    correlationId = JMSUtils.createCorrelationId(jmsConfig
                        .getConduitSelectorPrefix()
                                                                 + conduitId, 
messageCount
                        .incrementAndGet());
                } else {
                    correlationId = JMSUtils.createCorrelationId(jmsConfig
                        .getConduitSelectorPrefix(), 
messageCount.incrementAndGet());
                }
            }


If the messageIdPattern is true, it ends up just being the result of
jmsMessage.getJMSMessageID();


Not sure if that helps at all.

Dan


On Fri December 11 2009 1:32:14 pm James Carr wrote:
> Sorry, accidentally sent while typing. My question is:
> 
> How are clientIDs assigned when you leave the parameter out when you
> set up a conduit?
> 
> Thansks,
> James
> 
> On Fri, Dec 11, 2009 at 12:31 PM, James Carr <ja...@gmail.com> wrote:
> > Maybe I phrased my question wrong.. .so let me try again. :)
> >
> > How are clientIDs assigned to subscribers? I noticed you're not req
> >
> > On Tue, Dec 8, 2009 at 9:36 PM, James Carr <ja...@gmail.com> wrote:
> >> Hi All,
> >>
> >> I have been using CXF to implement SOAP over JMS (mostly configured
> >> through
> >> http://cwiki.apache.org/CXF20DOC/using-the-jmsconfigfeature.html) and
> >> had great success, however I have a setup where the application is
> >> running on a cluster on different nodes, and I publishing to a JMS topic
> >> to replicate some specific information across all the nodes. Is there a
> >> way to set it up so that the implementation classes (which are the
> >> subscribers) have uniquely generated clientIDs so they get invoked on
> >> each node when I publish to a topic by call the client proxy?
> >>
> >>
> >> Thanks,
> >> James
> 

-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog 

Re: Multiple Subscribers on a Topic?

Posted by James Carr <ja...@gmail.com>.
Sorry, accidentally sent while typing. My question is:

How are clientIDs assigned when you leave the parameter out when you
set up a conduit?

Thansks,
James

On Fri, Dec 11, 2009 at 12:31 PM, James Carr <ja...@gmail.com> wrote:
> Maybe I phrased my question wrong.. .so let me try again. :)
>
> How are clientIDs assigned to subscribers? I noticed you're not req
>
> On Tue, Dec 8, 2009 at 9:36 PM, James Carr <ja...@gmail.com> wrote:
>> Hi All,
>>
>> I have been using CXF to implement SOAP over JMS (mostly configured
>> through http://cwiki.apache.org/CXF20DOC/using-the-jmsconfigfeature.html)
>> and had great success, however I have a setup where the application is
>> running on a cluster on different nodes, and I publishing to a JMS
>> topic to replicate some specific information across all the nodes. Is
>> there a way to set it up so that the implementation classes (which are
>> the subscribers) have uniquely generated clientIDs so they get invoked
>> on each node when I publish to a topic by call the client proxy?
>>
>>
>> Thanks,
>> James
>>
>

Re: Multiple Subscribers on a Topic?

Posted by James Carr <ja...@gmail.com>.
Maybe I phrased my question wrong.. .so let me try again. :)

How are clientIDs assigned to subscribers? I noticed you're not req

On Tue, Dec 8, 2009 at 9:36 PM, James Carr <ja...@gmail.com> wrote:
> Hi All,
>
> I have been using CXF to implement SOAP over JMS (mostly configured
> through http://cwiki.apache.org/CXF20DOC/using-the-jmsconfigfeature.html)
> and had great success, however I have a setup where the application is
> running on a cluster on different nodes, and I publishing to a JMS
> topic to replicate some specific information across all the nodes. Is
> there a way to set it up so that the implementation classes (which are
> the subscribers) have uniquely generated clientIDs so they get invoked
> on each node when I publish to a topic by call the client proxy?
>
>
> Thanks,
> James
>