Olá pessoal!
Alguém poderia me dizer o SQL para setar um timeout no Statement?
Estou tentando SET LOCAL statement_timeout TO 1000 mas não está funcionando.
Erro: ORA-00922: missing or invalid option
Obrigado.
Olá pessoal!
Alguém poderia me dizer o SQL para setar um timeout no Statement?
Estou tentando SET LOCAL statement_timeout TO 1000 mas não está funcionando.
Erro: ORA-00922: missing or invalid option
Obrigado.
Caso você utilize preparedstatement aqui tem uma solução: http://stackoverflow.com/questions/5913569/how-to-set-query-timeout-on-preparedstatement .
Opa, obrigado pela resposta.
Desta forma não funcionaria pra mim pois quero definir o timeout de uma forma generalizada para todas as queries.
Explicando melhor, estou tentando executar este SQL na configuração do datasource no JBoss, pois de acordo com a arquitetura do projeto em questão, me parece a única solução mais viável já que o mesmo não usa JPA2 onde eu poderia definir a propriedade javax.persistence.query.timeout e “resolver meu problema”.
Ex da configuração no DS no JBoss:
<local-tx-datasource>
...
<new-connection-sql>ALTER ROLE abcd SET statement_timeout = 1000</new-connection-sql>
...
<local-tx-datasource>
e
<local-tx-datasource>
...
<new-connection-sql>ALTER ROLE abcd SET statement_timeout TO 1000</new-connection-sql>
...
<local-tx-datasource>
Nunca vi usar desse modo como você colocou não.
Já como aqui: 300
https://community.jboss.org/wiki/ConfigDataSources
Esse não funcionou não. Nem com o definido como true.
A única solução que me veio em mente foi a de usar a passando a configuração desejada.
Acabei de postar no fórum da Oracle e descobri que o Oracle não tem este parâmetro statement_timeout. (O que vi era usado no PostgreSQL)
https://forums.oracle.com/forums/thread.jspa?messageID=10385566#10385566
O pessoal do fórum sugeriu criar um profile mas acho que não vai rolar…
Po, esse cara matou a pau:
It seems odd that you’d have an Java application where you can’t set a statement-level timeout. The JDBC API has such a timeout and, realistically, any Java application is using JDBC eventually to communicate with the database. That being said, if your application has the potential to issue particularly long-running queries, setting a JDBC timeout may do more harm than good if it means that you are potentially allowing users to issue lots of long-running queries that aren’t actually killed in the database. The timeout may allow users to crush the database much more quickly by repeatedly submitting queries that will never return.Setting a profile or using Resource Manager would need the involvement of the DBA. As I said earlier, they would also apply to all statements executed by a user or set of users.
Justin