You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by Norman <no...@apache.org> on 2010/10/21 07:43:24 UTC
Add JMS Stream transaction support
Hi devs,
the JAMES project is using ActiveMQ for implementing its Mail Queue. So
far everything works out well. We use BytesMessage's for transfering the
Mails, which work out but is not very memory efficient because we need
to hold the whole message in memory. So we introduced some kind of
treshold limit which allows us to failover to BlobMessage's once a size
treshold was hit. But I'm not 100 % happy with this because it will make
clustering etc just really complex (because of the need to manual
replicate the out-of-band stored message).
So I had a look at the JMS Streams stuff (ActiveMQInputStream /
ActiveMQOutputStream), which does better fit our need at the first look
;). To make it usable for us I already submitted two patches which are
these:
https://issues.apache.org/activemq/browse/AMQ-2990 (committed)
https://issues.apache.org/activemq/browse/AMQ-2988 ( still open)
But still with this patches one thing is missing for our usecase,
transactions :) From the docs I found and from the source-code I
understood that the whole transaction must be keeped in memory while it
is running (on the broker). Neverless I think thats not a problem if its
documented. Sure that will not workout verywell with 10gb messages, but
with for example 50mb it will prolly work out (depending on how many
transactions are active at the same time and how much heap the broker
has). So what about adding support for transactions and just state it
in the docs ? To be more clear I would volunteer to write the patch for
it ;)
WDYT ?
Bye,
Norman