Internal Server Error or HTTP error 500. Any time you see this error, it generally means web server is not able to fulfill the request.
Scenario: The B2B system that I was working on talks to SAP for order fullfillment and placement. clicking order review, it was throwing exception during invocation of method "flush" on bean "BeanId(WC_LIVE#Enablement-BaseComponentsData.jar#ServerJDBCHelper, null)". Exception data: javax.ejb.EJBException: nested exception is: javax.ejb.EJBException: executeUpdate returned zero rows updated.
All the energies were spent from checking DB locks to implementation of optimistic locking to double click handler on client/server but finally figured out the problem was if the response was not within 40 sec(ServerOTimeout="40") webserver was marking appserver down and it was throwing internal server error.
Resolution:
we Increased the serverIPTimeout to 300 seconds in plugin-cfg.xml
Before: LoadBalanceWeight="20", ServerIOTimeout="40"
After: LoadBalanceWeight="2", ServerIOTimeout="300