3.2.2.8. Modificação das Propriedades de Persistência para os Aplicativos Hibernate e Seam Migrados que Executam em um Ambiente Clusterizado
Caso o aplicativo gerenciado pelo contêiner JPA seja migrado, as propriedades que influenciam a serialização dos contextos de persistência estendidos são automaticamente passadas para o contêiner.
No entanto, devido às alterações no Hibernate, você pode executar com problemas de serialização, caso execute seu aplicativo Hibernate ou Seam migrado em um ambiente clusterizado. Você pode encontrar mensagens de log de erro semelhantes ao seguinte:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Para solucionar esses erros, você precisa modificar as propriedades no arquivo de configuração. Na maioria das vezes, o arquivo é
javax.ejb.EJBTransactionRolledbackException: JBAS010361: Failed to deserialize .... Caused by: java.io.InvalidObjectException: could not resolve session factory during session deserialization [uuid=8aa29e74373ce3a301373ce3a44b0000, name=null]
javax.ejb.EJBTransactionRolledbackException: JBAS010361: Failed to deserialize
....
Caused by: java.io.InvalidObjectException: could not resolve session factory during session deserialization [uuid=8aa29e74373ce3a301373ce3a44b0000, name=null]
persistence.xml. Para os aplicativos Hibernate API nativos, o arquivo é hibernate.cfg.xml.
Procedimento 3.15. Configuração das propriedades de persistência para executar em um ambiente clusterizado
- Configure o valor
hibernate.session_factory_namecomo um nome único. Este nome deve ser único por todas as implantações do aplicativo na instância do JBoss EAP 6. Por exemplo:<property name="hibernate.session_factory_name" value="jboss-seam-booking.ear_session_factory"/>
<property name="hibernate.session_factory_name" value="jboss-seam-booking.ear_session_factory"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Configure o valor
hibernate.ejb.entitymanager_factory_namecomo um nome único. Este nome deve ser único para todas as implantações do aplicativo na instância do JBoss EAP 6. Por exemplo:<property name="hibernate.ejb.entitymanager_factory_name" value="seam-booking.ear_PersistenceUnitName"/>
<property name="hibernate.ejb.entitymanager_factory_name" value="seam-booking.ear_PersistenceUnitName"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Para mais informações sobre as configurações das Propriedades da Unidade de Persistência Hibernate JPA, consulte Seção 3.2.2.3, “Propriedades da Unidade de Persistência”.