Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

RMS - INF - Ferramenta Totvs Atualiza Time Out bloqueio de Sessão.


time.png Tempo aproximado para leitura: 00:30:00 min

Ocorrência
Na atualização do ambiente Ocorre mensagem de erro na Ferramenta Totvs Atualiza, Time Out Sessão bloqueada.

Ambiente
RMS - Todas as versões.

Causa
Devido ao tempo de espera, que é conforme o tempo limite cadastro em seu banco, caso o objeto não esteja livre para realizar o create, no momento da chamada da atualização o mesmo retorna com erro ORA- Time Out.

Solução

1- Executa o comando abaixo, o mesmo serve para pegar todos os jobs ativos que está utilizando objetos do RMS, necessário que pegue o 'SID' para utilizar no próximo comando.

 

SELECT r.sid, r.job, r.this_date, r.this_sec, what
FROM dba_jobs_running r,dba_jobs j
WHERE r.job = j.job;

 

 

2- Após retornar os jobs que estão rodando necessário verificar os 'SID' e executar o comando abaixo, onde deve passar o usuário do banco de dados em Username por padrão está como 'RMS'

select 'alter system kill session '''||sid||','||serial#||','||'@'||inst_id||''' immediate;'
from gv$session
where username = 'RMS';

 

 

3- Verificar os 'SID' dos jobs que retornaram na primeira consulta e executar o comando Alter System Kill que retorna no 2 select para eliminar os jobs ativos.

 

 

Próximo passo abaixo é para verificar sessões ativas e inativas que impactam na atualização, no caso ocorre de mesmo usuário ter saído dos programas sessões ficarem presas no banco.

 

1- Consulta abaixo para verificar sessões ativas onde retornar nome do usuário e programa que está utilizando para ser finalizado para realizar atualização:

select /* +RULE*/ p.inst_id id , 
s.sid, 
s.serial#, 
p.pid, 
p.spid, s.sql_id, 
osuser os_user, s.program, s.username 
,to_char(logon_time, 'DD-MM-YYYY HH24:MI:SS') logon 
,to_char(trunc((SYSDATE - s.logon_time) * 1440 / 60)) || ':' || ltrim(to_char(mod((trunc((SYSDATE - s.logon_time) * 1440)),60),'00')) ELAPSED_LOGON 
,to_char(trunc(s.LAST_CALL_ET / 3600)) || ':' || ltrim(to_char(trunc(s.LAST_CALL_ET / 60) - (trunc(s.LAST_CALL_ET / 3600) * 60),'00')) last_call 
,substr(sw.event,1,22) event, s.module 
from gv$process p, 
     gv$session s, 
     gv$session_wait sw 
where (p.inst_id = s.inst_id and p.addr = s.paddr) 
and (s.inst_id = sw.inst_id and s.sid = sw.sid) 
and type != 'BACKGROUND' 
and status = 'ACTIVE' 
and s.program not like 'racgimon%' 
and s.event  not like '%jobq slave wait%' 
order by last_call desc, p.inst_id, s.sid;

 

 

 

 

2-Consulta abaixo para sessões inativas, para que as mesmas sejam eliminadas pelo DBA, necessário, atenção no campo USERNAME que é o usuário do banco, e o OS_USER é o usuário máquina que está com a sessão inativa, para serem derrubadas no sistema, pois isso impacta na atualização.

 

select /* +RULE*/ p.inst_id id , 
s.sid, 
s.serial#, 
p.pid, 
p.spid, s.sql_id, 
osuser os_user, s.program, s.username 
,to_char(logon_time, 'DD-MM-YYYY HH24:MI:SS') logon 
,to_char(trunc((SYSDATE - s.logon_time) * 1440 / 60)) || ':' || ltrim(to_char(mod((trunc((SYSDATE - s.logon_time) * 1440)),60),'00')) ELAPSED_LOGON 
,to_char(trunc(s.LAST_CALL_ET / 3600)) || ':' || ltrim(to_char(trunc(s.LAST_CALL_ET / 60) - (trunc(s.LAST_CALL_ET / 3600) * 60),'00')) last_call 
,substr(sw.event,1,22) event, s.module 
from gv$process p, 
     gv$session s, 
     gv$session_wait sw 
where (p.inst_id = s.inst_id and p.addr = s.paddr) 
and (s.inst_id = sw.inst_id and s.sid = sw.sid) 
and type != 'BACKGROUND' 
and status = 'INACTIVE' 
and s.program not like 'racgimon%' 
and s.event  not like '%jobq slave wait%' 
order by last_call desc, p.inst_id, s.sid;

 

3- Além disso, quando aparecer a sessão bloqueada na ferramenta para o objeto X, tem uma consulta que verifica quem SID, de quem está utilizando causando o bloqueio e time out na ferramenta:

 

SELECT /* +rule */ B.STATUS, 
B.MACHINE, 
A.* 
,B.USERNAME 
,b.event 
FROM GV$ACCESS A 
,GV$SESSION B 
WHERE A.SID = B.SID 
--AND A.TYPE = upper('&TYPE') 
AND A.OBJECT = upper('PC_FIS_PIS');

 

Além disso, abaixo vídeo com todo o fluxo:

Esse artigo foi útil?
Usuários que acharam isso útil: 2 de 2

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _