2011-11-16 11 views
10

Ho bisogno di una proprietà personalizzata da impostare per ogni JVM del server in Weblogic. Qual è l'approccio migliore che lo fa?Argomenti personalizzati da impostare in JVM Weblogic

So che possiamo specificare i argments come di seguito:

  1. Nel riquadro struttura di domini, espandere il nodo Server.
  2. Fare clic sul nome del server che si desidera configurare.
  3. Nel riquadro destro, fare clic su Avvio server.
  4. Seleziona Blocca & Modifica.
  5. Nella casella di testo Argomenti, fornire le opzioni JVM. Dopo aver inserito le tue opzioni, fai clic su Salva. Quindi fare clic su Attiva modifiche.
  6. Riavviare il server in modo che vengano utilizzate le nuove impostazioni.

La mia domanda è come viene definito esattamente l'argomento? Come usare quell'argomento all'interno dell'applicazione che verrà distribuita all'interno di quella JVM.

Modifica

Se specifico, -DMyArg=MyValue e nel codice, value=System.getproperty("MyValue"); questo dovrebbe funzionare, giusto?

+0

Per utilizzare WLST per aggiungere args ServerStart controllare la mia risposta [qui] (http://stackoverflow.com/questions/12629395/weblogic-using-environment-variable-double-quotes-in- arguments-in-server/12634463 # 12634463) – Mani

risposta

8

Edit: Se specifico, "-DMyArg = MyValue" e nel codice, value = System.getProperty ("MyValue"); questo dovrebbe funzionare, giusto?

piccolo errore, si consiglia di utilizzare

value=System.getProperty("MyArg"); 

Questo funziona però solo con NodeManager abilitato. Se questo non è il caso, quello che faccio è impostare nella startWeblogic.cmd come uno dei JAVA_OPTIONS

Ancora meglio è il setDomainEnv.cmd che ha linee per

set EXTRA_JAVA_PROPERTIES=... 
+2

Ma setDomainEnv.cmd dice proprio in alto: # ATTENZIONE: questo file viene creato dalla Configurazione guidata. # Eventuali modifiche a questo script potrebbero andare perse quando si aggiungono estensioni a questa configurazione. –

0

Se avete bisogno di un " custom proprietà da impostare per ogni JVM del server in weblogic ", quindi l'utilizzo di startWeblogic.cmd o setDomainEnv.cmd non sarà sufficiente poiché imposterà lo stesso valore per tutti i server.

Una cosa che si può fare se il NodeManager non è abilitato è modificare manualmente il file config.xml e aggiungere/modificare l'elemento <arguments> sotto l'elemento <server-start> per ogni server.

Ma questo non è raccomandato (vedere qui: http://docs.oracle.com/cd/E23943_01/web.1111/e13716/config_files.htm). È molto meglio affidarsi a NodeManger e utilizzare la procedura che hai descritto.

Diverso da quello la risposta sopra value=System.getProperty("MyArg"); è corretta.

0

Generalmente creo script di chiamata semplici per ogni server gestito in DOMAIN_HOME, che a sua volta chiamano gli script di avvio generici nella directory/bin, come quello che WebLogic crea automaticamente per Admin Server. So che puoi ignorare gli argomenti di memoria in questo modo e sono abbastanza sicuro che tu possa cambiare JVM.

Ecco un esempio di uno script di test per Windows:

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

che immagino in UNIX sarebbe qualcosa di simile (scusate non so molto di script bash):

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

credo che cambiare la JVM sarebbe qualcosa di simile:

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

sarebbe interessato a sentire anioni Il feedback di e su questo. Spero che aiuti qualcuno. . .

0

nella directory bin modificare setDomainEnv.sh trovare la linea di seguito:

Se USER_MEM_ARGS è impostata la variabile d'ambiente, usarlo per sostituire ALL MEM_ARGS aggiungere le righe al di sotto e modificare i valori di conseguenza

Per Server Admin

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

Per server gestito

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