伙计们,我现在面临一个大问题,我有一个Services.ear项目,主要服务于3个数据库模式,要点是我的模式之一将被替换N次,因为这些模式中的每个模式都将特定有关“数据世界”的信息。与要复制的架构相比,它具有相同的结构,只是它们之间的数据会改变。我需要保证的是,此“ Services.ear”将服务比我要复制的N个模式。
为解决这个问题,我在每次发送请求时都先在服务器上创建一个Cookie,然后每次与该架构进行交互时都向服务器发送该Cookie,其中包含在我的应用程序服务器中创建的de JTA数据源名称。
我创建了此类,以便在每个请求上注入JTA数据源:
@无状态
public class AdapterDatasource {
public EntityManager adapterEntityManager(String dataSource) {
Map props = new HashMap();
System.out.println("set " + dataSource);
props.put(PersistenceUnitProperties.JTA_DATASOURCE, dataSource);
EntityManagerFactory emf = Persistence.createEntityManagerFactory("myPersistenceUnitName", props);
return emf.createEntityManager();
}
}
我在一个已经定义的持久性单元中设置了一个新的JTA数据源,其中包含此Schema的所有类。
它实际上工作良好,并且具有开发和测试环境。接下来的一点是,当它处于生产环境中时,它的性能非常差,我面临每个请求5到8秒的延迟。
我已经阅读了很多有关如何执行此操作的信息,但是我没有很好的实现方法。
我在考虑是否有可能在
中设置新道具@PersistenceContext('pUnitName',props)
或我能做的一切以使其具有良好的性能和响应功能。
我非常感谢每一个建议或可能的解决方案,以实现并使其完美运行
非常感谢您。
PD:我的目标是设置每个客户端发送的相应JTA数据源,并保存-检索关联模式连接到接收到的JTA数据源连接的数据