style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Duda con EJB3

Hola a toda la comunidad, estoy usando EJB3.0, JPA, postgresql advanced server, netbeans 6.9, glassfish 2.1, y tengo un problema:

Estoy desarrollando un aplicacion de escritorio que se ejecuta sobre la web, es decir, remotamente, uds. entienden ;-)...en fin hasta ahora voy avanzando bien, y tengo en mi desarrollo dos unidades de persistencia:

jdbc/conexion
false

jdbc/conexion
false

(La segunda persistencia la uso para hacer transacciones)

Y en mis SessionBeans los uso mas o menos asi:

@PersistenceContext(unitName="EJBPU")
EntityManager em;

Solo uso el entity manager para hacer consultas a la base de datos y simples operaciones de insercion, modificacion, etc, pero en otro SessionBean uso esto:

@PersistenceUnit(unitName="EJB-PU")
EntityManagerFactory emf;
EntityManager em;

@PostConstruct
public void inicializaBean(){
try{
if (!em.isOpen())
this.em = this.emf.createEntityManager();
}catch(java.lang.NullPointerException npe){
this.em = this.emf.createEntityManager();
}
// this.em = this.emf.createEntityManager();
}

@PreDestroy
public void finalizalizaBean(){
this.emf.close();
}

Hasta ahi todo bien xq el cuando ejecuto el cliente me sale toda la informacion que necesite y si voy a la consola del glassfish se mira esto:

"file:/home/user/EJBShrimp/build/classes/-EJBPU login successful"
"file:/home/user/EJBShrimp/build/classes/-EJB-PU login successful"

Pero si dejo la aplicacion cliente abierta digamos una hora, pues intento hacer alguna operacion tengo un error que es este:

"EJB5070: Exception creating stateless session bean : [{0}]
java.lang.IllegalStateException: Attempting to execute an operation on a
closed EntityManagerFactory."

y una linea antes de ese error tengo este mensaje en particular:

"file:/home/user/EJBShrimp/build/classes/-EJB-PU logout successful"

No entiendo porque se desloguea automaticamente y solo en esa persistencia. Supuestamente con el codigo que tengo arriba me deberia de establecer una nueva conexion pero no lo hace:

@PostConstruct
public void inicializaBean(){
try{
if (!em.isOpen())
this.em = this.emf.createEntityManager();
}catch(java.lang.NullPointerException npe){
this.em = this.emf.createEntityManager();
}
// this.em = this.emf.createEntityManager();
}

Ahi es donde sucede el error... Y bueno estoy medio perdido y preocupado porque la unica forma de hacerlo funcionar es redeployando mi EJB y ahi si se ejecuta y me preocupa que en produccion me llegase a pasar eso, seria lo peor!!!

Me pueden ayudar en esto??? les estare sumamente agradecido

Saludos...

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">