java ee - EJB method processing hangs somewhere during execution -
i have strange problem, here quick snapshot of system: have web application calls local ejb bean, lets call local ejb 'localejb', ejb calls remote ejb - 'remoteejb' method processing on external system , returns string result. happens within weblogic 8.1
here example processing:
web application:
//create reference local bean lochome = (localhome)servicelocator.getinstance().getlocalhome("ejb/localejb"); beanref = lochome.create(); //call bean method string result = beanref.updatesmth(data.getid(),data.getrelatedids(),integer.valueof(data.getstate())); //print result log.debug("result is: " + result);
i have logging enabled on local bean inside ejb application:
log.debug("state " + state); res = session.updatesmth(id, relatedids, state); log.debug("result inside bean call: " + res);
where 'session' reference remote bean.
now happens, request comes application, method 'beanref.updatesmth' executes, calls method inside local ejb, after second or 2 can see in log file eg. 'result inside bean call: 0231423', means remote bean returned result, have wait 5-6 minutes until see result inside web application (statement 'log.debug("result is: " + result);'). takes long pass results web application, transaction commiting (the local bean has 'required')?
i can see in weblogic config xml file transaction timeout set 1800 seconds matter if results ready return straight away?
as expected, caused container waiting commit transaction. database record locked , prevented container commit transaction causing timeout in end.
Comments
Post a Comment