You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Esteve Fernandez <es...@sindominio.net> on 2008/07/21 15:55:57 UTC
txAMQP released
Hi all,
I'm pleased to announce that Fluidinfo [1] is releasing a Twisted [2]
compatible AMQP stack built on the Python Qpid library.
Download from http://foss.fluidinfo.com
We've been using it for a while at Fluidinfo and have converted all the
Qpid tests to use it, so it should be considered fairly stable.
Although we'll try to keep it in sync with Qpid's stable releases, we can't
promise to track the trunk due to lack of resources.
Feedback and contributions will be greatly appreciated! :-)
Cheers.
PS: I don't know which license is the most appropiate to make it compatible
with Qpid, so I guess the ASL should suffice.
[1] - Fluidinfo - http://www.fluidinfo.com
[2] - Twisted - http://www.twistedmatrix.com
Re: metadata describing message properties?
Posted by Robert Greig <ro...@gmail.com>.
2008/7/22 Shahbaz Chaudhary <sc...@genghisfund.com>:
> There is a getPropertyNames() function, but there doesn't seem to be one
> which returns the types of the fields.
>
> Secondly, the property names are delivered as part of a message, does
> this information exist on a destination level. In other words, before a
> message is received, does (or can) the client known such meta data?
No, the properties are entirely in the application domain. You would
have to build something that returned a message containing the details
of the properties.
> My motivation is a generic Jtable which can be linked to a destination
> (topic or queue). The JTable model needs to know the number of fields
> and their types, before a message is received.
The number of fields and their types is something your application
specifies. I'd create a Service queue as follows:
1) server registers a service listening on the Service queue
2) client creates a private queue
3) client sends a message to the Service queue with a property
indicating the operation is "queryProperties", and sets the ReplyTo
address to the private queue
4) server sends a message (in XML say) that contains the topics plus
the property names and types to the client's private queue
5) client can parse the message and do with it what it wants
You can obviously build in as much sophistication as you like into the services.
RG
RE: metadata describing message properties?
Posted by Shahbaz Chaudhary <sc...@genghisfund.com>.
There is a getPropertyNames() function, but there doesn't seem to be one
which returns the types of the fields.
Secondly, the property names are delivered as part of a message, does
this information exist on a destination level. In other words, before a
message is received, does (or can) the client known such meta data?
My motivation is a generic Jtable which can be linked to a destination
(topic or queue). The JTable model needs to know the number of fields
and their types, before a message is received.
-----Original Message-----
From: Gordon Sim [mailto:gsim@redhat.com]
Sent: Tuesday, July 22, 2008 4:14 AM
To: qpid-users@incubator.apache.org
Subject: Re: metadata describing message properties?
Shahbaz Chaudhary wrote:
> I didn't notice the ability to retreive the names and types of
> properties contained in messages in the JMS api. Is this something
> qpid supports already or plans on supporting? This is very similar
> to the metadata provided by the JDBC api.
I'm not entirely sure I'm answering the right question here, but JMS
does indeed offer the ability to get and set various message properties
and the Qpid JMS client implements them. See the javadoc for the Message
interface [1].
[1] http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Message.html
Re: metadata describing message properties?
Posted by Gordon Sim <gs...@redhat.com>.
Shahbaz Chaudhary wrote:
> I didn't notice the ability to retreive the names and types of
> properties contained in messages in the JMS api. Is this something
> qpid supports already or plans on supporting? This is very similar
> to the metadata provided by the JDBC api.
I'm not entirely sure I'm answering the right question here, but JMS
does indeed offer the ability to get and set various message properties
and the Qpid JMS client implements them. See the javadoc for the Message
interface [1].
[1] http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Message.html
metadata describing message properties?
Posted by Shahbaz Chaudhary <sc...@genghisfund.com>.
I didn't notice the ability to retreive the names and types of properties contained in messages in the JMS api. Is this something qpid supports already or plans on supporting? This is very similar to the metadata provided by the JDBC api.
The idea is that I want to type out text name of a destination, and programatically retreive the type of the message, bind it to a Jtable, etc.
Perhaps later, I would look to connect to a topic, and retrieve the complete list of destinations I havve access to, and continue on with allowing users to click on an automatically pre-populated list of destination and autogenerate jtables to view the data.
Thanks
Re: java.lang.OutOfMemoryError: Java heap space
Posted by Robert Greig <ro...@gmail.com>.
2008/7/24 Shahbaz Chaudhary <sc...@genghisfund.com>:
> As mentioned in a previous email, the only reason for this I can think of is that the queues are not getting dequeued fast enough (the clients are too slow) and they start to fill up.
>
> I spent some time going through the JMX monitor (VisualJVM), but, frankly, I can't tell which queues are the ones taking up all the memory.
It would be useful to know if you have any queues with messages on
them. It doesn't really matter at this stage whether you can tell
which queue is the problem - having queues with lots of messages on
them will at least help us rule out other types of bug.
> How can I resolve this?
How many clients do you have? I would start with one client and check
the queue depth(s), and increase the number of clients.
> If C# clients were keeping up with the trunk version of qpid, I'd just upgrade and see if the issue gets resolved :)
There is an M2.1 release which is newer, however right now I would try
to do some diagnosis before upgrading anything.
Robert
java.lang.OutOfMemoryError: Java heap space
Posted by Shahbaz Chaudhary <sc...@genghisfund.com>.
I have recently been dealing with qpid (the last release M2 version) running out of memory. I'm running it on a linux box with 4 gigs of ram (2 gigs allocated to qpid).
I start sending data to qpid around 9:30 through the C# api and qpid starts with about 10 megs of memory use. Today, around 3:30, it used up its two gigs.
As mentioned in a previous email, the only reason for this I can think of is that the queues are not getting dequeued fast enough (the clients are too slow) and they start to fill up.
I spent some time going through the JMX monitor (VisualJVM), but, frankly, I can't tell which queues are the ones taking up all the memory.
I have an hprof file (1.5 gig) as well which is generated when the jvm dies due to memory problems. I can't quite tell what to look for in the file either.
Finally, I don’t think my clients are too slow. The largest amount of data I publish is less than 150 megs!
How can I resolve this?
If C# clients were keeping up with the trunk version of qpid, I'd just upgrade and see if the issue gets resolved :)
Re: txAMQP released
Posted by Esteve Fernandez <es...@sindominio.net>.
El Miércoles 23 Julio 2008 02:14:52 Carl Trieloff escribió:
> what page do you want me to link?
http://launchpad.net/txamp is the project page. BTW, would it be possible to
add a link to http://fluidinfo.com as well to get some publicity?
Cheers.
Re: txAMQP released
Posted by Carl Trieloff <cc...@redhat.com>.
Esteve Fernandez wrote:
> Hi Carl
>
> El Martes 22 Julio 2008 13:37:56 Carl Trieloff escribió:
>
>> if you create a blurb about twisted, we can add it as an integration to
>> the wiki.
>>
>
> What about this (taken from the Twisted website):
>
> "Twisted is an event-driven network programming framework written in Python
> and licensed under the MIT License."
>
> and here's a blurb for txAMQP:
>
> "txAMQP is a Python library for communicating with AMQP peers and brokers
> using Twisted"
>
> Cheers.
>
what page do you want me to link?
Carl.
Re: txAMQP released
Posted by Esteve Fernandez <es...@sindominio.net>.
Hi Carl
El Martes 22 Julio 2008 13:37:56 Carl Trieloff escribió:
> if you create a blurb about twisted, we can add it as an integration to
> the wiki.
What about this (taken from the Twisted website):
"Twisted is an event-driven network programming framework written in Python
and licensed under the MIT License."
and here's a blurb for txAMQP:
"txAMQP is a Python library for communicating with AMQP peers and brokers
using Twisted"
Cheers.
Re: txAMQP released
Posted by Carl Trieloff <cc...@redhat.com>.
if you create a blurb about twisted, we can add it as an integration to
the wiki.
Carl.
Esteve Fernandez wrote:
> El Lunes 21 Julio 2008 21:40:19 Robert Greig escribió:
>
>> Hi,
>>
>
> Hi Robert
>
>
>> It's great that you are building on top of qpid.
>>
>
> Thanks, we found the Qpid Python stack very well designed, we were able to
> plug our Twisted implementation without too much effort.
>
>
>> For those of us who live in the stone age and don't know much about
>> Twisted can you give us a quick summary of what an AMQP user gets from
>> using Twisted?
>>
>
> Well, Twisted departs from the traditional synchronous way of building network
> applications, through an asynchronous API, making it very scalable. One of
> the main advantages is that you don't need to deal with threads and their
> implying risks. Since the GIL imposes both memory and performance penalties
> if you use many threads (i.e. for reading from a socket), using an
> asynchronous framework (such as Twisted) will help you build very scalable
> architectures.
>
> However, having to code in an asynchronous way is not straightforward, and if
> you already have some code that uses recv/send (or some other synchronous
> blocking functions), you might find it a bit hard to convert it to use
> Twisted. There are some facilities to ease the transition, such as the
> inlineCallbacks decorator, which we used heavily to convert the Qpid tests to
> use txAMQP.
>
>
>> If I am a Python developer and want to use Qpid or AMQP, should I be
>> downloading Twisted?
>>
>
> As always, it depends on the problem you want to solve. If it's a simple
> client, that it's going to execute once in a while, maybe not. But, if your
> problem is complex and needs to be scalable, I recommend you to give Twisted
> a try.
>
> Cheers.
>
Re: txAMQP released
Posted by Esteve Fernandez <es...@sindominio.net>.
El Lunes 21 Julio 2008 21:40:19 Robert Greig escribió:
> Hi,
Hi Robert
> It's great that you are building on top of qpid.
Thanks, we found the Qpid Python stack very well designed, we were able to
plug our Twisted implementation without too much effort.
> For those of us who live in the stone age and don't know much about
> Twisted can you give us a quick summary of what an AMQP user gets from
> using Twisted?
Well, Twisted departs from the traditional synchronous way of building network
applications, through an asynchronous API, making it very scalable. One of
the main advantages is that you don't need to deal with threads and their
implying risks. Since the GIL imposes both memory and performance penalties
if you use many threads (i.e. for reading from a socket), using an
asynchronous framework (such as Twisted) will help you build very scalable
architectures.
However, having to code in an asynchronous way is not straightforward, and if
you already have some code that uses recv/send (or some other synchronous
blocking functions), you might find it a bit hard to convert it to use
Twisted. There are some facilities to ease the transition, such as the
inlineCallbacks decorator, which we used heavily to convert the Qpid tests to
use txAMQP.
> If I am a Python developer and want to use Qpid or AMQP, should I be
> downloading Twisted?
As always, it depends on the problem you want to solve. If it's a simple
client, that it's going to execute once in a while, maybe not. But, if your
problem is complex and needs to be scalable, I recommend you to give Twisted
a try.
Cheers.
Re: txAMQP released
Posted by Robert Greig <ro...@gmail.com>.
2008/7/21 Esteve Fernandez <es...@sindominio.net>:
> I'm pleased to announce that Fluidinfo [1] is releasing a Twisted [2]
> compatible AMQP stack built on the Python Qpid library.
Hi,
It's great that you are building on top of qpid.
For those of us who live in the stone age and don't know much about
Twisted can you give us a quick summary of what an AMQP user gets from
using Twisted?
If I am a Python developer and want to use Qpid or AMQP, should I be
downloading Twisted?
Thanks,
Robert