I found the culprit. For those who have performance related issue, this might be one of
the reasons. The culprit here was the use of FetchType.EAGER. This might be because of
"load-before-update" strategy hibernate uses to check the columns have changed.
Over use of EAGER means its going to load every related entities in memory and therefore
performance is effected.
Make all relations LAZY except for those that are absolutely required. You can easily
debug and find out if the application server is working hard to synchronize with the
database by using Use tags
| <property name="hibernate.show_sql" value="true"/>
| <property name="hibernate.use_sql_comments"
value="true"/>
|
in persistence.xml file. This will show you what is happening in background and you can
find out what entities get loaded will persisting or merging.
I hope hibernate or jboss comes up with better strategy to synchronize the data. This
doesn't seems to be effecting the performance with server like GlassFish or JDO
framework. They have different algorithm that performans more efficients.
Feedback are welcomed to improve the performance further.
Murtuza
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3996091#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...