<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-2813261110497121234.post6685789891568502491..comments</id><updated>2007-08-25T13:38:00.397-07:00</updated><category term='ruby'/><category term='anaemic domain objects'/><category term='stubba'/><category term='asynchronous'/><category term='recording helper'/><category term='make constructor protected'/><category term='DRY'/><category term='ActiveMessaging'/><category term='ActiveMQ'/><category term='standard_params'/><category term='thoughtworks'/><category term='textmate'/><category term='readability of tests'/><category term='hiring'/><category term='ruby developer'/><category term='reliable'/><category term='moist tests'/><category term='module'/><category term='focused unit test'/><category term='service objects'/><category term='rails'/><category term='stub_object'/><category term='with_constants'/><category term='jruby'/><category term='readability'/><category term='testing'/><category term='jms'/><category term='asynchronous messaging'/><category term='ActiveMessaging ActiveMQ asynchronous messaging jms jruby rails'/><title type='text'>Comments on Beech Bonanza: Performance of the JRuby JMS messaging solution</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.shaneharvie.com/feeds/6685789891568502491/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/6685789891568502491/comments/default'/><link rel='alternate' type='text/html' href='http://www.shaneharvie.com/2007/07/performance-of-jruby-jms-messaging.html'/><author><name>Shane Harvie</name><uri>http://www.blogger.com/profile/01016971334424471677</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/182/394043885_0f2634cf9b.jpg?v=0'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2813261110497121234.post-2125596628931483689</id><published>2007-08-25T13:38:00.000-07:00</published><updated>2007-08-25T13:38:00.000-07:00</updated><title type='text'>I've finally gotten around to testing the JMS impl...</title><content type='html'>I've finally gotten around to testing the JMS implementation again.  With only 100 messages, only one thread opens up.  (I just did puts "Thread id: #{Thread.current.id}" within the onMessage method, and only saw one thread.  So I think the testing method, whilst not perfect (because of all of the puts statements) is ok.  I think jruby JMS is much faster.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/6685789891568502491/comments/default/2125596628931483689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/6685789891568502491/comments/default/2125596628931483689'/><link rel='alternate' type='text/html' href='http://www.shaneharvie.com/2007/07/performance-of-jruby-jms-messaging.html?showComment=1188074280000#c2125596628931483689' title=''/><author><name>Shane Harvie</name><uri>http://www.blogger.com/profile/01016971334424471677</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/182/394043885_0f2634cf9b.jpg?v=0'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.shaneharvie.com/2007/07/performance-of-jruby-jms-messaging.html' ref='tag:blogger.com,1999:blog-2813261110497121234.post-6685789891568502491' source='http://www.blogger.com/feeds/2813261110497121234/posts/default/6685789891568502491' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-912667705'/></entry><entry><id>tag:blogger.com,1999:blog-2813261110497121234.post-3958968002675286855</id><published>2007-07-07T17:24:00.000-07:00</published><updated>2007-07-07T17:24:00.000-07:00</updated><title type='text'>I think that a more instructive benchmark would be...</title><content type='html'>I think that a more instructive benchmark would be to start as many poller instances as there are Java threads.  As Jon and Andrew said, activemessaging is architected to avoid threading issues with rails.&lt;BR/&gt;&lt;BR/&gt;The good news is that I'm still massaging the JMS adapter in ActiveMessaging and my goal is to make it run in a number of different scenarios.  Feel free to browse the a13g discussion group, I'll be posting some of my thoughts on the JMS adapter there shortly.  Thanks.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/6685789891568502491/comments/default/3958968002675286855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/6685789891568502491/comments/default/3958968002675286855'/><link rel='alternate' type='text/html' href='http://www.shaneharvie.com/2007/07/performance-of-jruby-jms-messaging.html?showComment=1183854240000#c3958968002675286855' title=''/><author><name>Cliff Moon</name><uri>http://www.blogger.com/profile/15447163373902589465</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.shaneharvie.com/2007/07/performance-of-jruby-jms-messaging.html' ref='tag:blogger.com,1999:blog-2813261110497121234.post-6685789891568502491' source='http://www.blogger.com/feeds/2813261110497121234/posts/default/6685789891568502491' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-117050499'/></entry><entry><id>tag:blogger.com,1999:blog-2813261110497121234.post-7651943277514209465</id><published>2007-07-07T10:29:00.000-07:00</published><updated>2007-07-07T10:29:00.000-07:00</updated><title type='text'>That is some interesting stuff - but I am with Jon...</title><content type='html'>That is some interesting stuff - but I am with Jon, the linear graph for the poller is consistent with serial processing of each message, whereas if it was processing with multiple threads, you would get a flattened curve like the jms curve.&lt;BR/&gt;&lt;BR/&gt;Are you using the jruby jms adapter in active messaging, or stomp?  &lt;BR/&gt;&lt;BR/&gt;Ola contrbuted a grest jruby only adapter which needs no poller - &lt;BR/&gt;&lt;BR/&gt;http://groups.google.com/group/activemessaging-discuss/browse_thread/thread/d3cfc1a4c25f3ce7&lt;BR/&gt;&lt;BR/&gt;This was the basis of the jms adapter now in activemessaging, I think all it is missing is that the one in activemessaging does use a jruby specific poller, and the jndi lookup stuff - more info about it here:&lt;BR/&gt;&lt;BR/&gt;http://groups.google.com/group/activemessaging-discuss/browse_thread/thread/f040badd01d6cbee/bb272bd28db7967a&lt;BR/&gt;&lt;BR/&gt;cool stuff, I'm gonna have to watch your blog more closely.&lt;BR/&gt;&lt;BR/&gt;-Andrew Kuklewicz</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/6685789891568502491/comments/default/7651943277514209465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/6685789891568502491/comments/default/7651943277514209465'/><link rel='alternate' type='text/html' href='http://www.shaneharvie.com/2007/07/performance-of-jruby-jms-messaging.html?showComment=1183829340000#c7651943277514209465' title=''/><author><name>kookster</name><uri>http://www.blogger.com/profile/02981489803973809446</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.shaneharvie.com/2007/07/performance-of-jruby-jms-messaging.html' ref='tag:blogger.com,1999:blog-2813261110497121234.post-6685789891568502491' source='http://www.blogger.com/feeds/2813261110497121234/posts/default/6685789891568502491' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2113840327'/></entry><entry><id>tag:blogger.com,1999:blog-2813261110497121234.post-7553257310576905877</id><published>2007-07-06T03:30:00.000-07:00</published><updated>2007-07-06T03:30:00.000-07:00</updated><title type='text'>That's a very interesting benchmark!&lt;br&gt;&lt;br&gt;My the...</title><content type='html'>That's a very interesting benchmark!&lt;BR/&gt;&lt;BR/&gt;My theory is that the JMS solution achieves much higher throughput by utilizing multiple threads, where as a13g has been specifically designed to prevent multiple threads in Rails. It's really interesting that Rails doesn't fall over when getting exposed to multiple threads.&lt;BR/&gt;&lt;BR/&gt;Have you measured how many connections gets opened up to the database? I think this solution could benefit from connection pooling.&lt;BR/&gt;&lt;BR/&gt;It would be interesting to integrate this approach into a13g so you could benefit from the higher throughput and still be able to use a higher level programming model.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/6685789891568502491/comments/default/7553257310576905877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/6685789891568502491/comments/default/7553257310576905877'/><link rel='alternate' type='text/html' href='http://www.shaneharvie.com/2007/07/performance-of-jruby-jms-messaging.html?showComment=1183717800000#c7553257310576905877' title=''/><author><name>tirsen</name><uri>http://www.blogger.com/profile/07016235297221856738</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.shaneharvie.com/2007/07/performance-of-jruby-jms-messaging.html' ref='tag:blogger.com,1999:blog-2813261110497121234.post-6685789891568502491' source='http://www.blogger.com/feeds/2813261110497121234/posts/default/6685789891568502491' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-117514762'/></entry></feed>
