Multiplos WAR's dentro de um EAR é mais custoso para um servidor de aplicação?

Ola,

Estou trabalhando com o seam framework, sei que não vem ao caso, e me surgiu a seguinte dúvida que postei no assunto:
Multiplos WAR’s dentro de um EAR é mais custoso para um servidor de aplicação, sendo estes CRUD’s simples ?

Obrigado.

[quote=caioalx]Ola,

Estou trabalhando com o seam framework, sei que não vem ao caso, e me surgiu a seguinte dúvida que postei no assunto:
Multiplos WAR’s dentro de um EAR é mais custoso para um servidor de aplicação, sendo estes CRUD’s simples ?

Obrigado.[/quote]

Não, Pois o intuito do EAR é justamente subir tudo de uma vez.

Se vc for subir aplicação por aplicação na mão é mais custoso.

Concordo que subir um por vez é muito mais trabalhoso, mas em relação ao desempenho do servidor?

Grato.

[quote=caioalx]Concordo que subir um por vez é muito mais trabalhoso, mas em relação ao desempenho do servidor?

Grato.[/quote]

Bom em um Servidor o comportamento que ele vai ter ao subir vai ser de consumir muita memoria no inicio, e ir diminuindo com o passar do tempo, até chegar ao consumo ideal.

Se vc fizer manualmente vai começar baixo e ir aumentando e depois de muito tempo se estabilizar novamente igual ao primeiro caso.

voce está pensando em fazer algum teste??

[quote=caioalx]Concordo que subir um por vez é muito mais trabalhoso, mas em relação ao desempenho do servidor?

Grato.[/quote]

Com relação ao desempenho, provavelmente consumirá mais recusos do servidor, além de utilizar um classloader diferente. Mas isso é algo insignificante e não será o motivo de algum gargalo que sua aplicação venha a ter.

O empacotamento nunca deve ser feito com base em recursos, deve ser feito com base na natureza do que é colocado no servidor. Você não vai empacotar um aplicativo web no JBoss como um SAR, por exemplo.

Obrigado pelas respostas, então não devo me preocupar, claro que não posso sair abusando, é apenas para alguns casos específicos de cadastro e validação de funcionários da empresa que serão feitos poucas vezes ao ano. Obrigado a todos.

Calma lá, você não deve se preocupar com relação ao consumo de recursos do servidor por subir um EAR ou um WAR, você deve avaliar se a sua aplicação deve ou não ser empacotada em um EAR baseado na natureza dela. Deixe os detalhes internos do servidor pra outras ocasiões.

Calma lá, você não deve se preocupar com relação ao consumo de recursos do servidor por subir um EAR ou um WAR, você deve avaliar se a sua aplicação deve ou não ser empacotada em um EAR baseado na natureza dela. Deixe os detalhes internos do servidor pra outras ocasiões.[/quote]+1

Entendi, agradeço a todos. Tenho mais uma dúvida antes de encerra o tópico. Fiz um teste, apenas por curiosidade, criei um projeto web(WAR) separado do pacote EAR, ambos no mesmo servidor de aplicação, onde o web consumirá os session beans do EJB.
Consegui pegar por via de JNDI, mas não por via da annotation @EJB, o mesmo sempre me retorna null, ja fiz de tudo, mas nada resolveu. Agradeço desde então.

Segue abaixo o Código:

---------EAR---------------------------
Projeto EJB(hello)

package com.myapp;

import javax.ejb.Stateless;

/**
 * Session Bean implementation class HelloEJB3
 */
@Stateless
public class HelloEJB3 implements HelloEJB3Remote {

	private String greeting = "Hello, EJB3!";
    /**
     * Default constructor. 
     */
    public HelloEJB3() {
        // TODO Auto-generated constructor stub
    }

	public String sayHello() {
		// TODO Auto-generated method stub
		return greeting;
	}

}

Projeto EJB(hello-client)

package com.myapp;

import javax.ejb.Remote;

@Remote
public interface HelloEJB3Remote {
	public String sayHello();
}

--------WAR--------------------------------------
Projeto WEB(helloWeb)

import javax.ejb.EJB;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class HelloTest {

	//not work
	@EJB(mappedName="HelloEJB3")
	private HelloEJB3Remote helloEJB3;
	
	//work
	private HelloEJB3Remote helloEJB3I = (HelloEJB3Remote) new InitialContext().lookup("helloEAR/HelloEJB3/remote");
	
	private String msg;
	private String msg2;
	
	public HelloTest() throws NamingException{
		this.msg = helloEJB3I.sayHello();
		this.msg2 = helloEJB3.sayHello();
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public String getMsg2() {
		return msg2;
	}

	public void setMsg2(String msg2) {
		this.msg2 = msg2;
	}

}

web.xml

<?xml version="1.0"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<display-name>helloWeb</display-name>
	<context-param>
		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
		<param-value>server</param-value>
	</context-param>
	<listener>
		<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
	</listener>
	<!-- Faces Servlet -->
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<!-- Faces Servlet Mapping -->
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.jsf</url-pattern>
		<url-pattern>*.faces</url-pattern>
	</servlet-mapping>
</web-app>

jsp apenas para mostrar resultado

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Teste do EJB3</title>
</head>
<body>
<f:view>
	<h:outputText value="#{helloTest.msg}" />
	<h:outputText value="#{helloTest.msg2}" />
</f:view>
</body>
</html>

Agradeço desde então.

Apenas um add, subo o projeto desse jeito sem alterar nada e não acusa nenhum erro quando o servidor sobe, apenas quando entra no home.jsp devido o nullpointer. Via debug da pra ver que o jndi funciona e o ejb3 não.

Utilizo o Jboss 5.1 GA e JSF 1.2. Esse projetinho foi gerado via eclipse mesmo.

Grato.