2011-11-16 22 views
10

Necesito una propiedad personalizada para establecer por cada servidor JVM en Weblogic. ¿Cuál es el mejor enfoque para hacerlo?Argumentos personalizados para establecer en Weblogic JVM

Sé que podemos especificar los argments, como a continuación:

  1. del panel de estructura de dominio, expanda el nodo Servidores.
  2. Haga clic en el nombre del servidor que desea configurar.
  3. En el panel derecho, haga clic en Inicio del servidor.
  4. Seleccionar bloqueo & Editar.
  5. En el cuadro de texto Argumentos, proporcione las opciones de JVM. Después de insertar sus opciones, haga clic en Guardar. Luego haga clic en Activar cambios.
  6. Reinicie el servidor para que se utilicen las nuevas configuraciones.

Mi pregunta es cómo exactamente se define el argumento? Cómo usar ese argumento dentro de la aplicación que se desplegará dentro de esa JVM.

Editar

Si especifico, -DMyArg=MyValue y en el código, value=System.getproperty("MyValue"); esto debería funcionar, ¿verdad?

+0

Para utilizar WLST para anexar args ServerStart comprobar mi respuesta [aquí] (http://stackoverflow.com/questions/12629395/weblogic-using-environment-variable-double-quotes-in- arguments-in-server/12634463 # 12634463) – Mani

Respuesta

8

Editar: si especifico, "-DMyArg = MyValue" y en el código, valor = System.getProperty ("MyValue"); esto debería funcionar, ¿verdad?

error leve, se debe utilizar

value=System.getProperty("MyArg"); 

Sin embargo, esto sólo funciona con NodeManager habilitado. Si ese no es el caso, lo que hago es ponerlo en el startWeblogic.cmd como uno de los JAVA_OPTIONS

aún mejor es el setDomainEnv.cmd que tiene líneas para

set EXTRA_JAVA_PROPERTIES=... 
+2

Pero setDomainEnv.cmd dice directamente en la parte superior: # ADVERTENCIA: este archivo es creado por el Asistente de configuración. # Cualquier cambio en este script puede perderse al agregar extensiones a esta configuración. –

0

si necesita una " personalizado propiedad para establecer por cada JVM de servidor en weblogic ", luego usar startWeblogic.cmd o setDomainEnv.cmd no será suficiente, ya que establecerán el mismo valor para todos sus servidores.

Una cosa que podría hacer si el NodeManager no está habilitado es editar manualmente el archivo config.xml y agregar/editar el elemento <arguments> bajo el elemento <server-start> para cada servidor.

Pero esto no se recomienda (ver aquí: http://docs.oracle.com/cd/E23943_01/web.1111/e13716/config_files.htm). Es mucho mejor confiar en NodeManger y usar el procedimiento que describió.

Aparte de eso, la respuesta anterior value=System.getProperty("MyArg"); es correcta.

0

Normalmente creo scripts de llamada simples para cada servidor administrado en DOMAIN_HOME, que a su vez llama a los scripts de inicio genéricos en el directorio/bin, como el que WebLogic crea automáticamente para el Servidor de administración. Sé que puede anular los argumentos de memoria de esta manera y estoy bastante seguro de que puede cambiar JVM.

He aquí un ejemplo de un script de prueba para Windows:

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

que supongo que en UNIX sería algo como esto (lo siento no sabe mucho acerca de los scripts Bash):

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

Creo que para cambiar la JVM sería algo así como:

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

Estaría interesado en escuchar anyon e Comentarios sobre esto. Espero que ayude a alguien. . .

0

En el directorio bin de edición setDomainEnv.sh encontrar la línea de abajo:

Si USER_MEM_ARGS se establece la variable de entorno, lo utilizan para anular ALL MEM_ARGS añada las líneas siguientes y modifique los valores en consecuencia

Para servidor de administración

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

Para servidor administrado

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