Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Procedimiento

  • Bajar el jboss
  • Editar el archivo <o3>/jboss/server/default/conf/jboss-service.xml y
    Buscar (en instalaciones nueva debería esta aprox línea 190)

    Code Block
    
    <mbean code="org.jboss.services.binding.ServiceBindingManager"
       name="jboss.system:service=ServiceBindingManager">
       <attribute name="ServerName">ports-default</attribute>
       <attribute name="StoreURL">${jboss.server.home.url}/port-bindings.xml</attribute>
       <attribute name="StoreFactoryClassName">org.jboss.services.binding.XMLServicesStoreFactory</attribute>
    </mbean>
    

    Comentar todo, con esto hacemos que JBoss use el juego de puertos por defecto

    Code Block
    
    <!--mbean code="org.jboss.services.binding.ServiceBindingManager"
       name="jboss.system:service=ServiceBindingManager">
       <attribute name="ServerName">ports-default</attribute>
       <attribute name="StoreURL">${jboss.server.home.url}/port-bindings.xml</attribute>
       <attribute name="StoreFactoryClassName">org.jboss.services.binding.XMLServicesStoreFactory</attribute>
    </mbean-->
    
  • Editar el archivo <o3>/jboss/server/default/deploy/ejb3.deployer/META-INF/jboss-service.xml
    Buscar:

    Code Block
    
       <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">rmi://${jboss.bind.address}:3873</attribute>
             <handlers>
                <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
             </handlers>
       </mbean>
    

    Comentamos

    Code Block
    
       <!--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">rmi://${jboss.bind.address}:3873</attribute>
             <handlers>
                <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
             </handlers>
       </mbean-->
    
    A continuación en el mismo archivo buscamos y descomentamos

    Cortamos y pegamos el siguinete código acontinuación del anterior:

    Code Block
        <!-- The following is sample configuration for modifying the Connector-->
       <mbean code="org.jboss.remoting.transport.Connector"
              name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3">
          <depends>jboss.aop:service=AspectDeployer</depends>
          <attribute name="Configuration">
             <config>
                <invoker transport="socketrmi">
                   <attribute name="numAcceptThreads">1</attribute>
                   <attribute name="maxPoolSize">300</attribute>
                   <attribute name="clientMaxPoolSize" isParam="true">50</attribute>
                   <attribute name="timeout" isParam="true">60000<>0</attribute>
                   <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
                   <attribute name="serverBindPort">3873</attribute>
    <!-- líneas agregadas-->
                   <attribute name="backlog">200<clientConnectAddress">mi_webaddress.com</attribute>
     
              </invoker>     <attribute name="clientConnectPort">3873</attribute>
    <!-- líneas agregadas-->
       <handlers>                <handler subsystem<attribute name="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>backlog">200</attribute>
                </handlers>invoker>
                </config><handlers>
          </attribute>    </mbean--> 
    Descomentamos, agregamos 2 líneas y modificamos algunos valores (recomendamos cortar y pegar el código):
    Code Block
        <!-- The following is sample configuration for modifying the Connector--><handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
               <mbean code="org.jboss.remoting.transport.Connector" </handlers>
              name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3"></config>
           <depends>jboss.aop:service=AspectDeployer</depends></attribute>
          <attribute name="Configuration">
             <config>
                <invoker transport="rmi"></mbean>
    

    El valor de mi_webaddess.com debe ser el nombre (DNS) con que se ve nuestro sitio

Para versiones anteriores a 5.4

  • Editar el archivo <o3>/jboss/server/default/deploy/jms/uil2-service.xml (si no lo encuentra en su instalación, siga el procedimiento que se indica más abajo para versiones 5.4 o posteriores).
    Buscar:

    Code Block
     <mbean code="org.jboss.mq.il.uil2.UILServerILService"
                   <attribute name="numAcceptThreads">1</attribute>jboss.mq:service=InvocationLayer,type=UIL2">
    
        <!-- The server chain -->
         <attribute <depends optional-attribute-name="maxPoolSize">300</attribute>Invoker">jboss.mq:service=Invoker</depends>
        <!-- JNDI binding  -->
          <attribute name="clientMaxPoolSize" isParam="true">50<ConnectionFactoryJNDIRef">ConnectionFactory</attribute>
        <!-- JNDI binding for XA -->
         <attribute name="timeout" isParam="true">0<XAConnectionFactoryJNDIRef">XAConnectionFactory</attribute>
        <!-- The bind address   -->
        <attribute name="serverBindAddressBindAddress">${jboss.bind.address}</attribute>
        <!-- The bind port -->
          <attribute name="serverBindPortServerBindPort">3873<>8093</attribute>
        <!-- líneas agregadas-->
           The ping period in millis -->
           <attribute name="clientConnectAddress">mi_webaddress.com<PingPeriod">60000</attribute>
        <!-- Whether tcp/ip does not wait for buffer fills -->
        <attribute name="clientConnectPortEnableTcpNoDelay">3873<>true</attribute>
        <!-- líneas agregadas-->
               Used to disconnect the client on the serverside if there is no activity -->
       <attribute name="backlog">200</attribute>
                </invoker> <!-- Ensure this is greater than the ping period -->
        <attribute name="ReadTimeout">120000</attribute>
        <!-- Used to disconnect the client on the <handlers>clientside if there is no activity -->
        <!-- Ensure this is greater <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
      than the ping period -->
        <attribute name="ClientReadTimeout">120000</attribute>
        </handlers>!-- The size of the buffer (in bytes) wrapping the </config>
    socket -->
         </attribute><!-- The buffer is flushed after each request -->
        <attribute name="BufferSize">2048</attribute>
        </mbean>
    
    El valor de mi_webaddess.com debe ser el nombre (DNS) con que se ve nuestro sitioEditar el archivo <o3>/jboss/server/default/deploy/jms/uil2-service.xml
    Buscar:
    Code Block
    
     <mbean code="org.jboss.mq.il.uil2.UILServerILService"
             name="jboss.mq:service=InvocationLayer,type=UIL2">
    
        <!-- The server chain -->
        <depends optional-attribute-name="Invoker">jboss.mq:service=Invoker</depends>
        <!-- JNDI binding !-- Large messages may block the ping/pong -->
        <!-- A pong is simulated after each chunk (in bytes) for both reading and writing -->
        <!-- It must be larger than the buffer size -->
        <attribute name="ConnectionFactoryJNDIRefChunkSize">ConnectionFactory<>1000000</attribute>
      </mbean>
     <!-- JNDI binding for XA -->

    Agregar un linea

    Code Block
     <mbean code="org.jboss.mq.il.uil2.UILServerILService"
            <attribute name="XAConnectionFactoryJNDIRef">XAConnectionFactory</attribute>jboss.mq:service=InvocationLayer,type=UIL2">
    
        <!-- The bindserver addresschain -->
        <attribute<depends optional-attribute-name="BindAddressInvoker">${jboss.bind.address}</attribute>>jboss.mq:service=Invoker</depends>
        <!-- TheJNDI bindbinding port -->
        <attribute name="ServerBindPortConnectionFactoryJNDIRef">8093<>ConnectionFactory</attribute>
        <!-- TheJNDI pingbinding periodfor inXA millis -->
        <attribute name="PingPeriodXAConnectionFactoryJNDIRef">60000<>XAConnectionFactory</attribute>
        <!-- WhetherThe tcp/ip does not wait for buffer fillsbind address -->
        <attribute name="EnableTcpNoDelay">true<BindAddress">${jboss.bind.address}</attribute>
        <!-- UsedThe bind toport disconnect-->
    the client on the serverside if there is no activity -->
        <!-- Ensure this is greater than the ping period<attribute name="ServerBindPort">8093</attribute>
        <!-- The ping period in millis -->
        <attribute name="PingPeriod">60000</attribute>
        <!-- Whether tcp/ip does not wait for buffer fills -->
        <attribute name="ReadTimeoutEnableTcpNoDelay">120000<>true</attribute>
        <!-- Used to disconnect the client on the clientsideserverside if there is no activity -->
        <!-- Ensure this is greater than the ping period -->
        <attribute name="ClientReadTimeoutReadTimeout">120000</attribute>
        <!-- TheUsed sizeto ofdisconnect the bufferclient (inon bytes)the wrapping the socketclientside if there is no activity -->
        <!-- TheEnsure bufferthis is flushedgreater than afterthe eachping requestperiod -->
        <attribute name="BufferSizeClientReadTimeout">2048<>120000</attribute>
        <!-- Large messages may blockThe size of the buffer (in bytes) wrapping the ping/pongsocket -->
        <!-- AThe pongbuffer is simulatedflushed after each chunk (in bytes) for both reading and writing -->request -->
        <attribute name="BufferSize">2048</attribute>
        <!-- ItLarge mustmessages bemay larger thanblock the bufferping/pong size -->
        <attribute name="ChunkSize">1000000</attribute>
      </mbean>
    
    Agregar un linea
    Code Block
    
     <mbean code="org.jboss.mq.il.uil2.UILServerILService"
       <!-- A pong is simulated after each chunk (in bytes) for both reading and writing -->
         name="jboss.mq:service=InvocationLayer,type=UIL2">
    
        <!-- The server chain<!-- It must be larger than the buffer size -->
        <depends<attribute optional-attribute-name="Invoker">jboss.mq:service=Invoker</depends>
        ChunkSize">1000000</attribute>
    <!-- JNDIlíneas binding agregada-->
        <attribute name="ConnectionFactoryJNDIRef">ConnectionFactory<ConnectAddress">mi_webadddess.com</attribute>
      
     <!-- JNDI binding for XA líneas agregada-->
        <attribute name="XAConnectionFactoryJNDIRef">XAConnectionFactory</attribute>
        <!-- The bind address -->
        <attribute name="BindAddress">${jboss.bind.address}</attribute>
        <!-- The bind port -->
        <attribute name="ServerBindPort">8093</attribute>
        <!-- The ping period in millis -->
        <attribute name="PingPeriod">60000</attribute>
        <!-- Whether tcp/ip does not wait for buffer fills -->
        <attribute name="EnableTcpNoDelay">true</attribute>
        <!-- Used to disconnect the client on the serverside if there is no activity -->
        <!-- Ensure this is greater than the ping period -->
        <attribute name="ReadTimeout">120000</attribute>
        <!-- Used to disconnect the client on the clientside if there is no activity -->
        <!-- Ensure this is greater than the ping period -->
        <attribute name="ClientReadTimeout">120000</attribute>
        <!-- The size of the buffer (in bytes) wrapping the socket -->
        <!-- The buffer is flushed after each request -->
        <attribute name="BufferSize">2048</attribute>
        <!-- Large messages may block the ping/pong -->
        <!-- A pong is simulated after each chunk (in bytes) for both reading and writing -->
        <!-- It must be larger than the buffer size -->
        <attribute name="ChunkSize">1000000</attribute>
    <!-- líneas agregada-->
        <attribute name="ConnectAddress">mi_webadddess.com</attribute>
    <!-- líneas agregada-->
      </mbean>
    
    Criterio idententico para mi_webaddressEn
    </mbean>
    

    Criterio identico para mi_webaddress

Si su versión de O3BI es 5.4 ó posterior

  • Se requiere modificar el archivo <o3>/jboss/server/default/deploy/jboss-messaging.sar/remoting-bisocket-service.xml, en la seccion <config>, <invoker transport="bisocket">, deben agregarse (o modificarse si existieran) las línea siguientes:
Code Block
<attribute name="clientConnectAddress">direccion-ip-externa</attribute>
<attribute name="generalizeSocketException" isParam="true">true</attribute> 
<attribute name="secondaryBindPort">4758</attribute>

donde direccion_ip_externa es la dirección ip con la que se accede desde afuera del firewall. El secondaryBindPort puede ser cualquier puerto (no necesariamente el 4758), pero también debe estar abierto en el firewall (NAT) para que sea accesible desde fuera.

En este link se adjunta un ejemplo tomado de la version 5.4.022.

También es necesario modificar el archivo <o3>/sh/jboss.sh (o bat), agregando una property para la maquina virtual java:

JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=direccion-ip-externa"    (en linux)

JAVA_OPTS=%JAVA_OPTS% -Djava.rmi.server.hostname=direccion-ip-externa (en windows)

Para cualquier versión de O3

  • Debemos hacer que la máquina se vea así misma con mi_webaddress pare el caso de estar GNU/Linux editar el /ete/hosts de modo que tenga la siguiente línea

    Code Block
    
    ip_del_server DNS_externo(mi_webaddess)
    
  • Abrir en el firewall y hacer NAT de los siguientes puertos (más el 4758 en versiones posteriores a la 5.4):

    Puerto

    Descripción

    1099

    JNDI

    1098

    JNDI

    3455

    EJB3

    3873

    EJB3 a través de RMI

    4446

    JWF

    5744

    RMI IdeaSoft

    8093

    JMS

  • Levantar el JBoss