Utilizamos uma conexão ODBC para que nosso código possa acessar vários bancos de dados - ou seja, Oracle, Sybase 12 e SQL Server 2014.
NOTA: Temos uma tabela chamada que usamos para bloqueios. Esta tabela tem apenas um registro e está vazia ou preenchida com quem tem o bloqueio.
Eu tenho um cenário em que, embora o aplicativo tenha uma conexão ODBC com Oracle ou SQL Server 2014, o aplicativo funciona bem, sendo o cenário de teste - dois processos acessando o banco de dados - um executando uma tarefa de longa duração e o outro realizando tarefas curtas. Se eu me conectar ao Sybase e fizer as mesmas atividades, um dos blocos de processos (a tarefa curta). Estou supondo aqui que no Sybase a tabela de bloqueio é gravada, bloqueada, capturada e liberada em uma transação e o outro processo está aguardando o commit\rollback na transação para usar a tabela a seguir.
Por que funciona no SQL Server 2014 e no Oracle, mas bloqueia no Sybase 12? Qual opção precisa estar ON\OFF no Sybase 12 para obter o comportamento do Oracle e do SQL Server 2014?
Finalmente encontrei as opções do banco de dados no Sybase Central e brinquei com várias opções e consegui que funcionasse ligando "allow_snapshot_isolation" que estava DESLIGADO por padrão.