segunda-feira, 17 de abril de 2017

OHS - Oracle HTTP Server - Comandos Úteis

Olá pessoal, eu resolvi listar alguns comandos úteis do OHS.

Iniciar o servidor:
$ORACLE_INSTANCE/bin/opmnctl startproc process-type=OHS

Parar servidor ohs
$ORACLE_INSTANCE/bin/opmnctl stopproc process-type=OHS

Para um componente 
$ORACLE_INSTANCE/bin/opmnctl stopproc ias-component=component_name

Parar de forma verbosa
$ORACLE_INSTANCE/bin/opmnctl verbose stopproc ias-component=component_name

Reiniciar Servidor:
$ORACLE_INSTANCE/bin/opmnctl restartproc process-type=OHS

Reiniciar um componente
$ORACLE_INSTANCE/bin/opmnctl restartproc ias-component=component_name

Reiniciar de forma verbosa
$ORACLE_INSTANCE/bin/opmnctl verbose restartproc ias-component=component_name
Criar um componente
$ORACLE_INSTANCE/bin/opmnctl createcomponent -componentType OHS -componentName component_name
-listenPort: HTTP listening port
-sslPort: HTTPS (SSL) listening port
-proxyPort: Proxy MBean port usada internamente para se comunicar com o fusion middleware.

Remover todos componentes:
$ORACLE_INSTANCE/bin/opmnctl deletecomponent -componentName component_name

Remover componente especifico:
$ORACLE_INSTANCE/bin/opmnctl deletecomponent -componentName ohs2

Mudar porta do OHS
ORACLE_HOME/ohs/bin
chown root .apachectl
chmod 6750 .apachectl

That's all folks!!

segunda-feira, 8 de agosto de 2016

[JDeveloper] Http Analyser - How to!!

Bom dia,
O JDev é uma IDE completa com suporte com inúmeras funcionalidades incluindo um http analyser.



HTTP Analyser

É possível registrar com o http analyser todas as requisições http, também é um utilitário bem fácil e rápido, eu vou ser sincero eu acho incrível que algo com esses atributos está no Jdeveloper.

The moment whe your got mind-blown from
seeing something remarkable!!!

















Ele pode logar desde requisições SOAP, Rest(JSON, XML) até chamadas e redirects entre as páginas adf ou qualquer outro framework.

Para utilizar esse jutsu basta seguir a seguinte sequência de selos.


Jutsu Http analyser










1) Abrir a aba de configuração do http analyser.




















A seguinte view estará disponível.











2) Na view clique na lupa de preferences. "Cara na real que viagem uma lupa como ícone de preferences!!"


View de preferences.


















3) Clique em "Configure Proxy, literalmente para onde vc quer o http analyser redirecione a requisição. e adicione as suas configurações.
























4) Suas configs estão feitas, agora é hora de brincar é só startar o listener.









5) É só trabalhar com a porta do listener, por exemplo de 7001 para 8099 no meu caso, http://localhost:8099/console
Ao executar os request serão logados no http analyser.










6) Ao clicar nas mensagens é possível ver os detalhes, as seguintes opções para renderizar estão disponíveis Soap, http content'e :D, REST, Hex content e Raw Message, ou seja, um canivete suíço.













É interessante que é possível colocar lado a lado request/response e avaliar os headers trocados.

Request HTTP - Comum





















Request Http - Soap





















Bom galera por hoje é só!!








Grande abraço e Falouz!!! 


sexta-feira, 22 de julho de 2016

[Ferramentas úteis] SetupMyProject


Olá amigos,
Quem nunca passou uma situação entrou em apuros para configurar um projeto spring ou java ee, quem nunca se bateu um pouco("muito") pra configurar as dependências do maven


É pra essas horas que temos setupmyproject.

http://www.setupmyproject.com/

É uma solução online desenvolvida pelo Alberto Souza, a ideia é excelente e gostaria de agradecer e dizer que me tornei usuário.

Grande Abraço.

[Ferramentas Utéis] sqlfiddle


Olá amigos,
Quem nunca passou uma situação entrou em apuros onde vc só queria testar uma query em banco de dados relacional, mas não podia/queria instalar um.


É pra essas horas que temos temos nosso sqlfiddle.




O SQL Fiddle é um projeto muito bacana, no qual podemos criar tabelas e queries testáveis de forma rápida e online.
















Eu destaquei as abas, o funcionamento é muito simples e acho que não é necessário entrar em detalhes.


Abraço,
Fuiz!!

quinta-feira, 21 de julho de 2016

[Weblogic] Exportar certificado SSL e TLS

Olá amigos,
Eu imagino que todo mundo já deve ter brigado com o bendito do keytool para exportar um certificado do weblogic, bom existe um caminho mais fácil!!!


O keystore explorer é uma ótima ferramenta para te ajudar nesses probleminha abaixo o link para download.

http://www.keystore-explorer.org/

Como esse processo funciona  no weblogic??? Aqui embaixo está o nosso how-to!!













Ao iniciar o keystore será apresentada a tela abaixo:

Para verificar/importar/exportar certificados do weblogic será necessário editar seus arquivos de jks. 
No meu caso eu tenho apenas o demotrust instalado que é o certificado default que vem no weblogic. 
[$MIDDLEWARE_HOME]\Oracle_Home\wlserver\server\lib\demotrust.jks

Ao editar input o passphrase padrão DemoTrustKeyStorePassPhrase:


Para exportar um certificado basta selecionar o certificado e clicar com o botão direito:


quarta-feira, 20 de julho de 2016

[Arquitetura de Software] Soluções (Técnicas de contraponto e cuidados com o viés de confirmação)

Olá pessoas,
Mas um dia belo e ensolarado de inverno para falarmos sobre arquitetura de software.

Abaixo uma charge comum no dia a dia de um arquiteto de software:


serto que ás vezes ficamos com vontade de matar um... Tirando essa parte essa charge tem algo muito interessante a ser lembrado o bendito Viés de confirmação.

Mas oq vem a ser viés de confirmação??




"Basicamente é uma tendência cognitiva, temos um problema no nosso raciocínio indutivo de apenas lembrar e pesquisar coisas que sustentem a nossa crença inicial." 

Esse fenômeno ocorre às vezes de uma forma não perceptível e tem reflexos sobre todas as nossas decisões, inclusive as que envolvem arquitetura.

 Tá??? Mas que diabos isso tem a ver com arquitetura.


Ao propor soluções em projetos temos uma tendência de pesquisar e ouvir apenas pessoas que concordem com aquilo que estamos propondo.

É nessa hora que bom termos aquele colega chato, mas muito chato.

Para evitar essa tendência cognitiva procure seguir alguns passos simples como:

  1. Solicitar uma avaliação do seu colega chato.
  2. Solicitar avaliação de mais de uma pessoa.
  3. Avaliar Desempenho, Dificuldade de Desenvolvimento, Dificuldade de Manutenção, Reutilização e Análise de Impacto.
  4. Pesquisar pontos contra sua proposta, se vc não encontrou continue procurando vc não pesquisou direito.





"O primeiro pecado da humanidade foi a fé; a primeira virtude foi a dúvida." Carl Sagan

Ajustar 
Abraço!!



segunda-feira, 11 de julho de 2016

[JDeveloper] Erro ao criar domínio integrado

Boa tarde,
Eu tive problemas ao gerar o domínio integrado do JDeveloper no windows 10.




Graças um post do ótimo blog universioned resolvi meu problema:

https://unversioned.blogspot.com.br/2015/12/jdeveloper-12c-generic-installer-cannot-create-weblogic-domain.html


Retirado do blog universioned:

Caso ocorra um erro como esse ao criar o domínio:

[Waiting for the domain to finish building...]
[03:44:23 PM] Creating IntegratedWebLogicServer Domain...
[03:44:32 PM] ERROR:  An error occurred while building the default domain.
Please see this log file for more details:
C:\Users\ChristosVezalis\AppData\Roaming\JDeveloper\system12.2.1.0.42.151011.0031\o.j2ee.adrs\BuildDefaultDomain.log
The Server Instance cannot be started because the IntegratedWebLogicServer Domain was not built successfully

Vc deve baixar o seguinte jar jython-modules.jar e substituir na diretório 

[$middleware_home]\Oracle_Home\wlserver\common\wlst\modules



Abraços!!

[JDeveloper]Melhorar desempenho/performance JDeveloper

Olá pessoas,
Existem alguns procedimentos que podem tornar a experiência com Oracle JDeveloper mais fluída para tal serão necessárias algumas configurações como as abaixo:

Acesse o arquivo jdev.conf que fica [$MIDDLEWARE_HOME]/jdeveloper/jdev/bin.

Você pode adicionar as seguintes propriedades:

1)Aumentar o heap ajuste o heap para o tamanho mais adequado para isso adicione as seguintes linhas: 
  • AddVMOption  -Xmx2048M
  • AddVMOption  -Xms2048M
2) Ajustar o opções de edição de texto:
  • AddVMOption -XX:+UseStringCache
  • AddVMOption -XX:+OptimizeStringConcat
  • AddVMOption -XX:+UseCompressedStrings
3) Ajuste para reduzir o tempo de pausa, ideal para máquina com 4 cores ou superior:
  • AddVMOption -XX:+UseConcMarkSweepGC
4) Ajuste para alterar a política de GC:
  • AddVMOption -XX:+AggressiveOpts
5) Desabilitar o image pool.
  • AddVMOption -Ddecora.disable.pool=true
6) Ativar o monitoramento de memória, através dele e possível ver o consumo do heap em tempo real e ativar o GC através de solicitação.
  • AddVMOption -DMainWindow.MemoryMonitorOn=true
Abraços

Algoritmo para distância Levenshtein - XQuery


Boa tarde pessoas!!!
Eu pergunto quem nunca passou por uma situação como essa??



É bastante comum não é verdade? rsrs


Mas como funciona um corretor ortográfico? Qual seria o algoritmo por trás disso?

Basicamente essa solução é conhecida como distância de Levenshtein, esse tipo de solução consegue nos dizer a distância entre as palavras permitindo ao corretor selecionar a palavra mais adequada ou não rsrs!!!

Esse tipo de solução pode ser aplicada a diversos contextos, mas como nosso foco é integração e API's pensamos em algo voltado para isso.

Bom vamos exemplificar.

sexta-feira, 8 de julho de 2016

[JDeveloper](OSB , ADF)- JDeveloper 12.2.1 (12c) Debug não funciona.

Olá pessoas,
Ao rodar o JDeveloper 12.2.1 algumas pessoas tem enfrentado problemas para rodar o debug do OSB e de aplicações java ADF.

Para resolver esse problema você precisa realizar o seguinte procedimento:


1) Editar o arquivo java.policy em $JAVA_HOME/jre/lib/security da VM onde o weblogic está executando.


2) Ao editar o arquivo adicione a linha permission javax.management.MBeanTrustPermission "register"; como abaixo:



Dúvidas ou problemas é só chamar.

domingo, 13 de dezembro de 2015

Ciclo de vida - váriaveis padrão OSB


Eu acredito que em algum momento o ciclo de vida das variáveis padrão do OSB já gerou dúvidas a todo mundo. Meu objetivo é que com uma série de post's encontraremos uma forma clara e rápida de explicar como isso funciona.

Vou editar e re-editar esse post por alguns dias, por isso não se suupreendam se eu mudar um pouco a estrutura do post.

Bom, temos as variáveis padrão no OSB abaixo:
Variável Descrição Altera Protocolo
$header Contém o header SOAP. Não
$body Contém o body SOAP. Não
$attachments Contém os attachments associados. Sim
$fault Contém detalhes da última fault recebida. Não
$inbound Contém meta-dados sobre a requisição como headers, detalhes do client e outras informações. Sim
$outbound Contém meta-dados sobre a requisição como headers, detalhes do client e outras informações. Sim
$operation Contém o nome da operação acionada. Não

Um ponto imporante para lembrar é que a estrutura das variáveis irá mudar conforme o tipo de protocolo, como destaquei na coluna "altera protocolo". Podemos trabalhar com vários protocolos conforme a lista abaixo:

jca file mq
ws(x) ftp sftp
sb http(x) tuxedo
email jms(x) local(x)

Eu marquei com "x" os protocolos que eu irei abordar.

Comparação entre SOAP 1.1 e SOAP 1.2 (SOAP 1.1 vs SOAP 1.2)

Quais são as diferenças entre SOAP 1.1 e SOAP 1.2???

Quem não perguntou se existe vantagem em utilizar Soap 1.2 ao invés de 1.1, mas qual seria essa vantagem?


Basicamente são duas:



  1. Performance.
  2. Serviço agnóstico de protocolo.
Performance é um benefício meio óbvio, então vamos nos concentrar no segundo que é agrega mais valor.

Um serviço em Soap 1.2 pode trabalhar com JMS por exemplo usando a estrutura do envelope Soap, já no caso do 1.1 ficamos limitados ao http e ao ftp.

Podemos dizer que o protocolo Soap 1.2 aumentada as nossas capacidades de integração e então sempre que possível é interessante optar por ele.

Sem mais!!

Grande Abraço.

sexta-feira, 9 de setembro de 2011

Timeout Business Service - Oracle Service Bus

Olá pessoas esse é mais um post meu na internet.

Bom, nesse post vou demonstar como configurar e tratar de forma adequada o timeout de um Business Service no Oracle Service Bus 11g. 

Indicado para desenvolvedores

Pontos importantes:
-Ao lançar o timeout o business não impede o provedor de continuar com seu processamento, em outra palavras, se o timeout do provedor for maior que do business service em serviço transacionais podem haver problemas de integridade.


Pré-requisitos:
Eclipse com OEPE: 11.1.1.4
OSB: 11.1.1.4
SoapUI 4.x ou superior
Ter algum familiaridade com OSB.

Configuração de projetos
Baixe sconfig nesse link e importe no seu eclipse.
Baixe o projeto SoapUI nesse LINK e importe.
Publique o projeto no OSB.


Ao abrirmos o projeto vamos se deparar com a estrutura abaixo:


Para configurar o timeout clique no business service e navegue até a aba HTTP Transport.



Aqui temos duas opções de configurações voltadas para timeout sendo elas:

Connection Timeout: Ele determina quanto tempo esperar até ocorrer o ack do TCP.
Read Timeout: Ele determina quanto tempo esperar o response após o request ser enviado. 

O valor dessas propriedades está em segundos.

Vamos alterar os valores para 3 segundos cada e publique o projeto no OSB.Após publicar selecione o Business dentro do SBConsole, iremos verificar que as propriedades estão configuradas corretamente, a partir do SBConsole também é posssível alterar essas propriedades.


Bom, vamos aos testes para compreender como funciona o controle de timeout no OSB.

Primeiro vamos alterar o nosso mock do SoapUI. Clique no response e vá na opção Script, adicione o um sleep de 5 segundos por exemplo, na função sleep os valores estão em milisegundos.


Logo após isso vamos testar no business, altere o endpoint do business para o endpoint do mock. E abra o test console do Business do OSB, execute o teste e veja o resultado.

Após esgotar o tempo o business lançou um erro como o descrito na figura abaixo, isso significa que o teste foi com sucesso. Mas notou que a exceção lançada não está em um formato de fault??
Esse ponto é um pouco ruim, se deixarmos em aberto sem efetuar o tratamento adequado pode gerar má interpretação de erros por parte do cliente. No exemplo que temos, há um tratamento de erros nesse tratamento estamos traduzindo esse erro para o formato esperado pelo cliente.

Clique no proxy local e vá até o error handler para conferir.
Para conferir como a mensagem será tratada e enviada para o cliente acione o proxy soap. Após a execução o erro retornado estará formado conforme o seguinte.
Feito isso já termos nosso projeto com tratamento de timeout configurado e com sua falta tratada de forma correta.

Obrigado!! Nós vemos por ai!