currently , we are using older version of Ofbiz( 2 year old) . we have been
facing high cpu utilization production servers atleast twice in the month.
When we took the system thread dump to find out which thread is consuming
more of cpu (more than 90%) , following is the thread dump of thread :
"http-0.0.0.0-8080-Processor12" daemon prio=1 tid=0x37110468 nid=0x7761
waiting for monitor entry [0x36cf6000..0x36cf6f30]
at org.ofbiz.entity.GenericEntity.setFields(GenericEntity.java)
- waiting to lock <0x5f3c32e0> (a org.ofbiz.entity.GenericValue)
In most of the high cpu utilization incidents , we used to get above thread
with similar trace. We have verified in our application code base logic if
any infinite loop or anything else could be responsible for high cpu usage
but did not found anything.
We found that setFields() method of GenericEntity.java is synchronized .
setFields() method internally invokes set() which again synchronized one.
But in the upgraded version of ofbiz , synchronized modifier has been
removed from setField() method .
I have following queries :
(a) is high cpu utilization problem because of back to back synchronized
method (setFields() and set()) ?
(b) what is/are the reason(s) removing synchronized modifier from setField()
method in GenericEntity.java ?
(c) is there ant one having similar issue or came across ?
waiting for reply.
--
View this message in context:
http://www.nabble.com/high-cpu-utilization-problems-tp19066237p19066237.html
Sent from the OFBiz - User mailing list archive at Nabble.com.