ResourceManagerImpl.getResource() causes locking issues
-------------------------------------------------------

                 Key: VELOCITY-595
                 URL: https://issues.apache.org/jira/browse/VELOCITY-595
             Project: Velocity
          Issue Type: Bug
          Components: Engine
    Affects Versions: 1.5
         Environment: jdk 1.5
            Reporter: Allen Gilliland


The ResourceManagerImpl.getResource() method is synchronized, which makes it 
difficult to share a Velocity Runtime between threads in an environment such as 
a j2ee web application.

After upgrading Velocity to version 1.5 in Roller and running some performance 
tests I saw a very noticeable decrease in throughput for the application.  I 
fired up jconsole and noticed that almost all of my app server threads were in 
a BLOCKED state and were waiting on the ResourceManagerImpl.getResource() 
method.

In my particular case the difference resulted in a loss of 2/3 of my original 
ops/sec, which is pretty huge.  After simply switching Velocity back to the 1.4 
release and rerunning the test I saw the results I expected.

I assume this is overactive use of Java synchronization because the developer 
guide suggests that the singleton model is "very appropriate model for use in a 
Servlet 2.2+ compliant web application".




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to