{"id":788,"date":"2013-01-04T06:33:46","date_gmt":"2013-01-04T10:33:46","guid":{"rendered":"https:\/\/gonzalo.aro.cl\/blog\/?p=788"},"modified":"2013-01-04T06:33:46","modified_gmt":"2013-01-04T10:33:46","slug":"distintas-versiones-de-la-misma-aplicacion-en-jboss-4-2-x","status":"publish","type":"post","link":"https:\/\/gonzalo.aro.cl\/blog\/2013\/01\/04\/distintas-versiones-de-la-misma-aplicacion-en-jboss-4-2-x\/","title":{"rendered":"Distintas versiones de la misma aplicaci\u00f3n en JBoss 4.2.x"},"content":{"rendered":"<p>La verdad sea dicha, carecemos de recursos ilimitados para poder probar aplicaciones en ambientes ni siquiera similares a los que poseen nuestros clientes, esto solo existe para productos m\u00e1s consolidados. Por lo mismo hay que buscar las estrateg\u00edas necesarias para que en un servidor quepan multiples instancias y as\u00ed rentabilizar m\u00e1s los recursos.<\/p>\n<p>Cuando se habla de multiples instancias estamos hablando de que JBoss se puede configurar para correr en m\u00e1s de un puerto, una explicaci\u00f3n bastante buena esta en un <a href=\"https:\/\/agtech.com.ar:81\/wordpress\/?p=89\" title=\"Multiples instancias en JBoss\">blog<\/a> de una compa\u00f1\u00eda argentina <a href=\"https:\/\/agtech.com.ar:81\/wordpress\/\" title=\"Avant Garden Technologies\">Avant Garden Technologies<\/a>. Con este art\u00edculo podr\u00e1s tener multiples instancias de JBoss, aun cuando el \u00fanico reparo que debo hacerle es que el cambiar por \u00abfuerza bruta\u00bb los puertos S\u00ed funciona, yo lo pude hacer cuando aun no entend\u00eda bien como funcionaba el tema de las instancias, ellos indican lo contrario. Aun as\u00ed ellos entregan con argumentos conceptuales y practicos para poder establecer m\u00e1s de una instancia. <\/p>\n<p>Pero llegue al punto en donde tengo una aplicacion que debo mantener multiples versiones. Aun cuando tenga multiples instancias algunas configuraciones se solapan. Es posible mantener en multiples instancias multiples datasources debido a que esta dentro de la carpeta deploy. Pero muchas veces requieres leer un archivo especifico, que debes colocar en una ruta externa a JBoss, para lo cual te vales del CLASSPATH de Java&#8230; y ah\u00ed existe un problema cuando deseas ejecutar distintas versiones de la aplicaci\u00f3n en el mismo servidor, no importando que tengas multiples instancias el CLASSPATH para JBoss es \u00fanico, para todas sus instancias, por lo que se te provocan algunos problemas.<\/p>\n<p>La aplicaci\u00f3n lee un archivo de propiedades x.properties, este archivo esta ubicado en alguna parte dentro del CLASSPATH si tu deseas modificar una llave de este archivo la modificar\u00e1s para ambas versiones de la aplicaci\u00f3n, y eso no es lo que ando buscando, sino que cada aplicaci\u00f3n lea su propio properties. Inicialmente hice que la version de producci\u00f3n leyera x.properties y la version de qa y.properties, pero nos paso la cuenta el control de versiones, en donde estos archivos son distintos por lo que las nuevas llaves creadas en y.properties no eran traspasadas a x.properties siempre, con los inherentes problemas de ejecuci\u00f3n.<\/p>\n<p>Ahora bien, la exigencia de que el properties este fuera de JBoss (el servidor de aplicaciones) es un petici\u00f3n del cliente, es m\u00e1s solucionable si esto estuviese dentro, debido a que cada instancia ver\u00eda su ambito solamente.<\/p>\n<p>Entonces como hab\u00edan dos CLASSPATH excluyentes lo que hice fue copiar la carpeta JBoss completa, y con las multiples instancias ya aplicadas fue hacer un <\/p>\n<pre class=\"brush: bash\">\r\n\/usr\/local\/jboss\/bin\/run.sh -b 0.0.0.0 -c default \r\n<\/pre>\n<p>y un<\/p>\n<pre class=\"brush: bash\">\r\n\/usr\/local\/jbossqa\/bin\/run.sh -b 0.0.0.0 -c qa\r\n<\/pre>\n<p>Y as\u00ed tuve dos instancias de JBoss con la misma aplicaci\u00f3n y distinta versi\u00f3n, apuntando a distintos CLASSPATH<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La verdad sea dicha, carecemos de recursos ilimitados para poder probar aplicaciones en ambientes ni siquiera similares a los que poseen nuestros clientes, esto solo existe para productos m\u00e1s consolidados. Por lo mismo hay que buscar las estrateg\u00edas necesarias para que en un servidor quepan multiples instancias y as\u00ed rentabilizar m\u00e1s los recursos. Cuando se [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6,14,7],"tags":[],"class_list":["post-788","post","type-post","status-publish","format-standard","hentry","category-desarrollo","category-java","category-jboss","category-jee"],"_links":{"self":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/788"}],"collection":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/comments?post=788"}],"version-history":[{"count":2,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/788\/revisions"}],"predecessor-version":[{"id":790,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/788\/revisions\/790"}],"wp:attachment":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/media?parent=788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/categories?post=788"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/tags?post=788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}