quarta-feira, 30 de abril de 2014

Truncate Tables SOAINFRA

Na versão 11.1.1.7 do SOA Suite 11g, a Oracle disponibilizou um script .sql para fazer truncate nas tabelas do SOAINFRA sem termos que executar o DROP e CREATE de tabelas.
O script executa o truncate nas tabelas dos seguintes componentes:
  • Oracle BPEL Process Manager
  • Oracle Mediator
  • Business rules
  • Oracle B2B
  • SOA Infrastructure
  • Oracle BPM Suite
O script se encontra em:
<MW_HOME>/<SOA_ORACLE_HOME>/rcu/integration/soainfra/sql/truncate

O script pode ser executado da seguinte maneira:

cd <MW_HOME>/<SOA_ORACLE_HOME>/rcu/integration/soainfra/sql/truncate
sqlplus dev_soainfra
@truncate_soa_oracle.sql

quinta-feira, 24 de abril de 2014

Administrando MDS via Script

Existem algumas maneiras para remover diretórios e arquivos do MDS, irei demonstrar alguns exemplos de como fazer via script.

Remover diretorios e arquivos WLST Script:
cd <SOA_HOME>/common/bin
./wlst.sh
sca_removeSharedData('http://localhost:7001', '<FOLDER>', 'weblogic', 'weblogic1')

Remover diretorios e arquivos ANT Script:
. <MIDDLEWARE_HOME>/user_projects/domains/<YOUR_DOMAIN>/bin/setDomainEnv.sh
cd <SOA_HOME>/bin
ant -f ant-sca-deploy.xml removeSharedData -DserverURL=http://localhost:7001 -DfolderName=<FOLDER> -Duser=weblogic -Dpassword=weblogic1

Remover arquivos WLST Script:
cd <SOA_HOME>/common/bin
./wlst.sh
connect('weblogic', 'weblogic1', 't3://localhost:7001')
deleteMetadata(application='soa-infra',server='AdminServer',docs='/apps/**')

Outra maneira de se chamar o comando deleteMetadata é executando o MBean Browser via Enterprise Manager.

Obs: Com estes comandos você remove somente os arquivos que estão dentro do diretório "apps".

Import, Export e Purge

 

No Enterprise Manager, podemos fazer import de artefatos, export dos artefatos e purge de histórico de versão de arquivos não marcados. Acesse "Administration" -> "MDS Configuration"

Os mesmos comandos dessa tela podem ser feitos via script.

Import diretórios e arquivos:
WLST Script:
cd <SOA_HOME>/common/bin
./wlst.sh
connect('weblogic', 'weblogic1', 't3://localhost:7001')
importMetadata(application='soa-infra', server='AdminServer', fromLocation='/home/leonardo/jdeveloper/mywork/MDSSampleApplication/Artefatos',docs="/apps/**")

Import .jar:
WLST Script:
cd <SOA_HOME>/common/bin
./wlst.sh
connect('weblogic', 'weblogic1', 't3://localhost:7001')
importMetadata(application='soa-infra', server='AdminServer', fromLocation='/home/leonardo/jdeveloper/mywork/MDSSampleApplication/deploy/mdsSampleSoabundle.zip',docs="/apps/**")

  Export diretórios e arquivos:
WLST Script:
cd <SOA_HOME>/common/bin
./wlst.sh
connect('weblogic', 'weblogic1', 't3://localhost:7001')
exportMetadata(application='soa-infra', server='AdminServer',toLocation='/tmp/Artefatos',docs='/apps/**')

Export .jar:
WLST Script:
cd <SOA_HOME>/common/bin
./wlst.sh
connect('weblogic', 'weblogic1', 't3://localhost:7001')
exportMetadata(application='soa-infra', server='AdminServer',toLocation='/tmp/Artefatos/artefatos.jar',docs='/apps/**')

Purge:
WLST Script:
cd <SOA_HOME>/common/bin
./wlst.sh
connect('weblogic', 'weblogic1', 't3://localhost:7001')
purgeMetadata('soa-infra', 'AdminServer', 10)

terça-feira, 22 de abril de 2014

HR schema - Oracle-XE

Uma dica para quem estuda as ferramentas em casa e para quem não conhece, quando instalamos o Oracle XE, o mesmo vem com um exemplo de schema pré-configurado cujo owner é o HR.
O owner vem bloqueado, para desbloqueá-lo um dos meios é executar os comandos abaixo:

1-) Logar como DBA:
    sqlplus SYS AS SYSDBA
2-) Executar:
    ALTER USER HR ACCOUNT UNLOCK IDENTIFIED BY <PASSWORD>;

Outra maneira de desbloquear e dar manutenção no Oracle XE é utilizar a aplicação Apex, que fica disponível em:
http://localhost:8080/apex

Com o user HR desbloqueado, acesse a base utilizando um programa para acesso a base como SQL Developer da Oracle, e encontrará as seguintes tabelas:



As tabelas já vêm com dados, e que podemos utilizar para estudo nas gerações de telas ADF e serviços utilizando o SOA Suite 11g.

Instalação do Oracle SQL Developer no Ubuntu

Baixe o Oracle Sql Developer em : Oracle Sql Developer Donwload Page
No exemplo utilizei o pacote sqldeveloper-4.0.1.14.48-1.noarch.rpm.
Execute os comando abaixo para instalar:

sudo alien --scripts -d sqldeveloper-4.0.1.14.48-1.noarch.rpm
sudo dpkg --install sqldeveloper_4.0.1.14.48-2_all.deb

quinta-feira, 17 de abril de 2014

MetaData Service - MDS

O MDS é um repositório que é organizado em partições, onde contem uma estrutura similar aos diretórios (pastas) que utilizamos no Windows, Linux e Mac.
A utilização do MDS nos ajuda a compartilhar e fazer o reuso de artefatos como (XSD, WSDL, XSLT, EDL), assim reduzindo a duplicidade de artefatos nos composites.

Configurando no JDeveloper MDS-Connection

Podemos configurar dois tipos de conexão com o MDS, File Based MDS e DB Based MDS
Vamos criar um projeto chamado Artefatos para ser utilizado em File Based MDS.
  •     Clique em "New Project" e escolha "Generic Project"
  •     Preencha o campo "Project Name" com "Artefatos" e clique em OK
  •     Clique com o botão direito encima do projeto Artefatos, clique em "New" e escolha a opção "Folder" e preencha o campo "Folder Name" com "apps"
  •     Clique com o botão direito encima do diretório "apps", clique em "New" e escolha a opção "Folder" e preencha o campo "Folder Name" com "xsd"
  •     Clique com o botão direito encima do diretório "xsd", clique em "New" e escolha a opção "XML Schema"
  •     Preencha o campo "File Name" com "cliente.xsd" e clique em OK
  •     Gere o arquivo como o exemplo abaixo:
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:ls="http://www.leonardosugahara.com.br"
            targetNamespace="http://www.leonardosugahara.com.br"
            elementFormDefault="qualified">
  <xsd:element name="cliente">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element type="xsd:string" name="nome"/>
            <xsd:element type="xsd:string" name="cpf"/>
        </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>



1-) Configurando um File Based MDS
  •     Clique em "New" -> escolha SOA-MDS Connection -> OK
  •     Preencha o campo "connection name": "FileBaseMDS"
  •     Escolha "File Based MDS" no combo "Connection Type"
  •     Clique em Browser e escolha o diretório apps do projeto Artefatos que foi criado anteriormente.
  •     Clique em "Test Connection" e verá a mensagem "Success!"

Neste passo criamos uma conexão MDS apontando para o diretório de artefatos que criamos para serem usado e compartilhados nos projetos. Podemos criar uma conexão apontando para o diretório <JDEVELOPER_HOME>\jdeveloper\integration\seed, nesta estrutura encontra-se os artefatos que são utilizados pelo SOA Suite e que podemos utilizar também, alguns desses artefatos são: RuntimeFault.wsdl, HumanTaskEvent.edl, e ws-addressing.xsd.


2-) Configurando um DB Based MDS
  •     Clique em "New" -> escolha SOA-MDS Connection -> OK
  •     Preencha o campo "connection name": "DBBaseMDS"
  •     Escolha "DB Based MDS" no combo "Connection Type"
  •     Clique no sinal de mais na cor verde para criarmos uma conexão com a base
  •     Na Janela "Create DataBase Connection" preencha com as seguintes informações:
        Creator Connection In: "IDE Connections"
        Connection Name: "DEV_MDS_Connection"
        Connection Type: "Oracle"
        Username: DEV_MDS
        Password: <senha definida para o owner DEV_MDS>
    Os itens abaixo já estão preenchidos com as informações do oracle xe, se não estiver preencher com:       
        Driver: "thin"
        Host Name: "localhost"
        JDBC Port: 1521
        SID: XE
  •     Clique em "Test Connection" e verá a mensagem "Success!"
  •     Clique em OK

    De volta a janela "Create SOA-MDS Connection", escolha a opção "soa-infra" em "Select MDS partition"
    Clique em "Test Connection" e verá a mensagem "Success!"

Verifique em resource palette suas conexões.

Utilizando os artefatos disponíveis no MDS

Quando for utilizado algum artefato (XSD, WSDL, XSLT, EDL, etc) que estão no MDS, você vai ver a notação "oramds:" no inicio da referência da URL do artefato.
Vamos criar um composite para utilizar o artefato cliente.xsd como retorno de um processo BPEL.
  • Clique em "New Project" e escolha "SOA Project"
  • O arquivo composite.xml irá abrir, em "Component Pallete" arraste um "BPEL Process" em "Component"
  • Escolha a opção "BPEL 2.0 Specification"
  • Preencha o campo "Name" com "ClienteProcess"
  • Em "Template" escolha "Syncronous BPEL Process"
  • Em "Outpout" clique na lupa
  • Na janela "Type Chooser", clique no primeiro botão da esquerda para a direita "Import Schema File"
  • Na janela "Import Schema File", clique na lupa
  • Na janela "SOA Resource Browser", escolha no combo a opção Resource Palette, selecione o artefato cliente.xsd de FileBasedMDS e clique em OK

  • Na janela "Import Schema File", tire a flag "Copy to Project" e clique em OK
 

Na janela "Type Chooser", selecione o Type cliente e clique em OK
 
 
 
 
 
Foi criado o WSDL "ClienteProcess.wsdl", abra ele e veja o trecho seguinte, indicando a utilização do arquivo no MDS.

<schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://www.leonardosugahara.com.br" schemaLocation="oramds:/xsd/cliente.xsd" />
</schema>


Configurações na Aplicação

Observe no arquivo adf-config.xml as respectivas entradas.

Quando utilizado File Based MDS:
<metadata-store-usage id="mstore-usage_3">
    <metadata-store class-name="oracle.mds.persistence.stores.file.FileMetadataStore">
        <property value="/home/leonardo/jdeveloper/mywork/MDSSampleApplication/Artefatos"
            name="metadata-path"/>
        <property value="apps" name="partition-name"/>
    </metadata-store>
</metadata-store-usage>


Quando utilizado DB Based MDS:
<metadata-store-usage id="mstore-usage_2">
    <metadata-store class-name="oracle.mds.persistence.stores.db.DBMetadataStore">
        <property value="DEV_MDS" name="jdbc-userid"/>
        <property value="jdbc:oracle:thin:@localhost:1521:XE"
                name="jdbc-url"/>
        <property value="soa-infra" name="partition-name"/>
    </metadata-store>
</metadata-store-usage>

   

terça-feira, 15 de abril de 2014

Instalando Oracle-XE no Ubuntu 64-bit

Para instalar o oracle-xe no ubuntu 64-bit siga os passos abaixo:

1-) devemos primeiro instalar algumas libs:
    libaio1 - biblioteca necessária para rodar a instalação;
    alien - para converter a extensão .rpm (red-hat) para .deb (debian)
comando:
    sudo apt-get install alien libaio1

2-) descompactar o arquivo zip
comando:
    unzip oracle-xe-11.2.0-1.0.x86_64.rpm

3-) converter o arquivo oracle-xe-11.2.0-1.0.x86_64.rpm para oracle-xe-11.2.0-1.0.x86_64.deb
comando:
    sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm

4-) alter o arquivo sysctl.conf com o texto abaixo:
comando:
    sudo vi /etc/sysctl.conf

###########
# Oracle XE Recommended Values
kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648
##########


5-) criar o arquivo chkconfig:
comando:
    sudo vim /sbin/chkconfig

acrescente o texto abaixo:
#!/bin/bash
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
echo >> $file
echo '### BEGIN INIT INFO' >> $file
echo '# Provides: OracleXE' >> $file
echo '# Required-Start: $remote_fs $syslog' >> $file
echo '# Required-Stop: $remote_fs $syslog' >> $file
echo '# Default-Start: 2 3 4 5' >> $file
echo '# Default-Stop: 0 1 6' >> $file
echo '# Short-Description: Oracle 11g Express Edition' >> $file
echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01


dar permissão no arquivo com o comando:
    sudo chmod 755 /sbin/chkconfig

6-) rodar a instalação:
comando:
    sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb

7-) Configuração do linux:
    Para evitarmos os problemas abaixo na hora de executar o comando do item 8, execute os seguintes passo: 
    ==============================   
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux-x86_64 Error: 2: No such file or directory
    ORA-00845: MEMORY_TARGET not supported on this system
    ==============================


executar como root:
   rm -rf /dev/shm
   mkdir /dev/shm
   mount -t tmpfs shmfs -o size=2048m /dev/shm


criar o arquivo S01shm_load no diretório /etc/rc2.d:
    sudo vim /etc/rc2.d/S01shm_load

insira o texto abaixo:
#!/bin/sh
case "$1" in
start) mkdir /var/lock/subsys 2>/dev/null
       touch /var/lock/subsys/listener
       rm /dev/shm 2>/dev/null
       mkdir /dev/shm 2>/dev/null
       mount -t tmpfs shmfs -o size=2048m /dev/shm ;;
*) echo error
   exit 1 ;;
esac


dar permissão no arquivo:
    chmod 755 /etc/rc2.d/S01shm_load
   
8-) configurar o oracle-xe:
comando:
    sudo /etc/init.d/oracle-xe configure

para as duas primeiras perguntas, aceite o valor default precionando enter.
Specify the HTTP port that will be used for Oracle Application Express [8080]:
Specify a port that will be used for the database listener [1521]:

A terceira requisição defina uma senha pra os users SYS e SYSTEM.

9-) configurar o arquivo .bashrc
comando:
    sudo vi ~/.bashrc

no final do arquivo acrescente o texto abaixo:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=XE
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export ORACLE_BASE=/u01/app/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH


10-) rode o comando abaixo para ler as configurações:
comando:
    . ./.profile

11-) rode o comando abaixo para dar start no oracle-xe:
comando:
    sudo service oracle-xe start

12-) teste via linha de comando com o sqlplus:
comando:
    sqlplus sys as sysdba

13-) teste via browser:
url:
    http://localhost:8080/apex

sexta-feira, 11 de abril de 2014

Materiais de estudo #1

Livro - Oracle SOA Suite 11g Handbook
Autor: Lucas Jellema
Serie: Oracle Press
Editora: McGraw-Hill Osborne Media

Excelente livro para quem não conhece a ferramenta e está iniciando os estudos e trabalho.
O livro aborda a utilização de todos os itens que compõe o SOA Suite (BPEL, Mediator, BRE, Adapter’s, Human Task, MDS).
O autor utilizou um hospital como caso de uso para a demonstração da utilização de cada componente.
Aborda também a utilização de scripts para compilação (ANT, PYTHON e WLST), Unit Test, monitoração, politicas de segurança e tratamento de erros, Oracle Service Bus, Governança e mais...
Leitura um pouco extensa, mas que vale muito a pena, pois te mostra muito bem a ferramenta e um bom auxilio de conhecimento para quem quer tirar a certificação.

Para quem desejar comprar o livro, segue o link: Amazon - Oracle SOA Suite Handbook

Mesmice! Meu primeiro post!

Criei o blog, para compartilhar meus aprendizados nas ferramentas da Oracle: SOA Suite, WebCenter e ADF, e mais algumas coisas de JAVA.
Irei compartilhar e comentar post's de outros blogs, livros e sites que são de meu interesse e que estão relacionados as ferramentas da Oracle.

Abraços.