Hi Can you try as suggested by Christian to use the ActiveMQ based UUID generator. And if possible can you post some details about the performance gain you see?
We should consider switching the default uuid generator in Camel back to the AMQ based if its much faster. The JDK UUID based is used when you run Camel in the cloud which may not have access to some APIs which the AMQ based need on startup. So its a matter of just letting them use the Java UUID based if they run in the cloud, and we can use the fastes by default instead. On Mon, Sep 20, 2010 at 7:05 PM, camel_el <eric.ladouc...@cse-cst.gc.ca> wrote: > > Hi, > > my system is generating a lot of exchanges (many concurrent threads), so > many that creating an exchange becomes a bottleneck. An exchangeId is > created by the UuidGenerator class, which is using > java.security.SecureRandom. SecureRandom then calls its secureRandomSpi: > > UuidGenerator.generateUuid() -> UUID.randomUUID() -> > secureRandom.nextBytes(n) -> secureRandomSpi.engineNextBytes(n) > > where secureRandomSpi.engineNextBytes(n) is synchronized. Obviously, this > call becomes a bottleneck. I have modified UuidGenerator so that it creates > a 1-up number (probably not the best, but it worked for the time being) and > I saw a major performance gain. > > Would it be possible to: > > 1- Change the way Camel creates the exchangeId? > - or - > 2- Provide a hook where we could supply our own ExchangeIdFactory? > If we use our own factory, what are the constraints? > > Thanks. > -- > View this message in context: > http://camel.465427.n5.nabble.com/UuidGenerator-performance-issue-tp2846866p2846866.html > Sent from the Camel - Users mailing list archive at Nabble.com. > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus