From: Steve B. <st...@te...> - 2008-09-12 18:55:19
|
> We do pay a lot of attention to thread safety and have made us of Doug > Lea's > concurrency libraries to solve that problem. It's possible that there > is a bug, sure, but it's something we've thought a lot about and > haven't had problems with before. (I mean, specifically the > simultaneous build throttle). > > Can you tell me how you are configuring Proxool and how you are using it? Hi Bill, First, my users have seen this problem but I haven't personally seen it. I want to do some more investigation about the version of QuickFIX/J they are using. A user posted a bug related to the simultaneous build throttle setting in 0.9.0RC2 and we worked around it. However, the user may be using a version prior to the fix. http://www.quickfixj.org/jira/browse/QFJ-316 As for how we use Proxool, it's pretty basic. We create a data source, set some bean properties to configure it, and then proceed to use it. > Also, your log file should output the configuration (if you make it > appropriately verbose). It would be interesting to see whether you have > more pools than you expect - or if that error occurs before the pool > has been configured. I'll need to ask my user to do this. Looking at the 0.9.1, I'm not sure how the configuration could be thread safe. The settings are stored in unprotected member fields. The data source getConnection() method can be called from multiple threads and those configuration fields might not be consistent across processor caches. I'm also wondering about the comment in the FastArrayList used to store the pooled connections. It says the implementation is not cross-platform and may fail unexpectedly on some architectures (presumedly due to insufficient synchronization). If "some architectures" means multicore or multiprocessor architectures, those are becoming very common. I noticed the comment is from version 0.6. Is this not a concern? Regards, Steve |