Lock a nível de linha

Pessoal,

Estou com um problema aqui que é o seguinte:

Preciso ler uma linha e não permitir que outro thread leia esta mesma linha até o programa dar COMMIT ou ROLLBACK, algo como o SELECT FOR UPDATE do Oracle.

Isso é possível?

Precisamos de algo que funcione em diferente bancos de dados, e a aplicação, por ser bem antiga (Java 1.3), tem DAOs acessando a base diretamente através de ODBC.

O pseudo-código é algo assim:

  • Lê essa linha;
  • Faz algumas coisas com esses dados que acabaram de ser lidos (demora);
  • Se processamento foi OK incrementa um contador nessa linha lida e dá um commit;
  • Dá um commit (devido a outras tabelas envolvidas, embora essas não precisem de LOCK).

Essa é uma aplicação JEE 1.3 rodando em JBOSS 4.0+, BEA 8+ e WEBSPHERE 5.0+

Alguém poderia ajudar?

Obrigado