O cenário é Servlet + JDBC + pool de conexões sem nenhuma camada Hibernate ou similar - JDBC puro.
1 - Um “processo A” solicita uma connection ao pool, abre um Statement/ResultSet e devolve a connection ao pool. Vale observar que o Statement/ResultSet continua aberto, em uso;
2 - Um “processo B” solicita uma connection ao pool e recebe a mesma connection do “processo A”. O “processo B” executa um procedimento demorado no banco de dados utilizando a connection recebida;
OBS: Situação simples, sem concorrência. Os dados tratados por “B” não possuem nenhuma relação com “A”.
3 - O “processo A” solicita uma atualização do ResultSet.
Dúvidas:
A atualização do “processo A” terá de esperar o término da execução do “processo B”?
Pode ocorrer algum tipo de erro em “A” ou “B” simplesmente pelo fato de “enfileirar” requisições?
Se ocorrer algum erro na solicitação do “processo B” a requisição do “processo A” seria afetada?
A idéia de connections “reservadas” para processos demorados é absurda? Ou mesmo o contrário, connections reservadas para procedimentos “rápidos”? Basicamente seria ter mais de um pool de conexões e usar conforme o caso.
Sendo iniciante a simulação do ambiente acima iria demandar muito tempo de preparação e não teria certeza de ter simulado apropriadamente. Imagino que já existam respostas para o acima.
Agradeço também por dicas de “palavras” ou termos para pesquisar sobre o assunto.