activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pablo Rodríguez Rey ...@xkr.es>
Subject Re: Starting with AMQ+AMQP 1.0+QPID Proton
Date Mon, 08 Jul 2013 17:31:34 GMT
Producer:
-------------

include("proton.php");

$mess = new Messenger();
$mess->start();

$msg = new Message();
$msg->address="amqp://127.0.0.1/xxx2/asd/asd";
$msg->body="Test";

for ($i=1;$i<=9;$i++) {
    $msg->priority=(int)$i;
    $msg->subject="PRIORITY(".$i.")!";
    $mess->put($msg);
    $mess->send();
    print "sent: $msg->subject\n";
}

$mess->stop();

Consumer:
----------------

include("proton.php");

$mess = new Messenger();
$mess->start();
$mess->subscribe($argv[1]);

$msg = new Message();
while (true) {
  $mess->recv(10);
  while ($mess->incoming) {
    try {
      $mess->get($msg);
    } catch (Exception $e) {
      print "$e\n";
      continue;
    }
    print "$msg->address, $msg->subject, $msg->body\n";
  }
}

$mess->stop();

Where $argv[1] is an AMQP address.

In QPID Proton API there is no such class member like ->filter, ->selector
or ->JMSSelector.

Thanks for your replies.


On Mon, Jul 8, 2013 at 7:01 PM, Christian Posta
<christian.posta@gmail.com>wrote:

> Pablo,
>
> You should be able to specify jms-like selectors.
> It's not going to work by specifying it on the transport connector.
> You would specify it in a 'jms-selector' header when your consumer connects
> up. Can you show the code your consumer uses?
>
>
> On Mon, Jul 8, 2013 at 12:20 PM, Pablo Rodríguez Rey <mr@xkr.es> wrote:
>
> > I reply you between lines.
> >
> > On Mon, Jul 8, 2013 at 6:01 PM, Gordon Sim <gsim@redhat.com> wrote:
> >
> > > On 07/05/2013 03:30 PM, Pablo Rodríguez Rey wrote:
> > >
> > >> Also, I've a question about mixing AMQP 1.0 Filters/Selectors. I don't
> > >> know
> > >> how to make a selector for filtering the Priority of a message. I
> have a
> > >> cluster of 6 machines with 3 workers each. 2 are low-priority workers
> > and
> > >> can do any video transcode work with any priority, and 1 reserved
> worker
> > >> with higher priority only for user-time transcoding.
> > >>
> > >> I've seen these pages:
> > >>
> > >> https://svn.apache.org/repos/**asf/qpid/trunk/qpid/specs/**
> > >> apache-filters.xml#type-**selector-filter<
> >
> https://svn.apache.org/repos/asf/qpid/trunk/qpid/specs/apache-filters.xml#type-selector-filter
> > >
> > >>
> > >
> > > Note that the selector filter described there is an extension to the
> core
> > > AMQP 1.0 protocol...
> > >
> > >
> > Yes, I know it's an apache proposal for AMQP.
> >
> >
> > >
> > >  http://activemq.apache.org/**amqp.html<
> > http://activemq.apache.org/amqp.html>
> > >> https://cwiki.apache.org/**confluence/display/ACTIVEMQ/**AMQP<
> > https://cwiki.apache.org/confluence/display/ACTIVEMQ/AMQP>
> > >>
> > >> I can send and receive messages using AMQP URLs:
> > >>
> > >> amqp://127.0.0.1/route
> > >>
> > >> But I dont know how to set the paramers to active the selector/filters
> > for
> > >> selecting only messages with priority=5 or priority>5 (examples),
> tried
> > a
> > >> lot of combinations:
> > >>
> > >> amqp://127.0.0.1/route?header.**priority=5<
> > http://127.0.0.1/route?header.priority=5>
> > >> amqp://127.0.0.1/route?header.**priority%3E5<
> > http://127.0.0.1/route?header.priority%3E5>
> > >> amqp://127.0.0.1/route?**transport.transformer=jms&**priority=E5<
> > http://127.0.0.1/route?transport.transformer=jms&priority=E5>
> > >> amqp://127.0.0.1/route?**transport.transformer=jms&**priority%3E5<
> > http://127.0.0.1/route?transport.transformer=jms&priority%3E5>
> > >> amqp://
> 127.0.0.1/route?**transport.transformer=jms&**header.priority=E5
> > <http://127.0.0.1/route?transport.transformer=jms&header.priority=E5>
> > >> amqp://
> > 127.0.0.1/route?**transport.transformer=jms&**header.priority%3E5<
> > http://127.0.0.1/route?transport.transformer=jms&header.priority%3E5>
> > >> ...
> > >>
> > >
> > > First, I don't believe the the Qpid Proton Messenger API (which I
> assume
> > > from the subject is what you are using?) provides any way to set a
> filter
> > > on attach.
> > >
> > >
> > In deed, there is no Proton API for doing that, so I guessed it will be
> > only available using parameters in AMQP address.
> >
> >
> > > Second, though I could be wrong as I too am new to ActiveMQ, it also
> > looks
> > > like the AMQP transport for ActiveMQ does not support the selector
> filter
> > > extension(?). Certainly in my experiments it doesn't apply any
> filtering.
> > >
> >
> > I don't know so, I did several trys but the only thing I need to do is
> find
> > in the source code of ActiveMQ.
> >
> > Thanks.
> >
> >
> > --
> > Pablo Rodríguez Rey (http://mr.xkr.es)
> > Area de Tecnologías de la Información y las Comunicaciones Aplicadas
> > Edificio ATICA ~ Sección de Redes ~ Despacho B1.2.004 ~ Tel. 868 88 8209
> > Universidad de Murcia, 30100 Campus de Espinardo (Murcia - Spain)
> > "i've mapped my mind on my dick"
> >
>
>
>
> --
> *Christian Posta*
> http://www.christianposta.com/blog
> twitter: @christianposta
>



-- 
Pablo Rodríguez Rey (http://mr.xkr.es)
Area de Tecnologías de la Información y las Comunicaciones Aplicadas
Edificio ATICA ~ Sección de Redes ~ Despacho B1.2.004 ~ Tel. 868 88 8209
Universidad de Murcia, 30100 Campus de Espinardo (Murcia - Spain)
"i've mapped my mind on my dick"

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message