मैं जेबॉस ईएपी 6 के लिए एक क्ली स्क्रिप्ट पर काम कर रहा हूं (बस एक .bat फ़ाइल में कमांड का एक गुच्छा)।

अब मैं उन आदेशों के साथ समस्याओं में भाग रहा हूं जो एक दूसरे पर भरोसा करते हैं, जहां पूर्व सर्वर को "पुनः लोड-आवश्यक" स्थिति में सेट करता है।

उदाहरण के लिए:

  1. पहला कमांड: डिफॉल्ट-डेटासोर्स को हटा दें ExampleDS। परिणाम: सफलता, सर्वर राज्य में "पुनः लोड आवश्यक"
  2. दूसरा आदेश: h2-driver को हटा दें (डिफ़ॉल्ट डेटा स्रोत द्वारा आवश्यक)। परिणाम: विफल, क्योंकि सर्वर अभी तक पुनरारंभ नहीं हुआ है।

मैंने बीच में एक reload कमांड डालने की कोशिश की है, लेकिन ऐसा लगता है जैसे दूसरी कमांड निष्पादित होने पर सर्वर पूरी तरह से ऊपर नहीं है। परिणाम अभी भी विफल है, हालाँकि अगर मैं इसे कुछ सेकंड बाद आज़माता हूँ, तो यह काम करता है।

/subsystem=datasources/data-source=ExampleDS:remove
reload
/subsystem=datasources/jdbc-driver=h2:remove

जेबॉस पूरी तरह से फिर से शुरू होने तक सीएलआई को प्रतीक्षा करने के लिए कोई सुझाव?

5
Jbartmann 13 जुलाई 2016, 18:11

1 उत्तर

सबसे बढ़िया उत्तर

बैच चलाने के बाद उन आदेशों को एक साथ बैचने और पुनः लोड करने का प्रयास करें। उदाहरण के लिए:

batch
/subsystem=datasources/data-source=ExampleDS:remove
/subsystem=datasources/jdbc-driver=h2:remove
:reload
run-batch

एक अन्य विकल्प सर्वर को कॉन्फ़िगर करते समय सर्वर को admin-only मोड में शुरू करने के लिए चलाना है। उस स्थिति में आपको reload कमांड की आवश्यकता होगी, लेकिन यदि आप सुनिश्चित करते हैं कि आप :reload(admin-only=true) का उपयोग तब तक करते हैं जब तक आप सर्वर को कॉन्फ़िगर नहीं कर लेते।

%JBOSS_HOME%\bin\standalone.bat --admin-only
rem Wait until server is started, then execute the CLI commands
%JBOSS_HOME%\bin\jboss-cli.bat -c --commands="/subsystem=datasources/data-source=ExampleDS:remove,/subsystem=datasources/jdbc-driver=h2:remove"
4
James R. Perkins 15 जुलाई 2016, 21:05