में कॉल विधियों असीमित, मैं लॉग इन विधि के दौरान समय बचाने के लिए डेटाबेस के आंकड़ों के लिए अस्थायी रूप से डेटाबेस के आंकड़ों के लिए लॉगिन प्रक्रिया का परिणाम सहेजने का प्रयास करता हूं। लेकिन किसी भी तरह से लॉग इन प्रक्रिया अधिक समय लेती है अगर मैं thyn.s as ascc विधि में सोता हूं। ऐसा क्यों है? मैंने सोचा कि प्रमाणीकरण विधि लिखने के लिए इंतजार नहीं करेगा ResultToStats मेथोड खत्म करने के लिए।ईजेबी
@Stateless
@LocalBean
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
@TransactionManagement(TransactionManagementType.CONTAINER)
public class CustomerBeanTest {
@PersistenceContext(unitName = WebPersistenceUnits.QISADS)
private EntityManager em_local;
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public void authenticate(Long loginid, String cmppassword) {
try {
Login l = em_local.find(Login.class, loginid);
String s = l.getPassword();
if (!s.equalsIgnoreCase(cmppassword))
throw new PasswordMissmatchException();
writeResultToStats(loginid, true);
} catch (PasswordMissmatchException e) {
writeResultToStats(loginid, false);
}
}
@Asynchronous
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
private void writeResultToStats(Long loginID, boolean success) {
try { // just for testing
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
LogUtils log = new LogUtils(this);
Login l = em_local.find(Login.class, loginID);
if (success) {
l.setSuccessLast(new Date());
l.setSuccessCount(l.getSuccessCount()+1);
log.log(Level.INFO, "Update Login Stat Success [%d, %s, %d]", l.getId(), l.getName(), Thread.currentThread().getId());
} else {
l.setFailureLast(new Date());
l.setFailureCount(l.getFailureCount()+1);
log.log(Level.INFO, "Update Login Stat Fail [%d, %s, %d]", l.getId(), l.getName(), Thread.currentThread().getId());
}
}
}
मुझे लगता है कि यदि आप किसी अन्य EJB में अतुल्यकालिक विधि को तोड़ने की जरूरत है:
लेकिन बजाय एक और सेम बनाने के बजाय, आप SessionContext के माध्यम से अतुल्यकालिक सेम विधि कॉल कर सकते हैं। जैसा कि अभी है, इसे स्थानीय विधि-आमंत्रण –
के रूप में संभाला जाएगा, मुझे इसे आज़माएं और –
पर वापस आएं। धन्यवाद। –