Para garantir o funcionamento correto das aplicações, compo...
Para garantir o funcionamento correto das aplicações, componentes web devem obedecer a algumas diretrizes. Considerando essas diretrizes, analise as afirmativas a seguir.
I. Transações JTA devem ser iniciadas e concluídas na mesma thread em que o método de serviço/negócio é chamado. Threads adicionais que são criadas para qualquer outra finalidade dentro desse método não devem tentar iniciar transações JTA.
II. Recursos transacionais podem ser adquiridos e dispensados por uma thread diferente da thread do método de serviço/negócio, mas esses recursos não devem ser compartilhados entre essas threads.
III. Objetos de recursos transacionais (por exemplo, objetos de conexão JDBC) devem ser armazenados em campos estáticos já que esses objetos podem ser compartilhados por mais de uma transação simultaneamente.
Assinale:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - se somente as afirmativas I e II estiverem corretas.
A questão aborda conhecimentos de gerenciamento de transações e uso correto de recursos em um ambiente Java Transaction API (JTA) e Java Database Connectivity (JDBC). Vamos analisar cada afirmativa:
Afirmativa I: Esta afirmativa está correta. Na gestão de transações JTA, é importante que a transação seja iniciada e concluída na mesma thread. Isso assegura a consistência e a integridade dos dados, pois as transações são controladas e bem delimitadas. Se outras threads tentassem iniciar transações, isso poderia levar a condições de corrida e problemas de sincronização.
Afirmativa II: Esta também está correta. É possível que recursos transacionais sejam adquiridos e dispensados por threads diferentes, por exemplo, quando uma thread passa o controle de uma transação para outra. No entanto, esses recursos não devem ser compartilhados entre as threads, uma vez que isso poderia causar problemas de concorrência e inconsistência nos dados.
Afirmativa III: Esta afirmativa está incorreta. Objetos de recursos transacionais, como conexões JDBC, não devem ser armazenados em campos estáticos. Isso é uma prática ruim, pois campos estáticos são compartilhados entre todas as instâncias de uma classe, o que poderia levar ao acesso concorrente e não controlado a esses recursos transacionais. Objetos de conexão devem ser controlados de forma que apenas uma transação por vez tenha acesso, garantindo assim a segurança do acesso ao banco de dados.
Portanto, as afirmativas I e II estão corretas e condizentes com as práticas recomendadas para o gerenciamento seguro e eficaz de transações no desenvolvimento de aplicações que utilizam JTA e JDBC, o que justifica a escolha da alternativa D.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Gabarito: D
fonte: https://download.oracle.com/otndocs/jcp/java_ee-8-final-eval-spec/index.html páginas 75 e 76
boa sorte lendo todas especificações daqui https://www.oracle.com/java/technologies/java-ee-glance.html cada uma com 700 páginas, e com chance de perder seu tempo pela vinda do Jakarta EE e próximas versões dele que não alterem apenas os pacotes...
Complicado viu, por isso que as bancas deveriam seguir o exemplo da ESFCEX e botar bibliografia (que obviamente não fosse a documentação, pois é intratável resumir a documentação, mas é possível resumir um livro que por sua vez resume a tecnologia)
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo