| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/11/2004 10:51:09
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Galera,
Como vocês costumam fazer controle transacional nas suas aplicações, sem o uso de EJB (EJB Container)?
As nossas aplicações antigas foram não tão bem arquitetadas e fazem algo mais ou menos assim:
No Action ou Delegate:
Como vocês costumam fazer isso?
Eu imagino que a responsabilidade de pegar (criar/solicitar) uma conexão seja da classe DAO e não da Action ou Delegate, certo?
Até pensei em criar uma classe Transaction que faria o controle da transação e trabalharia direto com o DAO. Algo mais ou menos assim:
Que tal?
This message was edited 1 time. Last update was at 19/11/2004 10:55:19
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/11/2004 22:13:31
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Eu uso o padrão do "Transactional Command".
Crio comandos que são executados dentro de um contexto transacional.
Simples assim. Funciona bem e coloca todo controle de transações, e gerenciamento de recursos associados, em um local só.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/11/2004 02:19:58
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Voce tambem pode botar uma boina, usar uma gola role e dizer "afe, que coisa mais anos 90, eu faco isso tao melhor com o Spring*, ui!"...
* = ou qualquer outro container de injecao de dependencias, mas o Spring ja vem com isso embutido, e pronto pra usar,
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/11/2004 15:07:30
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
cv wrote:Voce tambem pode botar uma boina, usar uma gola role e dizer "afe, que coisa mais anos 90, eu faco isso tao melhor com o Spring*, ui!"...
Mas isso também depende muito do ambiente de desenvolvimento que você está. Nos atuais projetos que eu tou trabalhando seria mais dificil conseguir poder usar o springfranework e instegrá-lo à plataforma que re-escrever todo pacote de gerenciamento de transações dele.
Mas que usar o spring é uma boa idéia, isso é.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/11/2004 19:44:47
|
kuchma
Moderador
![[Avatar]](/images/avatar/85422afb467e9456013a2a51d4dff702.jpg)
Membro desde: 17/01/2003 19:36:16
Mensagens: 1231
Localização: Curitiba - PR
Offline
|
louds wrote:Mas isso também depende muito do ambiente de desenvolvimento que você está. Nos atuais projetos que eu tou trabalhando seria mais dificil conseguir poder usar o springfranework e instegrá-lo à plataforma que re-escrever todo pacote de gerenciamento de transações dele.
Bem lembrado. Pior que isso eh quando os motivos nao sao tecnicos, mas sim politicos, administrativos, climaticos, etc...
Marcio Kuchma
|
E tu, Belém-Efrata, pequena demais para figurar como grupo de milhares de Judá, de ti me sairá o que há de reinar em Israel, e cujas origens são desde os tempos antigos, desde os dias da eternidade. Mq 5:2, Miquéias, 750 AC aprox. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/12/2004 14:12:44
|
Gerson
JavaChild
![[Avatar]](/images/avatar/ccb1d45fb76f7c5a0bf619f979c6cf36.jpg)
Membro desde: 26/01/2003 19:48:37
Mensagens: 113
Localização: São Paulo
Offline
|
Argh! :P
Nada como usar IoC e AOP:
(no caso do spring...)
onde o transactionManager pode ser um "org.springframework.orm.hibernate.HibernateTransactionManager", "org.springframework.transaction.jta.JtaTransactionManager", etc.
Gerson K. Motoyama
This message was edited 1 time. Last update was at 14/12/2004 14:14:08
|
---
Gerson K. Motoyama
(SCJA, SCJP, SCWCD, SCBCD, SCEA-I) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/12/2004 21:31:00
|
FApache
Smalltalk
![[Avatar]](/images/avatar/31bd51a7403b980bf1039518120712e0.jpg)
Membro desde: 26/12/2004 21:21:17
Mensagens: 3
Offline
|
Bem, mesmo com código legado me parece que o uso de Spring e Inversão de Controle não deve ser tão difícil... A vantagem é que já está pronto.
De q q maneira, vc poderia fazer com q sua conexão fosse finalizada/gerenciada usando um Servlet Filter...
É uma idéia para um legado qualquer.
|
Forte Apache |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/12/2004 11:49:32
|
douglasfs
JavaEvangelist
![[Avatar]](/images/avatar/dc6a6489640ca02b0d42dabeb8e46bb7.png)
Membro desde: 31/12/2002 17:50:02
Mensagens: 305
Localização: São Paulo / Brasil
Offline
|
Nos projetos atuais eu estou utilizando o iBatis DAO ( http://www.ibatis.com/common/dao.html ).
Super simples de configurar (tem um manual bem explicativo para download) e pode ser plugado no JDO, Hibernate, JDBC "classico" e no iBatis SQLMaps (no qual eu uso).
No final fica +- assim :
No caso o "endTransaction" verifica se foi dado "commit", se nao foi ele automaticamente faz o "rollback"
|
SCJP 1.4, SCWCD 1.4, SCBCD 5.0 beta |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/02/2005 14:14:39
|
emurai
What is classpath?
Membro desde: 17/08/2004 18:02:02
Mensagens: 6
Offline
|
Fala Destrão !
Eu criei um Façade base com controle de transação para um cliente da Discover, que possui os metodos getConnection(), commit(), rollback() e releaseConnection().
Ele suporta aninhamento de chamadas utilizando o conceito de Stack. Ex simplificado :
Se tiver interesse é só falar.
abraços,
Eduardo Murai
SCJP & SCEA
This message was edited 1 time. Last update was at 04/02/2005 14:23:19
|
Eduardo Murai Soares
J2EE Architect |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/02/2005 14:26:54
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Entendí Murai.
Mas no meu caso eu gostaria de abstrair esse controle de transação do tipo de acesso aos dados. Explico!
O DAO já é uma abstração para eu não me preocupar qual a fonte dos dados. Eu queria o mesmo com a transação.
Sacou? Valeu!
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/02/2005 15:01:54
|
smota
Moderador
![[Avatar]](/images/avatar/ca9c267dad0305d1a6308d2a0cf1c39c.jpg)
Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline
|
danieldestro wrote:Mas no meu caso eu gostaria de abstrair esse controle de transação do tipo de acesso aos dados. Explico!
O DAO já é uma abstração para eu não me preocupar qual a fonte dos dados. Eu queria o mesmo com a transação.
Sacou? Valeu!
Mas mas .... não é pra isso que serve o JTA? (Java Transaction API)
(Posso estar viajando ... vc quer abstrair o controle de transação do DAO ou o modelo de transação? se for a segunda opçao acho que a JTA é pra isso, se for a primeira opção alguma soluçãozinha de IOC fica legal)
|
"Perfection is reached not when there's nothing more to add but when there's no more to take out" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/02/2005 16:23:29
|
urubatan
Moderador
![[Avatar]](/images/avatar/fe9fc289c3ff0af142b6d3bead98a923.jpg)
Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline
|
cv wrote:Voce tambem pode botar uma boina, usar uma gola role e dizer "afe, que coisa mais anos 90, eu faco isso tao melhor com o Spring*, ui!"...
* = ou qualquer outro container de injecao de dependencias, mas o Spring ja vem com isso embutido, e pronto pra usar,
eu até ia dizer isto, mas sem a boina e a gola role
|
[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/02/2005 17:41:20
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
This message was edited 1 time. Last update was at 04/02/2005 17:42:33
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/02/2005 18:41:00
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
UHAHUAHUAHUAHUAHUA
Impressao minha ou o Lipe perde o dia no google images?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2005 19:04:16
|
caiofilipini
GUJ Master
![[Avatar]](/images/avatar/c8e721e64167e81904d2c.jpg)
Membro desde: 26/06/2003 15:17:59
Mensagens: 1255
Localização: São Paulo
Offline
|
urubatan wrote:
cv wrote:Voce tambem pode botar uma boina, usar uma gola role e dizer "afe, que coisa mais anos 90, eu faco isso tao melhor com o Spring*, ui!"...
eu até ia dizer isto, mas sem a boina e a gola role 
No meu caso, eu também tiraria o "ui"...
|
Caio N. Filipini
"There is no spoon." |
|
|
 |
|
|