You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by GitBox <gi...@apache.org> on 2019/10/28 06:01:34 UTC

[GitHub] [tomee] marcoantoniobferreira commented on a change in pull request #598: TOMEE-2720-Translate dynamic-datasource-routing

marcoantoniobferreira commented on a change in pull request #598: TOMEE-2720-Translate dynamic-datasource-routing
URL: https://github.com/apache/tomee/pull/598#discussion_r339409408
 
 

 ##########
 File path: examples/dynamic-datasource-routing/README_pt.adoc
 ##########
 @@ -0,0 +1,429 @@
+:index-group: DataSources
+:jbake-type: page
+:jbake-status: status=published
+= Roteamento dinâmico de fonte de dados
+
+A API de fonte de dados dinâmica do TomEE visa permitir o uso de vários dados
+fontes como uma do ponto de vista do aplicativo.
+
+Pode ser útil por razões técnicas (balanceamento de carga, por exemplo) ou
+razões geralmente mais funcionais (filtragem, agregação, enriquecimento ...).
+No entanto, observe que você pode escolher apenas uma fonte de dados por transação.
+Isso significa que o objetivo desse recurso não é alternar mais de uma vez
+fonte de dados em uma transação. O código a seguir não funcionará:
+
+....
+@Stateless
+public class MyEJB {
+    @Resource private MyRouter router;
+    @PersistenceContext private EntityManager em;
+
+    public void workWithDataSources() {
+        router.setDataSource("ds1");
+        em.persist(new MyEntity());
+
+        router.setDataSource("ds2"); // mesma transação -> esta invocação não funciona
+        em.persist(new MyEntity());
+    }
+}
+....
+
+Neste exemplo, a implementação simplesmente usa uma fonte de dados de seu nome
+e precisa ser definido antes de usar qualquer operação JPA na transação
+(para manter a lógica simples no exemplo).
+
+== A implementação do roteador
+
+Nosso roteador possui dois parâmetros de configuração: *uma lista de nomes jndi
+representando fontes de dados para usar* uma fonte de dados padrão para usar
+
+=== Implementação de roteador
+
+A interface Router (`org.apache.openejb.resource.jdbc.Router`) tem
+somente um método para implementar, `public DataSource getDataSource()`
+
+Nossa implementação `DeterminedRouter` usa um ThreadLocal para gerenciar o
+fonte de dados usada atualmente. Lembre-se de que a JPA usou mais de uma vez o
+Método getDatasource() para uma operação. Para alterar a fonte de dados em
 
 Review comment:
   If you read the full sentece, i think that "Alterar a fonte de dados" is a better start than "Para alterar a fonte de dados"

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services