16869 - Erro Caixa Megasul: ORA-01000: máximo de cursores abertos excedido
Problema: Descrição do Problema: Ao efetuar a finalização de uma venda no Caixa Megasul, apresenta o seguinte erro:
Ocorreu erro ao finalizar a operação: General SQL error.
ORA - 01000: máximo de cursores abertos excedido
O cupom será cancelado!
A situação só ocorre quando se está utilizando banco de dados Oracle.
Rotina / Tela: Aplicativo CAIXA Megasul, tela TOTAL.
Solução: Solução: Para a mensagem ORA-01000: máximo de cursores abertos excedido é necessário que sejam efetuadas as seguintes verificações:
1 - Deve-se entrar em contato com o DBA Oracle ou responsável pelo banco de dados e solicite que seja efetuado o aumento dos cursores do Oracle;
2 - Para verificar o número máximo de cursores, pode-se executar o comando abaixo:
select v.value as numopencursors, s.machine, s.osuser, s.username from V$SESSTAT v, V$SESSION s where v.statistic# = 3 and v.sid = s.sid;
2.1 Select para verificar a numeração dos cursores antes de altera-lo:
select name,value from v$parameter where name = 'open_cursors';
3 - Para aumentar o número de cursores, deve-se rodar o comando abaixo no scripter:
alter system set open_cursors= 50000 scope=both; -- Neste caso o aumento ocorrerá para 50.000 cursores.
4 - Select para verificar cursores:
select
user_process username,
Recursive Calls,
Opened Cursors,
Current Cursors
from
( select nvl(ss.USERNAME,'ORACLE PROC')||'('||se.sid||') ' user_process,
sum(decode(NAME,'recursive calls',value)) Recursive Calls,
sum(decode(NAME,'opened cursors cumulative',value)) Opened Cursors,
sum(decode(NAME,'opened cursors current',value)) Current Cursors
from v$session ss, v$sesstat se, v$statname sn
where se.STATISTIC# = sn.STATISTIC# and
(NAME like '%opened cursors current%' or
NAME like '%recursive calls%' or
NAME like '%opened cursors cumulative%') and
se.SID = ss.SID and
ss.USERNAME is not null
group by
nvl(ss.USERNAME,'ORACLE PROC')||'('||se.SID||') ' ) orasnap_user_cursors
order by
USER_PROCESS,Recursive Calls ;
Ocorreu erro ao finalizar a operação: General SQL error.
ORA - 01000: máximo de cursores abertos excedido
O cupom será cancelado!
A situação só ocorre quando se está utilizando banco de dados Oracle.
Rotina / Tela: Aplicativo CAIXA Megasul, tela TOTAL.
Solução: Solução: Para a mensagem ORA-01000: máximo de cursores abertos excedido é necessário que sejam efetuadas as seguintes verificações:
1 - Deve-se entrar em contato com o DBA Oracle ou responsável pelo banco de dados e solicite que seja efetuado o aumento dos cursores do Oracle;
2 - Para verificar o número máximo de cursores, pode-se executar o comando abaixo:
select v.value as numopencursors, s.machine, s.osuser, s.username from V$SESSTAT v, V$SESSION s where v.statistic# = 3 and v.sid = s.sid;
2.1 Select para verificar a numeração dos cursores antes de altera-lo:
select name,value from v$parameter where name = 'open_cursors';
3 - Para aumentar o número de cursores, deve-se rodar o comando abaixo no scripter:
alter system set open_cursors= 50000 scope=both; -- Neste caso o aumento ocorrerá para 50.000 cursores.
4 - Select para verificar cursores:
select
user_process username,
Recursive Calls,
Opened Cursors,
Current Cursors
from
( select nvl(ss.USERNAME,'ORACLE PROC')||'('||se.sid||') ' user_process,
sum(decode(NAME,'recursive calls',value)) Recursive Calls,
sum(decode(NAME,'opened cursors cumulative',value)) Opened Cursors,
sum(decode(NAME,'opened cursors current',value)) Current Cursors
from v$session ss, v$sesstat se, v$statname sn
where se.STATISTIC# = sn.STATISTIC# and
(NAME like '%opened cursors current%' or
NAME like '%recursive calls%' or
NAME like '%opened cursors cumulative%') and
se.SID = ss.SID and
ss.USERNAME is not null
group by
nvl(ss.USERNAME,'ORACLE PROC')||'('||se.SID||') ' ) orasnap_user_cursors
order by
USER_PROCESS,Recursive Calls ;