2009-09-24 13 views
6

मैं वेबलॉगिक 10.3 ऐप सर्वर पर कुछ समांतर नौकरियों को निर्धारित करने के लिए वर्कमैनेजर का उपयोग करना चाहता हूं।वेबलॉगिक 10.3 में वर्कमैनेजर्स को आप कैसे कॉन्फ़िगर करते हैं?

http://java.sun.com/javaee/5/docs/api/javax/resource/spi/work/WorkManager.html

मैं थोड़ा खंडित और पालन करने के लिए कठिन ओरेकल/BEA प्रलेखन ढूँढने रहा हूँ और यह EJB 3.0 से WorkManagers उपयोग करने के लिए अच्छा उदाहरण नहीं है।

विशेष रूप से, मैं जानना चाहते हैं:

1) वास्तव में क्या है, अगर कुछ है, मैं अपने तैनाती वर्णनकर्ता (EJB-jar.xml और दोस्तों) में डाल की जरूरत है?

2) मैं अपने ईजेबी 3 सत्र बीन में वर्कमैनेजर को इंजेक्ट करने के लिए @ रिसोर्स एनोटेशन का उपयोग करना चाहता हूं। संसाधन के लिए मैं किस "नाम" का उपयोग करता हूं?

3) मैं वर्कमैनेजर के लिए थ्रेड और अन्य पैरामीटर की संख्या को कैसे कॉन्फ़िगर कर सकता हूं।

मेरी समझ यह है कि वेबलॉगिक पर अंतर्निहित कार्यान्वयन कॉमनजे है, लेकिन यदि संभव हो तो मैं एक गैर-मालिकाना दृष्टिकोण का उपयोग करना पसंद करूंगा।

+0

मैंने इस लेख में वर्णित टाइमर सेवा का उपयोग करके दृष्टिकोण के पक्ष में कार्य प्रबंधकों को त्यागना समाप्त कर दिया। http://www.devx.com/Java/Article/33694/1954 सरल और अधिक पोर्टेबल और मेरे पास सरल आवश्यकताओं के लिए बेहतर फिट। – hallidave

उत्तर

8

सबसे पहले, आपको बीईए ओरेकल और आईबीएम द्वारा Timer and Work Manager API (CommonJ) Programmer’s Guide में विकसित टाइमर और वर्क मैनेजर एपीआई के कार्यान्वयन को कॉमनजे का दस्तावेज मिलेगा। वे एक कार्य प्रबंधक उदाहरण प्रदान करते हैं लेकिन यह इस दस्तावेज़ में इंजेक्शन नहीं है।

1) वास्तव में, अगर कुछ भी है, तो मुझे अपने परिनियोजन वर्णनकर्ताओं (ejb-jar.xml और दोस्तों) में डालने की ज़रूरत है?

Work Manager Deployment खंड के अनुसार:

कार्य प्रबंधक उचित तैनाती डिस्क्रिप्टर में एक संसाधन-रेफरी के माध्यम से सर्वर के स्तर पर परिभाषित कर रहे हैं। यह web.xml या ejb-jar.xml अन्य लोगों के बीच हो सकता है।

तैनाती वर्णनकर्ता निम्नलिखित टुकड़ा दर्शाता एक WorkManager को कॉन्फ़िगर कैसे करें:

... 
<resource-ref> 
    <res-ref-name>wm/MyWorkManager</res-ref-name> 
    <res-type>commonj.work.WorkManager</res-type> 
    <res-auth>Container</res-auth> 
    <res-sharing-scope>Shareable</res-sharing-scope> 
</resource-ref> 
... 

नोट: WorkManager वस्तुओं के लिए JNDI नाम स्थान के लिए सिफारिश की उपसर्ग जावा है: कंप्यूटर अनुप्रयोग/env/wm। अधिक जानकारी के लिए

चेक WorkManager javadocs (उदाहरण के लिए "रेस लेखन और रेस के बंटवारे स्कोप विनिर्देश के इस संस्करण में अनदेखी कर रहे हैं। EJB या सर्वलेट तो WorkManager उपयोग कर सकते हैं के रूप में यह करने की जरूरत है। ")।

2) मैं अपने ईजेबी 3 सत्र बीन में वर्कमैनेजर को इंजेक्ट करने के लिए @ रिसोर्स एनोटेशन का उपयोग करना चाहता हूं। संसाधन के लिए मैं किस "नाम" का उपयोग करता हूं?

मैं कुछ इस तरह (नहीं परीक्षण किया) कहेंगे:

@ResourceRef(jndiName="java:comp/env/wm/MyWorkManager", 
auth=ResourceRef.Auth.CONTAINER, 
type="commonj.work.WorkManager", 
name="MyWorkManager") 

3) मैं धागे और अन्य पैरामीटर WorkManager के लिए की संख्या कैसे कॉन्फ़िगर करूँ।

पर कार्य प्रबंधक विस्तृत जानकारी के लिए <work-manager> तत्व का वर्णन और Using Work Managers to Optimize Scheduled Work देखें

मेरे समझ CommonJ है कि WebLogic पर अंतर्निहित कार्यान्वयन, लेकिन मैं एक गैर मालिकाना का उपयोग करना पसंद होता है यदि संभव हो तो दृष्टिकोण।

मैं (, मैं इसे का उपयोग कर कोई फ़र्क नहीं पड़ेगा और, जब तक इस कार्यान्वयन मानकों का पालन के रूप में) किसी भी अन्य सुझाव नहीं है।

+0

ऐसा लगता है 1) और 2) एक ही चीज़ के दो अलग-अलग संस्करण हैं? मुझे लगता है कि आपको केवल 2 करने की आवश्यकता है) एक शुद्ध ईजेबी 3 ऐप है? – hallidave

+0

मुझे ऐसा भी लगता है। लेकिन मैंने परीक्षण किया 1), 2 नहीं) –

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