Eu havia entendido que todas as inst�ncias ficariam na mem�ria do container
(ativa ou passivada) e que o container faria o "papel" do nosso bom e velho
Banco de Dados.
-- de jeito nenhum. Pensa bem, imagina um banco de dados de .. um telco, sei
l�, worldcom, imagina a quantidade de clientes (20 milhoes ??) 20 milhoes de
EJB instanciados ??? Geralmente vc seta uma quantidade m�xima de beans na
memoria, o resto fica no banco.
Se n�o fosse para usar os m�todos "finders", pra que ent�o propuseram a sua
utiliza��o?
Por que um metodo do tipo findAll � ridiculo? Quando utiliz�-lo ent�o, pois
existem exemplos no J2EE Tutorial que estimulam a sua utiliza��o.
--Pode muito bem usar finders, mas tem que pensar a quantidade dos beans que
vc imagina que o finder retorna.. 1 .. 10 .. 1000000 ??? imagina que vc
precisa mostrar uma tabela com id, nome e telefone de cliente (a tabela
cliente tem 25 campos). Vale a pena usar uma entity ?? geralmente n�o. Vc
instancia 1,000,000 objetos remotos de 25 campos ou 1,000,000 de 3 campos
(ValueObject) utilizando um value list handler. Lembra que tudo tem que
passar pela rede (serializa��o) para o servidor web.
O Roberto Figueiredo cita que a documenta��o diz que um Entity dever�
trazer no m�ximo 10 registros e isso � demaseadamente grande para
performance. Onde isso est� escrito? Isso seria de grande ajuda para a
continuidade dos meus estudos e para futuras explica��es.
-- Eu nunca vi isso por escrito, mas � uma boa pr�tica que teno utilizar tb.
Nem sempre � possivel (ex. Nota Fiscal com 20 Itens, findByNotaFiscal() no
NotaItemBean retorna 20, n�o tenho como fazer isso diferente)
Diz tamb�m que um SessionBean dever� fazer uma conex�o direta para trazer
somente as chaves prim�rias dos registros que voc� quer utilizar, e usar os
EntityBean para trazer todo o resto do registro um a um pela chave
prim�ria.
--N�o � verdade. ver a lista de clientes. Teria que fazer um findByPK a cada
vez que coloque uma linha na p�gina ??? ridiculo. Cria um objeto que contem
estes valores e implementa o value list handler. Somente quando precisar do
Entity (transa��o) para mostrar os dados p/ altera��o ou exclus�o n� pagina
web, carrega o entity com findByPK.
Pois �, mas n�o � isso mesmo que um m�todo find faz?
--Pode ser, mas nem sempre � ouro que brilha. Vc deve fazer a melhor
arquitetura, e nem sempre isso inclui uso de finders.
Os finders devem ser encarados como m�todos utilizados internamente pelo
Container (com o EJBQL)? Pode ser ou pode ser SQL (bmp).
* Sobre a bibliografia que utilizei
---------------------------------
- J2EE Tutorial (Sun) [gratuito - dispon�vel no site da
http://java.sun.com/j2ee]
- Mastering Enterprise Java Beans - 2a Ed. [gratuito - dispon�vel no site
da http://www.theserverside.com]
(leitura de t�picos referentes a BMP e CMP)
- EJB Design Patterns [gratuito - dispon�vel no site da
http://www.theserverside.com]
(leitura superficial)
- Core J2EE Patterns - As Melhores Pr�ticas e Estrat�gias de Design
Deepak Alur at Al. - Ed. Campus - (leitura superficial)
Boa escolha, mas esqueca o Tutorial, e muita coisa do Mastering, ele n�o
fala nada das melhores praticas, mas somente serve para aprender EJB. E
compra os livros ;-)
* Sobre as transa��es
---------------------
[Sven]
J2EE � um plataforma transacional, performance n�o � da primeira
importancia.
Pois �. Com um app server bom, vc pode setar um flag que somente os EJB
acessam os dados. No J2EE RI isso n�o funciona, portanto, poderia utilizar
um flag (boolean isDirty) que indica q vc alterou algo.
Fora isso, usa Value Object Design Pattern e coloque 2 metodos no EJB,
getData e setData.
[Zanata] - Nova pergunta
Uma das respostas pediu para que eu desativasse a transa��o do m�todo, mas
no CMP eu tenho apenas 03 alternativas para transa��es: Required, Require
New, Mandatory. No BMP sim eu tenho 05 alternativas: Suportada, Requerida,
Requer Nova, Mandat�ria e N�o requerida. Isso est� correto ou acontece
apenas no servidor de refer�ncia?
--N�o, vale para a especifica��o EJB CMP 2.0 (EJB Spec sec. 16.4.1), Message
Driven Beans somente podem usar Required ou Not Supported, BMP todas.
* Banco de Dados Compartilhado entre Container X Sistemas Legados
------------------------------------------------------------------
� poss�vel compartilhar um Banco de Dados que est� sendo utilizado para
persist�ncia de entidades atrav�s de um EJB Container com outras
aplica��es/sistemas externos?
Se for poss�vel, quais os cuidados a serem tomados?
-sim verificar se o app server sopporta aquele flag e setar para dividido,
vai ter problemas de performance.
* Servidor de Aplica��es
------------------------------------------------------------------
[J�lio Cesar - CESAR]
De acordo com o C�sar, o JBoss � um bom servidor de aplica��o, e realmente,
de acordo com que verifiquei ele est� em 4o lugar nas pesquisas. Por ser um
servidor n�o-comercial, acho que esta � uma boa ferramenta.
-- pois �, � bom mas por motivos de $$$$$ n�o esta com certifica��o, por�m
n�o sabemos se realmente � 100% compliant.
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.377 / Virus Database: 211 - Release Date: 15/7/2002
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para:
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]