2010-06-11 14 views
10

Necesito ejecutar varias (más de 4) instancias del servidor JBoss en una sola máquina. Estoy usando JBoss 4.2.3 GA.¿Cómo se ejecutan varias instancias de JBoss en una sola máquina?

+1

Básicamente, debe establecer diferentes puertos para cada servidor. Consulte el tutorial [this] (http://community.jboss.org/wiki/ConfiguringMultipleJBossInstancesOnOnemachine) para obtener información completa. –

+0

Esto podría ayudarlo http://www.digizol.com/2006/09/jboss-4-how-to-change-port-8080-in.html – lkamal

Respuesta

12

Encontré la respuesta. Tenemos que configurar el jboss-service.xml para ejecutar varias instancias en la misma máquina.

Es posible que tengamos que mantener la misma instancia "predeterminada" que en el JBOSS_HOME \ Serve r.

Tenemos que crear otra carpeta que diga "instancia2" debajo de JBOSS_HOME \ Server. Copie todos los contenidos de JBOSS_HOME \ Server \ default en esta carpeta recién creada.

Ahora vaya a la carpeta conf bajo directorio JBOSS_HOME \ Server \ instance2. Edite jboss-service.xml. Busque mbean code="org.jboss.services.binding.ServiceBindingManager" en este archivo de configuración.

Por defecto, se comenta esta etiqueta xml. Tenemos que comentarlo y cambiar el valor ports-00 a ports-01.

A continuación, inicie esta instancia instance2 jboss. Podemos acceder a esta aplicación utilizando el número de puerto 8180.

Podemos realizar hasta un máximo de 3 instancias de esta manera.

permite ejecutar más de esto tenemos que añadir más etiquetas de funcionamiento en JBOSS_HOME \ docs \ ejemplos \-gerente de la unión \ sample-bindings.xml.

+0

Ha encontrado la respuesta en 10 minutos. Creo que quieres compartir esto como una información. –

5

Puede simplificar las cosas simplemente cambiando la IP a la que está destinado el servidor.

Tendrá que copiar toda la carpeta jboss varias veces y configurar run.bat para usar el parámetro -b en el inicio.

Si se trata de un servidor de Windows y está ejecutando jboss como un servicio, es posible que desee editar el service.bat para cada instancia también para que todos los servidores tengan diferentes nombres en el panel de control de servicios.

Parte del problema que encontramos al tratar de usar diferentes puertos HTTP fue que jboss usa 'muchos' puertos para diferentes propósitos y fue un dolor editar todos estos números de puerto para que fueran únicos en cada instancia. Al cambiar la dirección de enlace puede evitar este problema por completo.

1

1) Copia la carpeta por defecto con el nuevo nombre: nombre de la instancia

2) En jboss- service.xml Descomentar los mbean ServiceBindingManager y cambiar el ServerName para puertos-01 o 02 o 03 por ejemplo: puertos-01 y La configuración de ports-01/02/03 debería estar allí en sample-bindings.xml (presente en docs/examples/binding-manager) Y hacer los cambios en todos los puertos mencionados bajo las etiquetas ports-01/02/03, para que los puertos no tendrá conflicto Recuerde que el servidor se ejecutará en el puerto de enlace como 8080/8180/8182.

de cmd promt vaya a la carpeta bin y ejecutar las instancias con cmd:

carrera nombreDeInstancia -c

2

crear múltiples adaptadores de bucle y se unen cada dirección IP para diferente instancia.

No hay necesidad de cambiar el puerto.

RK

1

Ejecución de varias instancias de JBoss en el mismo servidor:

  1. Debemos tener la instancia "por defecto" mismo que se encuentra bajo el JBOSS_HOME ** \ Server
  2. Copiar el valor por defecto la carpeta con el nuevo nombre (nombre de instancia) dice default2 en JBOSS_HOME \ Server. Copie todos los contenidos de JBOSS_HOME \ Server \ default a esta carpeta recién creada.
  3. El administrador del servicio de enlace debe estar habilitado en conf/jboss-service.xml para las instancias que no están utilizando los puertos predeterminados. a. (es decir) En la instancia copiada, vaya a la carpeta conf en el directorio JBOSS_HOME \ Server \ default2. Edite el jboss-service.xml. b. Busque mbean code="org.jboss.services.binding.ServiceBindingManager" en este archivo de configuración. c. Por defecto, esta etiqueta xml está comentada. Tenemos que descomentarlo y cambiar el valor de ports-00 a ports-01.
  4. En el mismo archivo, en "Conector de transporte de socket", en la sección "Configuración", serverBindPort debe cambiarse a otro valor o entrará en conflicto con el valor predeterminado (4446).

    <mbean code="org.jboss.remoting.transport.Connector" 
    name="jboss.remoting:service=Connector,transport=socket" 
    display-name="Socket transport Connector"> 
    ... 
    <attribute name="Configuration"> 
    ... 
    <attribute name="serverBindPort">25447</attribute> 
    

    ...

  5. En default2/deploy/ejb3.deployer/META-INF/jboss-service.xml, para los mbean remoting.transport.Connector, el puerto 3873 debe ser cambiado a otro valor o se entrará en conflicto con el valor predeterminado.

    <mbean code="org.jboss.remoting.transport.Connector" 
         name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3"> 
        <depends>jboss.aop:service=AspectDeployer</depends> 
        <attribute name="InvokerLocator">socket://${jboss.bind.address}:25874</attribute> 
    ... 
    

  6. En default2 \ deploy \ jboss-web.deployer \ server.xml

conjunto redirigir valor del puerto a la configurada en el paso 4

<Connector port="8180" address="${jboss.bind.address}" 
maxThreads="250" maxHttpHeaderSize="8192" 
emptySessionPath="true" protocol="HTTP/1.1" 
enableLookups="false" redirectPort="25447" acceptCount="100" 
connectionTimeout="20000" disableUploadTimeout="true" /> 

Además, el valor de puerto configurado en el paso 5

<!-- Define an AJP 1.3 Connector on port 8009 --> 
<Connector port="25010" address="${jboss.bind.address}" protocol="AJP/1.3" //change the connector port value to avoid conflict 
emptySessionPath="true" enableLookups="false" redirectPort="25874" /> // port value configured in step 5 

En resumen, la estructura del directorio para configurar otras dos instancias sería algo así como como el siguiente con modificaciones en los nombres de los archivos en negrita.

$ JBOSS_HOME/server/default

$ JBOSS_HOME/servidor/default2

$ JBOSS_HOME/servidor/default2/conf/jboss-service.xml

$ JBOSS_HOME/servidor/default2/deploy/ejb3.deployer/META-INF/jboss-service.xml

$ JBOSS_HOME/servidor/default2/implementar/jboss-web.deployer/server.xml **

$ JBOSS_HOME/servidor/default3

$ JBOSS_HOME/servidor/default3/conf/jboss- service.xml

$ JBOSS_HOME/servidor/default3/implementar/ejb3.deployer/META-INF/jboss-service.xml

$ JBOSS_HOME/servidor/default3/implementar/jboss-web. Delaware ployer/server.xml ** símbolo del sistema

7.From ir a la carpeta bin y ejecutar las instancias con cmd:

plazo nombreinstancia -c

En este caso, es: plazo default2 -c

Y las aplicaciones acceder a la URL como:

http://localhost:8080/myapp/ 
http://localhost:8180/myapp/ 
http://localhost:8280/myapp/ 

Nota: ca n ir por un máximo de 3 instancias de esta manera. Para ejecutar más de esto, tenemos que agregar algunas más etiquetas en ejecución en JBOSS_HOME \ docs \ examples \ binding-manager \ sample-bindings.xml.

0

La forma más rápida y sencilla que se tiene en cuenta es simplemente configurar múltiples direcciones IP para la máquina de alojamiento. Luego puede usar las diferentes direcciones IP para enlazar a cada instancia. Hacer esto significa que no tiene que cambiar ningún puerto predeterminado y permite un entorno más fácil de administrar.

1

He usado este artículo para instalar el mío. http://wiki.adempiere.net/Setup_2_Adempiere_JBoss_server_in_1_physical_server

Debe crear diferentes servicios para controlar los servidores de adempiere.

Además, si trabaja con el informe de jaspe, use nombres de archivos únicos para los informes o se enfrentará a una excepción de permiso denegado.

Ej .: si adjunta "report.jrxml" a dos servidores. El servidor creará el archivo /tmp/report.jrxml tmp.

El segundo servidor también tratará de crear el mismo archivo y obtener estrellado

0

Podemos hacer esto fácilmente en JBoss EAP Por primera instancia, acaba de empezar el JBOSS como es.

para la segunda instancia, Copie la carpeta de inicio de JBOSS en una ubicación diferente.

vaya a standalone/configuration/standalone.xml. vaya a la sección (en la parte inferior del archivo) y establezca el valor de compensación de puerto en algún valor (EX: 10000) que no tenga ningún problema de enlace de puerto en la aplicación actualmente en ejecución. Aquí el valor predeterminado de puerto-trazado es 0.

inicia la segunda instancia como de costumbre.

0

copia completa de instalación de JBOSS a la nueva ubicación, y comenzar un nuevo servidor con compensados ​​ opción, que se iniciará el servidor de IP existente y el cambio de puerto a previously_configured_port + offset

standalone.bat -c standalone-full.xml -Djboss.socket.binding.port-offset=100

Este comando hará por defecto consola de JBoss 9990 a 10090

Ahora puede agregar el archivo de la guerra en la nueva carpeta despliegues e iniciar el despliegue de nuevo puerto

Cuestiones relacionadas