Processo de Post muito lento ou não processando mensagens. Notificações de block no arquivo event_log do servidor de destino, pode-se verificar várias mensagens de operações bloqueadas ou levando mais tempo do que o desejado para executar:
Notice 2015-04-09 10:37:30.477723 5982 7 Poster: Operation ODR_UPDATE1 on table "OWNER"."TABLE" is taking longer than 120 seconds. SID/serial: 9999/9998 Subqueue: 37. (posting from SOURCEDB, queue POST_QUEUE1, to TARGETDB) [module opo]
Warning 2015-04-09 10:37:48.592152 6263 1 Poster: Main thread is waiting 479 seconds for session 819 to commit before processing next operation. (posting from SOURCEDB, queue POST_QUEUE1, to TARGETDB) [module opo]
Warning 2015-04-09 10:40:51.615779 6263 1 Poster: Main thread is waiting 659 seconds for session 819 to commit before processing next operation. (osting from SOURCEDB, queue POST_QUEUE1, to TARGETDB) [module opo]
Esta situação pode ser causada devido a falta de indices para a tabela relatada no event_log no banco de dados de destino, ou o indice está com o status UNUSABLE ou ainda indices com BLEVEL alto.
Este é um problema no banco de dados Oracle, para identificar e resolver este incidente, siga o procedimento abaixo:
1 - Verifique quais as tabelas são citadas no event_log da instancia Shareplex no servidor de destino, no nosso exemplo OWNER.TABLE:
Notice 2015-04-09 10:37:30.477723 5982 7 Poster: Operation ODR_UPDATE1 on table "OWNER"."TABLE" is taking longer than 120 seconds. SID/serial: 9999/9998 Subqueue: 37. (posting from SOURCEDB, queue POST_QUEUE1, to TARGETDB) [module opo]
2 - Execute a seguinte consulta no banco de dados de destino, para verificar se existe algum indice para esta tabela cujo status é UNUSABLE:
SQL> select owner, index_name from dba_indexes where status='UNUSABLE' and owner='OWNER';
Se a consulta retornar algum indice, execute um rebuild no indice para torna-lo USABLE pelo banco de dados Oracle.
Se a consulta não retornar nenhum resultado, verifique se existem indices para esta tabela de uma forma geral:
SQL> select owner, index_name from dba_indexes where owner='OWNER' and table_name='TABLE';
Caso a consulta acima não retornar nenhuma linha, replique os mesmos indices que a tabela possui no banco de dados de fonte, no banco de dados de destino.
Caso a tabela não possua nenhum indice UNUSABLE e também possua os mesmos indices que a mesma tabela no banco de dados de fonte, verifique o BLEVEL destes indices e execute um rebuild para qualquer um que tenha um nivel maior que 3.
SQL> select owner, index_name,blevel,leaf_blocks from dba_indexes where owner='OWNER' and table_name='TABLE';
Para executar um rebuild nos indices, você pode utilizar o comando abaixo:
SQL> ALTER INDEX OWNER.TABLE REBUILD ONLINE;
Após este processo, reinicie o processo de post e fique de olho no event_log para certificar-se que as mensagens não se repetem.
© 2025 Quest Software Inc. ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center