Nivel de isolamento e instancias de um Session Bea EJB3

Olá pessoa, bom dia.
Procurei bem pela internet algo que me desse uma clareza maior a respeito do tempo de vida de um objeto EJB Session, seu nivel de isolamento e como acontece no servidor a crianção de novas instancias do objeto. Porem sem sucesso.

Minha duvida surgiu quando fiz um exemplo encontrado em http://myjavaworld.wordpress.com/2008/05/07/how-to-create-an-ejb3-statefull-session-beans-in-eclipse-europa/

O que acontece e que me deixou mais “encabulado” é o seguinte:
Eu acesso o pagina jsp clico no link que chama o servlet (que por sua vez invoca o ejb stateful) e o mesmo incrementa o contador e me devolve este. Se eu abrir N browsers na minha maquina ele sempre vai pegar estar incrementando o mesmo contador. Se eu acesso na maquina do meu colega ao lado, o ejb tambem continua a contagem do meu contador.

1-Como seria o nivel de isolamento e instanciação do componente EJB? Eu, uma primeira análise, pensei que o conteiner iria abrir uma instancia do objeto para cada maquina e/ou sessao de browser que acessa o componente (E não é o que acontece)?
2 - Como eu poderia fazer para conseguir implementar um nivel de isolamento parecido com o de um HTTPSession. De forma que fique isolado por maquina que acessa, ou mesmo por sessão do browser, para que fosse acessado um novo objeto ejb?

Minha necessidade com relação a isso é porque me surgiu a necessidade de transmitir objetos Bean de um sistema para outro, e neste caso, pelo que notei, o Java deixa cada sistema totalmente isolado com relação a passagem de objetos. E acho correto e seguro isso. Porem preciso conseguir uma forma de contornar isso e transmitir objetos entre sistemas diferentes no mesmo servidor e acessados pela mesma sessão do browser. Caso haja alguma forma melhor de se implementar isso tambem agradeço as sugestões.

Desde já agradeço a atenção dos colegas.

Bom dia pessoal,

Estive reparando que:

  • Se inicializar o objeto desta forma

    @EJB private ObjetoEJBRemote objetoEJB;

    ele compartilha a mesma instancia do objeto

  • Se inicializar o objeto desta forma

    InitialContext ic = new InitialContext(); objetoEJB = (ObjetoEJBRemote) ic.lookup("minha.aplicacao.ejb.ObjetoEJBRemote");

    ele abre uma nova instancia do objeto para cada transação

Neste caso ainda surgem uma questão. Na primeira forma eu consigo compartilhar o objeto, porem não consigo acessar de forma da Enterprise Application, da segunda forma eu consigo acessar externamente, porem não consigo compartilhar a mesma instancia do objeto.

Estou buscando uma forma de contornar isto. Se alguem tiver alguma sugestão tambem estou aceitando :slight_smile:

Um abraço a todos.