Problema com ACL e XDB no 11gR2

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
biotmessiah
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Sex, 19 Jul 2013 8:35 am

Olá Prezados,

É um prazer estar aqui com vocês.

Gostaria de saber se os colegas podem me ajudar com um probleminha chato que estou tentando resolver.

Tenho um schema no meu servidor Oracle 11g R2 11.2.0.3 que precisa enviar e-mails, mas para que ele possa fazer isso preciso liberar na ACL, até ai tudo bem, o problema é que ao tentar criar a ACL eu recebo o seguinte erro:


Relatório de erro:

Selecionar tudo

ORA-29903: erro na execução da rotina ODCIIndexFetch()
ORA-31001: Handle de recurso ou nome de caminho "" inválido
ORA-06512: em "XDB.DBMS_RESCONFIG", line 47
ORA-06512: em "SYS.DBMS_NETWORK_ACL_ADMIN", line 101
ORA-06512: em "SYS.DBMS_NETWORK_ACL_ADMIN", line 505
ORA-06512: em line 15
29903. 00000 -  "error in executing ODCIIndexFetch() routine"
*Cause:    The execution of ODCIIndexFetch routine caused an error.
*Action:   Examine the error messages produced by the indextype code and
           take appropriate action.
Estou utilizando a seguinte sintaxe:

Selecionar tudo

BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'UTL_SMTP.xml',
description => 'Granting privs to required users for UTL_SMTP.xml',
principal => 'MNT_TESTE',
is_grant => TRUE,
privilege => 'connect');

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE (
acl => 'UTL_SMTP.xml',
principal => 'MNT_TESTE',
is_grant => TRUE,
privilege => 'resolve');

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'UTL_SMTP.xml',
host => 'endereçosrv');
END;
/

COMMIT;

Executando o comando acima em partes, me parece que o erro ocorre ao executar o comando:

Selecionar tudo

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL
Da pra ver o arquivo é criado, pois ao executar o drop ele é excluído e na segunda vez diz que o arquivo não existe.

Selecionar tudo

BEGIN
  DBMS_NETWORK_ACL_ADMIN.drop_acl ( 
    acl         => 'UTL_SMTP.xml');

  COMMIT;
END;
/
O mesmo erro ocorre a executar e verificar os path na view resource_view.

Selecionar tudo

SELECT any_path FROM resource_view;

ERRO na linha 1:
ORA-29903: erro na execuc?o da rotina ODCIIndexFetch()
ORA-31001: Handle de recurso ou nome de caminho "" invalido
Meu ambiente possui a versão abaixo do Oracle rodando no Oracle Linux 6 Update 1 2.6.39-400.21.1.el6uek.x86_64

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning and Automatic Storage Management options

Possuo outras duas instancia 11g uma delas na mesma versão e o problema não ocorre.

Atenciosamente,
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

@biotmessiah,

O artigo http://www.fabioprado.net/2013/01/envia ... os-de.html poderá te ajudar.

[]s
biotmessiah
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Sex, 19 Jul 2013 8:35 am

Fabio,

Valeu pela dica, já havia lido o artigo! Muito bom por sinal! Parabéns!!!

O meu problema ocorre ao executar o comando abaixo:

Selecionar tudo

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'UTL_SMTP.xml',
host => 'endereçosrv');
END;
/

COMMIT;
E também ocorre ao fazer um SELECT na view resouce_view

Selecionar tudo

ERRO na linha 1:
ORA-29903: erro na execuc?o da rotina ODCIIndexFetch()
ORA-31001: Handle de recurso ou nome de caminho "" invalido
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

Achei o seguinte doc no MOS: Ora-31001 Using Dbms_network_acl_admin.Create_acl (Doc ID 838908.1)

Veja se o procedimento abaixo resolve o seu problema (faça antes as substituições necessárias):

Selecionar tudo

SOLUTION

Get the DROP_ACL outside the plsql block in its own block:

conn / as sysdba 

begin 
DBMS_NETWORK_ACL_ADMIN.DROP_ACL('localhost.xml'); 
end; 
/ 

-- The DROP_ACL will generate error ORA-31001: Invalid resource handle or path name 
"/sys/acls/localhost.xml" 
-- That is expected behaviour because it does not exist 

-- Then create_acl 

begin 
dbms_network_acl_admin.create_acl( 
acl => 'localhost.xml' 
,description => 'ACL for 127.0.0.1' 
,principal => 'myname' 
,is_grant => true 
,privilege => 'connect'); 
dbms_network_acl_admin.assign_acl('localhost.xml', '127.0.0.1'); 
end; 
/
[]s
biotmessiah
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Sex, 19 Jul 2013 8:35 am

Boa tarde Pessoas,

Resolvi o problema reinstalando XDB, como eu só utilizava ele para criar as ACLs, resolvi eliminar e recria-lo novamente.

Esta tudo OK agora, enviado e-mails e sem nenhum objeto inválido.

Atenciosamente,
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 20 visitantes