I was evaluating Sonic ESB.In a Linux box with Intel Xeon.This process uses
1) 4 transformation service steps – which add timestamp information when the the step is executed
2) 1 CBR step – This just routes to the next step without checking any other condition
3) 2 Java sevice steps – These services do not perform any real processing logic.
There are NO database calls
Here is the statistics of the time taken to process messages. The messages were pumped on to the process at a modest speed of 10 per second.
With 5 threads configured for each of Sample process, CBR, Transformation and Java service types
msgs seconds msg/sec
200 82 2.44
500 185 2.70
1000 590 1.69
With 10 threads configured for each of Sample process, CBR, Transformation and Java service types
msgs seconds msg/sec
200 90 2.22
500 204 2.45
1000 620 1.61
These are the figures when a single broker(MgmtBroker), my services & process deployed in test-container and JMS client for pumping message was running on same machine.
Not understanding why I am getting this kind of performance.
Is this because my sonic is evaluation version, not the licensed version?
Workbench does have some different capabiities to a production version, but a Workbench is effectively the same whether you use the eval or the Professional Developer editon. Perhaps the biggest difference in Workbench is that all caching is turned off for any services, so your .cbr, .js, and .xsl files are effectively looked up on every request from the D.S.
The next point is that you need to be really careful about when you have Intracontainer turned on (and again, Workbench installed containers have this off by default (although you can enable this). That means every step is going over a JMS hop.
Finally, understanding the listeners is important. For example, if every process calls the XML Tranformation step 4 times then you are getting 4 service() calls for each process. If you only have 5 XML Transformers, you are effectively limiting throughput to these servcies as they will always be busy. (Even if you enable intracontainer, you will still be limiting yourself to 5 simulaneous transformations.
In summary, given the process that has an Entry Endpoint, and 7 steps and 5 of these steps use sonicfs files, each call to the process results in:
- 10 JMS messages with application traffic, and 10 (5 x Request + Reply) of the sonicfs lookups.
So based on what I am seeing in your example, it looks like you are only processing as if you have 1 1/4 (and 2 1/2) listeners in the 5 and 10 case, because of the blocking in the XML Transformation. Also, as you are sending messages in at 10 msg/sec you are gradually filling up all the queues (and topic) buffers while you sent the total count, and this would increase the latency on what is going on.
Short Answer:
- NO. Evaluation and Licenced copies of Sonic ESB are the same.
- HOWEVER, Workbench and Deployment have different characteristics. (This includes not only the 'Eclipse-part', but also the Domain Manager and Containers). The previous response talks more about this, but the main points are:
All these implact performance