Pergunta

Eu tenho um problema muito estranho pelo qual não tive sucesso no Google.

Começou a acontecer sem alterações no banco de dados, configurações de conexão, código etc.

O problema é que, ao acessar um servlet, um dos EJBs está fazendo uma chamada direta SQL, muito simples

"select \n" +
" value, \n" +
" other_value \n" +
" from \n" +
" some_table \n" +
" where some_condition = ? "

Obviamente, isso não é o SQL direto, mas bem perto. Por alguma razão, isso começou a retornar um erro indicando "ORA-00942: tabela ou visualização não existe".

A tabela existe, e o kicker é se eu conectar um depurador, mudar um espaço ou algo menor (não alterando a própria consulta) na consulta e implantar a mudança, funciona bem. Esta não é a primeira vez que encontro isso. Parece que só parece acontecer em ambientes dev (ainda não o vi em Q/A, Sandbox ou produção), nem sempre é replicável e me deixando seriamente insano.

Nem sempre é replicável, quero dizer que, ocasionalmente, uma compilação e reimplementação limpa às vezes corrigem o problema, mas nem sempre. Nem sempre é a mesma tabela (embora se ocorra o erro, ela continua com a mesma consulta).

Apenas jogando um sensor lá fora para ver se alguém já se deparou com questões como esse antes e o que eles podem ter descoberto para corrigi -lo.

Foi útil?

Solução

Parece que talvez uma conexão no seu pool JDBC tenha um problema, o que pode explicar a natureza intermitente e que reimplave apenas às vezes o corrige, pois você pode acabar ainda usando a mesma conexão depois. Você pode tentar redefinir o pool de conexões em vez de reimplementar, talvez. (java weblogic.Admin -url t3://<server_url> RESET_POOL <pool_name>, Eu penso)

Você disse que há apenas um esquema, mas isso significa que apenas um esquema existe ou que todas as mesas estão sob um esquema? É possível que você esteja fazendo um ALTER SESSION SET CURRENT_SCHEMA Em algum lugar, e quando a conexão que for emitida é devolvida à piscina e depois usada aleatoriamente para a consulta mais tarde, ela não pode mais ver nada no esquema principal? Isso pode acontecer em um pacote ou gatilho, bem como do lado Java, e pode ser uma mudança 'temporária' que não é revertida após uma exceção. Parece algo que só pode existir em um ambiente de desenvolvimento também ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top