До сих пор я слышал, что синхронизация не рекомендуется для сеансового компонента ejb.
У меня есть одна проблема, которую я решил с помощью synchronized.
Код, в котором я использовал синхронизированный.
if(strBatchID != null && strBatchNumber != null){
pinGenerateSessionBeanLocalHome=getPINGenerateSessionBeanLocalHome();
if(pinGenerateSessionBeanLocalHome != null){
IPINGenerateSessionBeanLocal pinGenerateSessionBean = pinGenerateSessionBeanLocalHome.create();
synchronized(pinGenerateSessionBean){
if(pinGenerateSessionBean != null){
resultObject= pinGenerateSessionBean.generatePIN(pinBatchCustomData,iSessionInfo);
if(resultObject.getResponseCode() == PINResponseCode.SUCCESS_RESPONSE_CODE){
pinBatchCustomData= (PINBatchCustomData)resultObject.getResponseObject();
bSuccess = true;
}else{
bSuccess = false;
debugLog(PIN_MODULE_NAME,"Insertions regarding PINs could not be made successfully ");
}
}else{
bSuccess = false;
debugLog(PIN_MODULE_NAME,"PINGenerateSession Local Is Null ");
}
}
}else{
bSuccess = false;
debugLog(PIN_MODULE_NAME,"PINGenerateSession Local Home Is Null ");
}
}
Отметьте строку, где я использовал synchronized(pinGenerateSessionBean)
для синхронизации объекта bean-компонента сеанса пингенерации.
Это работает нормально. До этого у меня была проблема, когда я пытался создать две партии одновременно.
Это создает какие-либо проблемы? Производительность для меня не проблема.