quinta-feira, 7 de outubro de 2010

Hora do café...

ODI - Versionando interfaces

Um recurso que o ODI fornece é o versionamento de qualquer objeto criado no mesmo. Interfaces, variáveis, pacotes, procedures, armazenamento de dados, etc. Aqui vamos abordar apenas o versionamento de interfaces (apesar que não muda nada para versionamento de outros objetos :) ).

1 - Clique com o botão direito sobre a interface, acesse a opção Versão -> Criar



2 - Na janela que será exibida informe o número da versão que deseja gerar (número é incrementado automaticamente) e no campo Descrição informe o conteúdo da versão ou que lhe for mais conveniente


3 - Acessando a guia Versão na interface é possível visualizar as versões existentes da mesma


4 - No nosso exemplo criamos mais uma versão (1.0.0.1) na qual alteramos a interface apenas adicionando a funcção TRUNC em um campo

5 - Caso seja necessário voltar uma versão, basta clicar com o botão direito sobre a interface ir em Versão -> Restaurar


6 - Será exibida uma janela com as versões disponíveis para interface. Selecione a desejada e clique em Ok. Será exibida uma mensagem informand que a operação pode causar a perda de algumas referências. Isso acontece quando uma interface utiliza em uma versão antiga um armazenamento de dados que agora não existe mais e desejamos voltar a mesma para essa versão antiga, por isso é importante ter cuidado na restauração de versões


Pronto a interface voltou para a versão 1.0.0.0 (no caso a que selecionamos na restauração) onde a função TRUNC não existe ainda.

quarta-feira, 6 de outubro de 2010

ODI - Instalando Agentes

Na primeira etapa vamos instalar o agente, na segunda vamos configurá-lo:

Instalação:

As primeiras telas da instalação basta seguir o roteiro abaixo:

1-

2 - Selecione a opção Server que nada mais é que o agente ODI.


3-Configuração do Oracle Home e diretório do mesmo.


4- Caso a instalação seja realizada em um cluster, o instalador automaticamente identifica o mesmo e fornece a opção para instalar em todos os nodos do mesmo o agente. Foi o que aconteceu na nossa instalação abaixo:


5- Marque as opções que deseja instalar. No nosso caso todas.


6- Nessa tela são as configurações do Data Profilling e Quality. Como o foco é a instalação somente do agente, vamos deixar os valores padrões, apensa vamos informar uma senha.


7-Resumo da instalação:


8- Nessa tela são exibidos o script de instalação e as máquinas onde serão instalados os agentes.

Pronto, o agente esta instalado, porém para ficar funcional é preciso configurar o mesmo.

Configuração:

Após a instalação do agente, é necessário realizar a configuração de algumas informações. A primeira etapa é alterar o arquivo odiparams.sh (odiparams.bat no Windows). Abra o arquivo e altere o seguinte trecho em negrito com as informações de conexão do repositório mestre do ODI:

# Repository Connection Information# ODI_SECU_DRIVER=org.hsqldb.jdbcDriver ODI_SECU_URL=jdbc:hsqldb:hsql://localhost ODI_SECU_USER=sa ODI_SECU_ENCODED_PASS= ODI_SECU_WORK_REP=WORKREP ODI_USER=SUPERVISOR ODI_ENCODED_PASS=LELKIELGLJMDLKMGHEHJDBGBGFDGGH

Onde:
ODI_SECU_URL= String de conexão com o repositório do ODI ODI_SECU_USER= Usuário do repositório mestre do ODI ODI_SECU_ENCODED_PASS= Senha do usuário do repositório mestre do ODI ODI_SECU_WORK_REP=Nome do repositório de trabalho

Importante: Os drivers jdbc para conexão com banco de dados devem ser copiados para o diretório drivers na instalação do agente.

Para inicializar o agente, é necessário definir algumas variáveis de ambiente antes. Para isso é recomendável criar um script que inicialize essas variáveis e o agente. Abaixo segue instruções a serem incluídas neste arquivo, o qual chamaremos de agentstar.sh:

export ODI_JAVA_HOME=/app/oracle/agent10g/jdk ./agentscheduler.sh "-PORT=20910" "-NAME=DB50_20910" "-V=2" 1> ../logs/agent.log 2> ../logs/agent.err

Antes de iniciar o agente, é necessário adicionar o mesmo no repositório do ODI, para isso siga os passos abaixo:

1- Acesse o módulo Topology, vá na guia Arquitetura Física, clique com o botão direito sobre agentes -> Inserir Agente:


2 - Informe o nome do agente (mesmo nome colocado na opção -NAME do arquivo agentstart.sh), o host e porta:


Salve clicando em aplicar. Inicialize o agente na máquina onde foi instalado chamando o script de inicialização criado:

./startagent.sh

Verifique se ocorreu algum erro na inicialização do agente acessando o arquivo logs/agent.err. Caso o arquivo esteja sem erros volte ao Topology e clique no botão Testar para testar a conexão com o agente:



Pronto, agente ativo e funcionando!!

sábado, 21 de agosto de 2010

ODI - Não truncar hora para campos data

No ODI campos data que são mapeados entre tabelas de bases diferentes, o valor do campo é truncado ficando somente a data e eliminando a hora, minuto e segundo. Para evitar isso basta adicionar uma propriedade na conexão física com o banco. No Topology, acesse o servidor de dados e adicione a propriedade conforme figura abaixo:


Esse ATND é crédito do colega Mateus (Tedy)

terça-feira, 27 de julho de 2010

quarta-feira, 23 de junho de 2010

Unable to Create an Instance of the Java Virtual Machine

Ao tentar abrir o Oracle SQL Developer esta mensagem pode ser exibida. Isso ocorre muitas vezes logo após instalar um novo aplicativo na máquina ou mesmo por uma atualização do windows (o que aconteceu comigo).
Para resolver abra o arquivo ide.conf <(SQLDeveloper>\ide\bin) e altere a seguinte linha:

De:
AddVMOption -Xmx640M
AddVMOption -Xms128M

Para:
AddVMOption -Xmx256M
AddVMOption -Xms128M

Salve o arquivo e tente abrir novamente o aplicativo.

quarta-feira, 2 de junho de 2010

Alterando o número de processos no Oracle

O RCU (Repository Creation Unit) exige alguns prérequisitos de banco antes de executar a criação dos objetos no banco dedados. Um desse prérequisitos é o número de processos (processes). Para alterar execute os passos abaixo:

1 Conecte como SYSDBA
2 Execute o comando alter system set processes=200 scope=spfile
3 Reinicie o banco

segunda-feira, 10 de maio de 2010

Message part element undefined in wsdl

No Jdev 11, quando alteramos um DBAdapter, por exemplo alteramos a instrução SQL do mesmo, o arquivo XSD referente ao mesmo é alterado automaticamente, porém (é sempre tem um porém) em muitas vezes ao tentarmos compilar o fluxo ocorre o seguinte erro:

Error: Load of wsdl "DBA_UpdJConsSaida.wsdl with Message part element undefined in wsdl [file:/C:/Projetos/BPEL_Fluxos/Process1/DBA_ConsUsuLocal.wsdl] part name = DBA_ConsUsuLocalInput_msg type = {http://xmlns.oracle.com/pcbpel/adapter/db/DBA_ConsUsuLocal}DBA_ConsUsuLocalInput" failed

Isso ocorre pois ao alterar o XSD, o Jdev não atribui um tipo aos atributos de input do DBAdapter. Para corrigir acesse o XSD do referido DBAdapter e informe o tipo do atributo:

terça-feira, 30 de março de 2010

SOA 11g - Configurando conta de e-mail

Para que os fluxos BPEL possam enviar e-mails no SOA 11g é necessário configurar o servidor através dos seguintes passos:

Acesso o Enterprise Manager:



Na lista de recursos a esquerda, clique com o botão direito sobre usermessagingdriver-email:



Configure as opções conforme a figura abaixo:



Clique em Aply para salvar as configurações. Após acesse a opção soa-infra com o botão direito e clique sobre SOA Administration -> Workflow Notification Properties e preencha os campos conforme a figura abaixo:







Após concluída e salva a configuração é necessário reiniciar o servidor SOA para que as mesmas tenham efeito.

sexta-feira, 19 de março de 2010

Padrões e melhores práticas em integrações

Eis aqui um ótimo site que possui muito material referente a padrões, modelos, boas práticas para construção de soluções de integrações.

http://eaipatterns.com/

Hora do café...

ODI - Buscando informações do repositório de trabalho

Em algumas situações, precisamos fazer uma pesquisa nas informações do repositório de trabalho do ODI, como por exemplo ver todas as interfaces que foram alteradas, e/ou verificar quem as alterou e quando. Abaixo segue um pequeno script que retorna todos os objetos do ODI que foram alterados:

select * from SNP_POP where LAST_DATE <> FURST_DATE order by LAST_DATE;


Quem sabe você precisa saber quais os objetos que você criou e alguém alterou:

select * from SNP_POP where LAST_USER <> 'MY_USER' and FIRST_USER = 'MY_USER' order by LAST_USER;

Onde MY_USER é o nome do seu usuário no ODI.

Abraço

quarta-feira, 17 de março de 2010

Pegando dados da linha anterior

Em alguns casos específicos é necessário retornar em uma instrução sql os dados da linha corrente e alguma informação da linha anterior. Para isso, no Oracle, podemos utilizar a função lag:

Objetivo: Buscar as informações da coluna M e o valor da mesma coluna na linha anterior ordenando pelo campo ID:

Solução:
select M as "Valor Corrente", LAG(M,1) over (order by ID) "Valor Ant M" from TAB1


(Créditos Rômulo)

terça-feira, 9 de março de 2010

Remover usuário proxy salvo no IE - Win XP

Para alterar o usuário e senha informado no IE para autenticação em um servidor proxy é necessário executar as seguintes etapas:

Acesso o Painel de Controle -> Contas de Usuários:



Selecione o usuário da máquina que você utiliza:


Clique na opção "Gerenciar as senhas de rede":


Selecione o servidor proxy que deseja remover os dados salvos para o referido usuário e clique no botão remover:


Pronto. No próximo acesso no navegador o usuário e senha do proxy serão novamente solicitados.

quinta-feira, 11 de fevereiro de 2010

ODI - Usando cursores do Sybase

Para quem é habituado a trabalhar com PL/SQL no Oracle, fazer isso no ODI é simples. Porém quando se trata de passar um bloco do Sybase para o ODI é necessário atenção a algumas particularidade. Aqui vamos demonstrar como fazemos uso de cursores no Sybase utilizando o ODI.

No exemplo criamos um procedimento ODI, porém a mesma técnica pode ser implementada em KMs.

Crie dois passos:


No primeiro passo faça a declaração do cursor. Se existirem mais de um cursor, faça um passo para cada:


No passo seguinte escreva o bloco que irá usar o(s) cursor(es):



Os créditos desse ATND são dos colegas Silveirinha e Valdo.

segunda-feira, 8 de fevereiro de 2010

Gerência de Projetos - Go Horse Process

Esta aí uma metodologia que a gente vê em prática seguidamente:
GO Horse Process

http://gohorseprocess.wordpress.com/faq/

Weblogic - Fazendo deploy de um Webservice


Copie o WAR para uma pasta no servidor.

Acesse o console do weblogic (http://host:port/console)



Clique na opção Deployments (menu a esquerda):



Clique na opção Install:




Informe o diretório onde esta copiado o WAR do WS, tecle enter. Todos os arquivos de deploy serão listados abaixo. Selecione o referente ao seu WS e clique em Next:


Marque a opção Application e tecle Next:




Selecione em qual server quer fazer o deploy, no meu caso soa_server:



Se quiser altere o nome de seu WS. Após clique em Next:



E Finish:



Se o deploy foi finalizado com sucesso, o seu WS ira ficar com status Ok - Active na lista de Deployments.

Jdeveloper 11g - Alterando o EndPoint de um Webservice

Quando geramos um Webservice pelo Jdev, por padrão ele gera o endpoint conforme abaixo:

http://host:porta/--context-root/

Para alterar esse endpoint, clique com o botão direito sobre o projeto:



Vá na opção Java EE Application e altere o item Java EE Web Context Root
























Gere novamente o WAR e faça deploy no servidor.

Jdeveloper 11g - Alterando o nome dos parâmetros de Webservices

Quando criamos um Webservice com base em uma classe java no Jdeveloper 11g, a naba gera o nome dos parâmetros como arg0, arg1, arg2. Para resolver isso e fazer a bagaça gerar com os devidos nomes, o método deve ser declarado conforme abaixo:

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebMethod
public int insertModl(@WebParam(name = "nm_modl") String nm_modl, @WebParam(name = "fl_disp") String fl_disp,
@WebParam(name = "ds_modl") String ds_modl, @WebParam(name = "nr_maxm_tent") int nr_maxm_tent) {

...

}

quinta-feira, 28 de janeiro de 2010

Weblogic - Factories de Conexão - DBAdapters

Em fluxos BPEL, os DBAdapters fazem uso de factories de conexão. Essas factories são criadas no servidor WL (console). Abaixo seguem os passos para criar uma factory de conexão.

Acesse o console do WL e clique em Deployments:



Clique sobre DbAdapter:



Após clique nas guias Configuration / Outbound Connection Table:



Selecione javax.resource.cci.ConnectionFactory:



Informe o JNDI Name e clique em Finish:



Clique sobre a factory que acabou de criar:








Serão exibidas as informações de conexão. Informe o Datasource (previamente criado) conforme figura abaixo e salve:



Após acesse a opção Transaction e altere para Local Transaction. Salve:


Feito!