cs_chatis
Messages postés74Date d'inscriptionvendredi 4 juillet 2003StatutMembreDernière intervention 4 avril 2012
-
2 nov. 2011 à 10:20
cs_chatis
Messages postés74Date d'inscriptionvendredi 4 juillet 2003StatutMembreDernière intervention 4 avril 2012
-
2 nov. 2011 à 15:22
Bonjour,
j'ai créé une application de traitement java multi-couche (REST-Manger-DAO-Entity) utilisant java EE 6 JPA/JTA Hibernate. Pas de Spring ni de JSF car le client est PHP.
Cette application est utilisée par 50 domaines différents et il devient difficile à gérer.
Sachant que l'appli est la même sur les 50 domaines et que chaque domaines possède ca propre BDD, existe-il un moyen d'avoir 50 domaines qui se connecte sur une seul et unique appli et en fonction du domaine qu'il l'appelle, l'appli sait qu'elle BDD aller appeler ?
Car actuellement j'ai mon fichier persistence.xml comme suis :
Je sais que mon persistence.xml peut gérer sans souci plusieurs persistence-unit. Mais je ne sais pas comment faire pour les appeler avec mon @PersistenceContext en fonction du domaine qui a appelé l'appli...
shaiulud
Messages postés404Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention15 juillet 201422 2 nov. 2011 à 14:42
L'utilisation de Spring n'a rien à voir avec le fait que le client soit en PHP.
Il existe avec ce framwork une solution de datasource proxifiées (RoutingDataSource) qui permet de tapper plusieurs bases.
Je n'ai pas tester cette solution avec du JPA mais seulement avec spring-jdbc.
Il faut de surcroit, avec une couche AOP (pointcut sur les appels de DAOs), attacher un contexte de routage au ThreadLocal pour que tu puisses router vers la bonne base.
Cependant avec JPA cette méthode me parait risquée techniquement (que va-t'il se passer avec le manager transactionnel ?)
Quoi qu'il en soit, ta problématique t'impose de revoir ton architecture.
Tu peux aussi voir auprès des outils d'intégration (maven avec des builds multiple par exemple) pour ne pas avoir à changer ton archi et de faire prendre en charge la multiplicité des applis identique un tel outils.