2011-11-16 14 views
10

मुझे वेबलॉगिक में प्रत्येक सर्वर JVM सेट करने के लिए एक कस्टम प्रॉपर्टी की आवश्यकता है। ऐसा करने का बेहतर तरीका क्या है?वेबलॉगिक में सेट करने के लिए कस्टम तर्क JVM

मैं जानता हूँ कि हम नीचे की तरह argments निर्दिष्ट कर सकते हैं:

  1. डोमेन संरचना फलक में, विस्तार सर्वर नोड।
  2. उस सर्वर के नाम पर क्लिक करें जिसे आप कॉन्फ़िगर करना चाहते हैं।
  3. दाएं फलक में, सर्वर प्रारंभ क्लिक करें।
  4. लॉक & संपादित करें का चयन करें।
  5. तर्क टेक्स्ट बॉक्स में, JVM विकल्प प्रदान करें। अपने विकल्पों को डालने के बाद, सहेजें पर क्लिक करें। फिर परिवर्तन सक्रिय करें पर क्लिक करें।
  6. सर्वर को पुनरारंभ करें ताकि नई सेटिंग्स का उपयोग किया जा सके।

मेरा प्रश्न यह है कि तर्क को वास्तव में परिभाषित किया गया है? उस जेवीएम के अंदर उस एप्लिकेशन के अंदर उस तर्क का उपयोग कैसे करें।

संपादित

तो मैं निर्दिष्ट करते हैं, -DMyArg=MyValue और कोड में, value=System.getproperty("MyValue"); इस काम करना चाहिए, है ना?

+0

WLST उपयोग करने के लिए संलग्न करने के लिए serverstart आर्ग मेरा उत्तर [यहां] (http://stackoverflow.com/questions/12629395/weblogic-using-environment-variable-double-quotes-in- जाँच तर्क-इन-सर्वर/12634463 # 12634463) – Mani

उत्तर

8

संपादित करें: अगर मैं निर्दिष्ट करते हैं, "-DMyArg = MyValue" और कोड, मूल्य = System.getproperty ("MyValue") में; यह काम करना चाहिए, है ना?

थोड़ा सा गलती, आप

value=System.getProperty("MyArg"); 

हालांकि यह केवल के साथ NodeManager सक्षम काम करता है का उपयोग करना चाहिए। अगर ऐसी बात नहीं है, मैं क्या Java_Options

और भी बेहतर से एक के रूप startWeblogic.cmd में यह निर्धारित करने के लिए किया जाता है setDomainEnv.cmd जिसके लिए

set EXTRA_JAVA_PROPERTIES=... 
+2

लेकिन setDomainEnv.cmd शीर्ष पर सही कहता है: # चेतावनी: यह फ़ाइल कॉन्फ़िगरेशन विज़ार्ड द्वारा बनाई गई है। # इस कॉन्फ़िगरेशन में एक्सटेंशन जोड़ते समय इस स्क्रिप्ट में कोई भी परिवर्तन खो सकता है। –

0

लाइनों है कि आप एक की जरूरत है "है कस्टम प्रत्येक सर्वर प्रति सेट करने के लिए संपत्ति वेबलॉग में JVM ", फिर startWeblogic.cmd या setDomainEnv.cmd का उपयोग करने के लिए पर्याप्त नहीं होगा क्योंकि वे आपके सभी सर्वरों के लिए समान मान सेट करेंगे।

एक बात करता है, तो NodeManager सक्षम नहीं है मैन्युअल रूप से प्रत्येक सर्वर के लिए <server-start> तत्व के तहत config.xml फ़ाइल को संपादित करने और जोड़ने है/संपादित <arguments> तत्व तुम कर सकते हो।

लेकिन - यह अनुशंसित नहीं है (यहां देखें: http://docs.oracle.com/cd/E23943_01/web.1111/e13716/config_files.htm)। नोडमैंजर पर भरोसा करना और आपके द्वारा वर्णित प्रक्रिया का उपयोग करना बहुत बेहतर है।

इसके अलावा उपर्युक्त उत्तर value=System.getProperty("MyArg"); सही है।

0

मैं आमतौर पर DOMAIN_HOME के ​​तहत प्रत्येक प्रबंधित सर्वर के लिए सरल कॉल स्क्रिप्ट बनाता हूं, जो बदले में/bin निर्देशिका में जेनेरिक प्रारंभ स्क्रिप्ट को कॉल करता है - जैसे वेबलॉग स्वचालित रूप से व्यवस्थापक सर्वर के लिए बनाता है। मुझे पता है कि आप स्मृति तर्कों को इस तरह से ओवरराइड कर सकते हैं और मुझे पूरा यकीन है कि आप JVM को बदल सकते हैं।

cd bin 
SET USER_MEM_ARGS=-Xms512m -Xmx512m 
startManagedWebLogic.cmd new_ManagedServer_1 localhost:7001 

जो मैं UNIX में लगता है कि कुछ इस तरह होगा (खेद बैश स्क्रिप्ट के बारे में ज्यादा पता नहीं है):

cd bin 
export USER_MEM_ARGS="-Xms512m -Xmx512m" 
./startManagedWebLogic.sh new_ManagedServer_1 localhost:7001 

यहाँ विंडोज के लिए एक परीक्षण किया स्क्रिप्ट का एक उदाहरण है मुझे लगता है कि जेवीएम को बदलना कुछ ऐसा होगा:

export JAVA_VENDOR="Oracle" 
export USER_MEM_ARGS="-Xms512m –Xmx1g" 
./startWebLogic.sh 

किसी को भी सुनना होगा इस पर ई प्रतिक्रिया। उम्मीद है कि यह किसी की मदद करता है। । ।

0
तहत बिन निर्देशिका संपादित

setDomainEnv.sh नीचे लाइन पाते हैं:

तो USER_MEM_ARGS वातावरण चर सेट किया गया है, ALL MEM_ARGS ओवरराइड करने के लिए इसका इस्तेमाल करते हैं नीचे लाइनों को जोड़ने और व्यवस्थापक सर्वर के लिए मूल्यों तदनुसार

संशोधित

`if [ "${SERVER_NAME}" = "AdminServer" ] ; then 
USER_MEM_ARGS="-Xms256m -Xmx256m -XX:MaxPermSize=256m" 
MEM_ARGS="${USER_MEM_ARGS}" 
export MEM_ARGS 
fi` 

प्रबंधित सर्वर के लिए

`if [ "${SERVER_NAME}" != "AdminServer" ] ; then 
USER_MEM_ARGS="-Xms512m -Xmx512m -XX:MaxPermSize=256m" 
MEM_ARGS="${USER_MEM_ARGS}" 
export MEM_ARGS 
fi` 
संबंधित मुद्दे