quinta-feira, 7 de junho de 2012

Problemas em clonagem EBS R12 - FNDCPASS

Boa noite jovens

Essa semana estava realizando um clone de um EBS R12 e ocorria sempre o erro abaixo na clonagem da aplicação.

Quem trabalha com EBS sabe que é normal termos vários clones em uma mesma máquina. E isso estava me atrapalhando...

O erro:
---------------------------------------------------------------
                   ADX Database Utility
---------------------------------------------------------------
getConnectionUsingAppsJDBCConnector() -->
    APPS_JDBC_URL='null'
    Trying to get connection using SID based connect descriptor
getConnection() -->
    sDbHost    : SERVIDOR
    sDbDomain  : zezinho.com.br
    sDbPort    : 1532
    sDbSid     : ERP
    sDbUser    : apps
    Trying to connect using SID...
getConnectionUsingSID() -->
    JDBC URL: jdbc:oracle:thin:@SERVIDOR.zezinho.com.br:1532:ERP
    Exception occurred: java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
    Trying to connect using SID as ServiceName
getConnectionUsingServiceName() -->
    JDBC URL: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SERVIDOR.zezinho.com.br)(PORT=1532))(CONNECT_DATA=(SERVICE_NAME=ERP)))
    Exception occurred: java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
    Trying to connect using SID as ServiceName.DomainName
getConnectionUsingServiceName() -->
    JDBC URL: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SERVIDOR.zezinho.com.br)(PORT=1532))(CONNECT_DATA=(SERVICE_NAME=ERP.zezinho.com.br)))
    Exception occurred: java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
    Connection could not be obtained; returning null

-------------------ADX Database Utility Finished---------------
RC-00118: Error occurred during creation of database
Raised by oracle.apps.ad.clone.ApplyDatabase

Depois de pesquisar e verificar N possibilidades, a resolução do problema chegou a ser infantil mas que me fez perder algumas horas preciosas.

A solução: Simples, alterar o owner e direitos do arquivo abaixo:
cd /var/tmp/
chown oraerp:dba .oracle
chmod 777 .oracle

Achei legal passar isso aqui.

Passado esse problema, me deparo com outro problema na hora de fazer a alteração de senha do APPS pelo FNDCPASS. O comando executado era:
 
FNDCPASS apps/pass 0 Y system/pass SYSTEM APPLSYS newpass

Erro: Na verdade foram vários erros, mas o mais normal era esse:
    APP-FND-02704: Unable to alter user XXINT to change password.
    APP-FND-01564: ORACLE error 1403 in changepassword
    Cause: changepassword failed due to ORA-01403: no data found.
   
O problema é que tudo o que eu achei sobre esse erro não funcionou. Depois de muito verificar encontrei o erro.

No momento da clonagem (Aplicação e Banco), ao responder a pergunta abaixo eu errei e coloquei o nome do servidor com o domínio:

Target System Hostname (virtual or normal) [SERVIDOR] : SERVIDOR.zezinho.com.br

Isso fez com que o meu GLOBAL_NAME ficasse como ERP.zezinho.com.br. Não havia percebido ainda, mas a coluna NODE dos meus concurrent's também estavam todos detonados...

Enfim, para corrigir foi simples também:
    Alterei o meu global_name
    Executei FND_CONC_CLONE.SETUP_CLEAN para acertar o nome dos nodes dos concurrents
    Mandei um AUTOCONFIG na base e na aplicação
   
Pronto, tudo certo...

Abraço

sábado, 21 de abril de 2012

Desvendando o AdAdmin


Olá Jovens

Hoje, vamos tentar desvendar o mundo do AD Administration, ou mais popularmente e carinhosamente chamado de ADADMIN. Essa é uma das ferramentas de administração do EBS para realização de tarefas de manutenção. Este é um dos mais famosos e principais utilitários em linha de comando do EBS.

O manual oficial do AdAdmin do R11 é o “Oracle® Applications Maintenance Utilities Release 11i (11.5.10.2) Part No. B19300-01” e está disponível nas páginas de documentação da Oracle. 

Este artigo foi baseado neste manual, além de informações adicionais fornecidas pelo instrutor de um curso que fiz no final do ano chamado Adriano Master Penedo. Grande abraço Adriano.

O ADADMIN se encontra no diretório $AD_TOP/bin do servidor de aplicação. Vamos confirmar se ele está lá:

 
Lindo, ele está lá. Começamos bem :)

Antes de olharmos tela a tela esta aplicação é sempre legal dar uma olhada no help:
adadmin help=y

Uma dica legal do help que vale a pena dar uma olhada é o “DEFAULTSFILE”. Essa opção não será abordada aqui na nossa conversa, mas esta opção combinada com a opção “MENU_OPTION” é muito legal para a economia de tempo. 

Para atiçar a curiosidade, basta dizer que, ao invés de responder todas as perguntas que veremos abaixo para acesso ao ADADMIN, chamaríamos o mesmo com o parâmetro DEFAULTSFILE e o mesmo já abriria na janela desejada, sem necessidade das respostas e entradas de senha.

A maioria das interações do usuário via ADADMIN são a partir de prompts de linha de comando sob a forma de avisos. Em não utilizando o  basta responder corretamente as perguntas abaixo para acessar a tela inicial.
No servidor de aplicação, executar: adadmin

Nesta primeira imagem, iremos responder 4 perguntas. As respostas e suas explicações estão em destaque.

Your default directory is '/u01/app/oracle/HOMOL14/homol14appl'. Is this the correct APPL_TOP [Yes] ? YES - Pois o APPL_TOP está correto.
Filename [adadmin.log] : adadmin.log - Eu geralmente deixo a sugestão, mas pode ser alterado.
You can be notified by email if a failure occurs. NO - Tudo o que for feito no ADADMIN será acompanhado de perto por você. Por isso, acho desnecessário o e-mail.
Please enter the batchsize [1000] : 1000 - Eu geralmente deixo a sugestão, mas pode ser alterado.

Nesta segunda imagem da inicialização, não temos interação com o processo. Apenas conferimos os dados.

Na terceira tela do processo,entramos com as senhas de system e apps, conforme demonstrado abaixo:

Nesta imagem acima, iremos responder mais 3 perguntas. As respostas e suas explicações estão em destaque:

You are about to use or modify Oracle Applications product tables in your ORACLE database 'HOMOL14' using ORACLE executables in '/u01/app/oracle/HOMOL14/homol14ora/8.0.6'. Is this the correct database [Yes] ? YES - A identificação do database está correta 
Enter the password for your 'SYSTEM' ORACLE schema: Fornecer a senha do usuário SYSTEM do banco de dados.
Enter the ORACLE password of Application Object Library [APPS] : Fornecer a senha do usuário APPS da aplicação.

Finalmente na última fase de inicialização executada pela ADADMIN, temos as configurações de linguagens. De novo, somente acompanhamos e conferímos.

Lindo, muito lindo quando tudo da certo não é mesmo. E se chegamos até aqui, a tela que deve estar sendo apresentada para o jovem e destemido ATG é a seguinte: 

  É isso ai jovem, essa é a tela inicial do adadmin. Aqui lhe serão apresentadas alguma opções divididas em blocos da seguinte maneira:

Menu 1 ==> Compilar/Recompilar arquivos da aplicação (Generate Applications Files menu)

Menu 2 ==> Manutenção de arquivos da aplicação (Maintain Applications Files menu)

Menu 3 ==> Compilar/Recompilar arquivos de BD (Compile/Reload Applications Database Entities menu)

Menu 4 ==> Manutenção de arquivos de BD (Maintain Applications Database Entities menu)

Menu 5 ==> Modo de manutenção (Change Maintenance Mode)

A partir de agora, valos explorar cada menu explicando o que cada opção pode nos oferecer. Ao selecionar o menu 1, deve ser apresentada a seguinte tela para o ATG:










Veja que no topo da tela fica registrada a opção escolhida por você. Neste menu, você tem acesso a executar tarefas de compilação/recompilação de arquivos da aplicação. Segue as opções:

Opção 1 ==> Compliar arquivos de mensagens (.msb). Este passo deve ser executado quando instruído em algum patch ou sob orientação do suporte Oracle

Opção 2 ==> Compilar forms (.fmb) disponíveis no $AU_TOP. Nesta opção após a compilação, os arquivos criados (.fmx) são automáticamente extraídos e copiados para o seu respectivo PRODUCT_TOP. A execução dessa opção deve ser quando observado algum problema em algum form específico. As opções para regenerar os forms são:
  • Todos os forms de todos os produtos (Loucura total se executar isso)
  • Forms de produtos específicos
  • Forms especíificos de produtos específicos (Maneira mais usual)
  • Idiomas
Opção 3 ==> Compilar reports disponíveis no $AU_TOP. Funciona da mesma maneira da opção 2, porém somente manipulando arquivos .rdf. As opções para regenerar os reports são:
  • Todos os reports de todos os produtos (Loucura total se executar isso)
  • Reports de produtos específicos
  • Reports especíificos de produtos específicos (Maneira mais usual)
  • Idiomas
Opção 4 ==> Gerar arquivos de gráficos (.ogd) para arquivos de definições de gráficos (.ogx). Honestamente nunca utilizei esta opção e não sei exatamente qual a sua finalidade. Até em pesquisas pelo My oracle Support eu não achei nada muito específico. Deve ser por isso que na R12 essa opção foi removida.

Opção 5 ==> Gera novamente Jar Files da aplicação no $JAVA_TOP. Após isso, estes arquivos são copiados para o $APPL_TOP automaticamente. Esta opção recria as bibliotecas java (appsborg.zip e appsborg2.zip). Somente deve ser executado após um upgrade no Developer ou por orientação do suporte Oracle.

Ou seja, vimos que no menu 1 temos várias opções referentes a compilação/recompilação dos arquivos de aplicação. Vamos agora dar uma olhada no menu 2:


Neste menu podemos executar a manutenção dos arquivos da aplicação para mante-los integros e atualizados, bem como relinks de programas com bibliotecas do sistema operacional.

Opção 1 ==> Executa o relink dos produtos, seja de todos ou de produtos específicos, com as susas respectivas bibliotecas. Essa opção deve sempre ser executada com a base de dados parada. Esta opção geralmente deve ser utilizada após recomendação do suporte Oracle.
Importante: Não é possível utilizar esta opção para relink de utilitários do AD. Para esta tarefa, devemos utilizar o adrelink.

Opção 2 ==> Cria um env file (arquivo de configuração de ambiente) no caso de servidores Unix. O arquivo de configuração de ambiente é colocado diretamente sob o $APPL_TOP. Também nunca utilizei esta opção e talvez, coincidência ou não, a opção não faz mais parte do ADADMIN na R12.

Opção 3 ==> Executa cópia de arquivos de alguns PRODUCT_TOPS para outros top's, como:
  • Java Files para $JAVA_TOP
  • HTML Files para $OAH_TOP
  • Multimídia para $OAM_TOP
  • Reports para $AU_TOP
Importante: A opção “force” nunca deve ser utilizada, salvo sob orientação do suporte Oracle.

Opção 4 ==> Conversão de CharSet da aplicação. Ela prepara os arquivos de $APPL_TOP para a conversão, realizando após isso a corversão.Esta opção tem uma sub-opção que permite efetuar uma busca por excecão antes de realizar a conversão real. Este é um procedimento delicado e que deve ser muito testado antes de ser executado em produção.

Opção 5 ==> Snapshot da aplicação. Guarda um histórico de patches aplicados e versões de arquivos.

Opção 6 ==> Busca no APPL_TOP e acusa se existem arquivos faltantes.

Na opção acima então, podemos executar várias das rotinas de manutenção dos arquivos de aplicação.

É isso ai. Até agora tudo tranquilo né. Nenhum bicho de sete cabeças pulou da tela, nada nos assustou, tudo funcionou lindamente. Vamos então continuar, agora entrando nas tarefas de banco de dados da AdAdmin, ou seja, o menu 3.




Neste menu é permitida a compilação de arquivos relativos ao banco de dados do EBS. Obviamente que existem outras formas de fazer o que estes menus nos oferecem, mas o ideal é que a ferramenta seja utilizada, sempre. Os menus são bem intuítivos e suas opções falam por si só, portanto aqui teremos uma breve explicação de cada opção.

Opção 1 ==> Nesta opção é possível recompilar objetos inválidos do APPS Schema. Aqui fica apenas um observação: se houver muitos objetos inválidos em sua instance, você deve inverstigar o problema a fundo ao invés de ficar recompilando os objetos pois isso definitivamente não é normal e nem saudável para a sua base.

Opção 2 ==> Aqui podemos recompilar a estrutura de dados dos menus no APPS. Ao carregar um novo menu na tabela FND_MENU_ENTRIES ou se após uma alteração de menu a execução do concurrent de recompilação falhar, essa opção deve ser executada

Opção 3 ==> No item 3, podemos recompilar as estruturas de dados dos famosos FlexFields nas FND Tables. Esta opção geralmente será utilizada quando algum patch alterar configurações de FlexField em sua aplicação. Se isso ocorrer, geralmente o Readme do patch trará uma sessão de pós-requisitos onde solicitará a execução desta tarefa. Os FlexFields geralmente são compilados em sua primeira utilização, dispensando a execução desta tarefa a cada criação, porém a compilação dos dados de um FlexField em um momento específico (por exemplo, quando a utilização do sistema é baixa), pode amenizar possíveis problemas de desempenho em tempo de execução.

Opção 4 ==> Por último, mas não menos importante recompilamos os objetos JAVA (Java Class) no banco de dados. Esta opção recarrega todos os arquivos JAR próprios do banco de dados. Execute esta tarefa se todos as classes Java dos aplicativos Oracle forem removidos de seu banco.

A opção 4 do menu principal é bem tranquila e intuítiva para a sua utilização. Agora veremos as tarefas de manutenção do banco de dados que podem ser feitas no AdAdmin.

Nesta opção 4 do menu principal, iremos relizar as manutenções necessárias nos arquivos e objetos de banco de dados do EBS. Aqui, como no menu 3 tudo é muito iintuítivo.



Opção 1 ==> Valida o schema do APPS para ver se o mesmo está integro. O Relatório de saída será gerado em $APPL_TOP/admin//out/. Por se tratar de uma validação simples, pode ser executado sempre que necesário.
Opção 2 ==> Verifica a integridade de grant's e sinônimos que o usuário APPS deve possuir sobre as tabelas dos módulos. Identificado algum problema, recria os grant's e synonym's para o APPS.
Importante: Se houver muitos obletos inválidos em sua base, você deve resolver este problema rapidamente junto ao My Oracle Support.

Opção 3 ==> Executa apenas após a inclusão de um novo idioma no EBS. Nesta opção as tabelas e as views “amarradas” à linguagem serão recriadas .
Opção 4 ==> Manutenção da tabela DUAL. Essa tabela, como é de conhecimento de todos deve existir no schema SYS e deve possuir apenas uma linha. Inconsistências nesta tabela podem levar

Opção 5 ==> Manutenção do MRC. Aqui, como eu não conheço o MRC intimamente, vou transcrever o trecho do manual do AdAdmin. Se as funcionalidades do Multiple Reporting Currencies (MRC) estão instaladas, esta opção é chamada para efetuar a manutenção do schema Multiple Reporting Currencies.
O MRC é implementado usando o esquema APPS. Isso significa que a manutenção (ou conversão) somente irá recriar as triggers MRC no schema APPS. Não é necessário validar o esquema APPS antes de executar esta tarefa.
Para maiores informações sobre o MRC, basta pesquisar por “Multiple Reporting Currencies in Oracle Applications” no Metalink.

A opção 5 do menu principal é mais fácil de todas. Aqui você coloca e retira o EBS do modo de manutenção que deve ser habilitado para otimizar o desempenho e reduzir o tempo ocioso das sessões de AutoPatch.




Não existe muito o que explicar aqui, pois a própria tradução dos itens já diz tudo.

Opção 1 ==> Ativar o modo de manutenção.
Opção 2 ==> Desativar o modo de manutenção.

Quando você escolhe alterar entre os modos de manutenções, esse status fica demonstrado no superior da tela para que o ATG consiga se localizar em qual modo o EBS está no momento. Esse modo de manutenção é utilizado para a aplicação de patches.

Ufaaaaaaaaa!! Acho que terminamos esse passeio pelo AdAdmin. O artigo ficou um pouco longo, mas acredito que valha a pena para termos um instrumento de consulta rápida sobre este utilitário.

Postagem em destaque

[ORACLE] Batch change EDITIONABLE property.

Hello everyone. Hope you're doing well! Today, I have a simple case.   A test database had many database objects with the EDITIONABLE pr...