2011-10-05 11 views
6

मैंने @Asynchronous एनोटेशन का उपयोग करके ईजेबी 3.1 में एसिंक्रनाइज़ किए गए व्यवहार को समझने के लिए एक छोटा परीक्षण लिखा था। ऐसा लगता है कि:असिंक्रोनस ईजेबी 3.1 विधियों और लेनदेन

प्रणाली कॉलर के रूप में ही की फलियों में मौजूद हैं, तो

  1. कॉल नहीं रह गया है asynchronized है।
  2. कॉलर लेनदेन रोल बैक के लिए चिह्नित किया गया है, अगर एसिंक्रोनस विधि में लेनदेन वापस लुढ़का हुआ है; इसकी शायद के 1.

हालांकि, अगर अतुल्यकालिक विधि एक और सेम में मौजूद है, व्यवहार की उम्मीद है अर्थात कॉल पक्ष प्रभाव अतुल्यकालिक है और फोन करने वाले लेन-देन स्वतंत्र है (async विधि लेन-देन के लिए REQUIRES_NEW व्यवहार है)। यह मेरे लिए परेशान है, क्योंकि दोनों मामलों में व्यवहार समान नहीं है। क्या कोई स्पष्टीकरण देगा?

पीएस पर्यावरण ईजेबी 3.1, जेबॉस 6

+1

क्या आप 'इस' कीवर्ड का उपयोग करने के बजाय 'सत्र कॉन्टेक्स्ट # getBusinessObject (class)' का उपयोग कर विधि को कॉल कर रहे हैं? (अंतर समझाया गया है [यहां] (http://stackoverflow.com/questions/3381002/how-is-the-return-value-of-sessioncontext-getbusinessobject-different-from-thi/3384128#3384128)) – stratwine

+0

@ stratwine लगभग निश्चित रूप से समस्या, मैं बस इसे एक जवाब में बदल जाएगा। –

+0

@stratwine आप सही हैं, कृपया उत्तर में अपनी टिप्पणियां लिखें ताकि मैं – anergy

उत्तर

5

SessionContext#getBusinessObject(class) का उपयोग करने के बजाय this कीवर्ड का उपयोग करके विधि को कॉल करना। (अंतर here समझाया गया है)

संबंधित मुद्दे