Arquivo

Posts Tagged ‘Weblogic’

NodeManager como serviço no Linux

Quando temos domínios com grande números de Machines(Node Manager) é interessante colocar o start do node como serviço do Linux, para que quando reinicie a máquina o node já inicialize no start do Sistema Operacional, eliminando o trabalho de logar na máquina apenas para start o node manager. Vou utilizar como exemplo o Oracle Linux 6, baseado no RedHat 6 ou qualquer outro linux baseados nessa distro.

Para usuário de SO eu utilizo o usuário oracle para o weblogic, mas o script precisa ser criado e alterado como usuário root, veja que no script eu mudo a permissão de execução para usuário oracle, assim garanto que o Node Manager não será iniciado como root.

  1. Crie um script startNodeDaemon no diretório init.d com o seguinte conteúdo:

    vi /etc/init.d/startNodeDaemon

    #!/bin/bash
    # chkconfig: 345 96 4
    su - oracle -c ; cd /var/domains/meuDomain/bin; nohup ./startNodeManager.sh & ;
    
  2. Dê permissão de execução para o Script.

    chmod +x /etc/init.d/startNodeDaemon

  3. Adicione o script ao chkconfig que adiciona ao SO pra ser chamado na sua inicialização.

    chkconfig −−add startNodeDaemon

  4. Habilite o chkconfig para que o script fique “ligado” ON

    chkconfig −−level 345 startNodeDaemon on

    Agora é só fazer um reboot no SO e testar se o Node Manager subiu junto com o Linux.

  5. Caso queira desabilitar o script do chkconfig utilize ‘off’ e não será mais chamado.

    chkconfig −−level 345 startNodeDaemon off

  6. Listar todos chkconfig

    chkconfig −−list

    startNodeDaemon  0:off 1:off 2:off 3:on 4:on 5:on 6:off
    NetworkManager   0:off 1:off 2:on 3:on 4:on 5:on 6:off
    abrt-ccpp             0:off 1:off 2:off 3:on 4:off 5:on 6:off
    abrt-oops             0:off 1:off 2:off 3:on 4:off 5:on 6:off

Anúncios
Categorias:linux, weblogic Tags:,

Alterar memória apenas do AdminServer Weblogic 12c

Por padrão o Weblogic utiliza 512mb de memória para o AdminServer administrar o domínio. Ser for um domínio pequeno essa memória e suficiente.  
Para um domínio maior com mais recursos é recomendado aumentar a quantidade de memória utilizada pela console. Como o AdminServer sobe por script colocar apenas adicionar na aba “Server Start” do AdminServer como é feito nos servidores não funciona, a alteração de memória dever ser definida no script setDomainEnv.sh que determina as variáveis e os valores do domínio.Este script fica localizado no diretório bin do domínio.

Edite o arquivo setDomainEnv.sh e insira o código abaixo para que apenas o AdminServer utilize a quantidade de memória defenida.

# vi /var/weblogic/domains/nomeDoDominio/bin/setDomainEnv.sh

Adicione esse código após os comentários do arquivo.

Por que ? Se não tiver o “IF” para definir a memória apenas para o AdminServer, todos servers do domínio também utilizarão essa quantidade de memória, e mesmo que para o server você adicione no ServerStart os parâmentos de -xms -xmx não sobrescreve o parâmetro MEN_ARGS.

if [ “${SERVER_NAME}” = “AdminServer” ] ; then
MEM_ARGS=”-Xms2048m -Xmx2048m -XX:MaxPermSize=512m”
export MEM_ARGS
fi

* Após a alteração restart o AdminServer e verifique no AdminServer.log se o parâmetro -Xms e -Xmx estão corretos.

Categorias:weblogic Tags:

Debug do JTA no Weblogic

Para habilitar o debug de JTA no weblogic basta setar os seguintes parâmetros na jvm do weblogic. No exemplo vou colocar no setDomainEnv.sh mas pode ser apenas no server-start da instância.

Variáveis utilizadas para debug: 

-Dweblogic.transaction.allowOverrideSetRollbackReason=true
-Dweblogic.debug.DebugJTA2PCStackTrace=true
-Dweblogic.debug.DebugJTA2PC=true
-Dweblogic.debug.DebugJTAXA=true</blockquote>

Colocando no setDomainEnv.sh


# vi /var/Oracle/domains/mydomain/bin/setDomainEnv.sh
JAVA_OPTIONS="-Dweblogic.transaction.allowOverrideSetRollbackReason=true -Dweblogic.debug.DebugJTA2PCStackTrace=true -Dweblogic.debug.DebugJTA2PC=true -Dweblogic.debug.DebugJTAXA=true"

export JAVA_OPTIONS

Agora é só reiniciar o domínio e testar o debug.

Categorias:weblogic Tags:

Patch no Weblogic 12 utilizando OPatch

O Weblogic na versão 12c parou de utilizar o BSU e passou a para o utilitário da Oracle de patch mais conhecido como OPatch. Para aplicar e verificar patch instalado ficou bem mais simples, vejamos:

1 – Baixe o patch no suporte da oracle. 

https://support.oracle.com/

* É necessário ter uma conta do Oracle My Supporte

2 – Descompactar o patch baixado Ex:

# unzip -d /var/Oracle/Middleware/PATCH_TOP p19637454_121300_Generic.zip

3 – Executar o opatch no diretório Oracle_Home
$ cd /var/Oracle/Middleware/Oracle_Home/OPatch
$ ./opatch apply /var/Oracle/PATCH_TOP/19647454
Log:

Patching component oracle.wls.server.shared.with.core.engine, 12.1.3.0.0…

Patching component oracle.wls.libraries, 12.1.3.0.0…
Patching component oracle.wls.core.app.server, 12.1.3.0.0…
Patching component oracle.wls.admin.console.en, 12.1.3.0.0…
Verifying the update…
Patch 19637454 successfully applied
Log file location: /var/Oracle/Middleware/Oracle_Home/cfgtoollogs/opatch/19637454_Feb_10_2015_18_33_57/apply2015-02-10_18-33-51PM_1.log
OPatch succeeded.

4 – Verificar se o patch foi instalado.
$ /var/Oracle/Middleware/Oracle_Home/opatch lsinventory

Log:

Patch  19637454     : applied on Tue Feb 10 18:35:09 BRST 2015

Unique Patch ID:  18320966
Patch description:  “WebLogic Server 12.1.3.0.2 PSU Patch for BUG19637454 THU NOV 27 10:54:42 IST 2014”
   Created on 27 Nov 2014, 13:01:39 hrs Asia/Calcutta
   Bugs fixed:
     19287874, 18276961, 18691894, 18968900, 19287842, 18859387, 18589879
     17012341, 19942900, 19730967, 18538501

*Obs:  Cada patch mostra em qual versão mínima do opatch e necessária para executar, verifique o arquivo README.txt do patch para ver qual a versão necessária.
 
Verificar a versão do OPatch da Instalação do Middleware.
$ cd /var/Oracle/Middleware/Oracle_Home/OPatch
$ ./opatch version

OPatch Version: 13.2.0.0.0

OPatch succeeded.
Veja a lista de parâmetros do OPatch. 
$ /var/Oracle/Middleware/Oracle_Home/opatch help
 apply
 napply
 rollback
 nrollback
 lsinventory
 lsinv
 lspatches
 compare
 query
 util
 prereq
 version
 -help
OBS:  Tive um problema com OPATH em uma máquina, ele funcionava pois encontrava o OracleHomeInventory ou estava corrompido. Tentei setar parâmetro, copiar de outra máquina, sempre o mesmo erro. Veja o Log de Erro:
OPatch cannot load inventory for the given Oracle Home.
      Possible causes are:
      Oracle Home dir. path does not exist in Central Inventory
      Oracle Home is a symbolic link
      Oracle Home inventory is corrupted
 OUI-67073:LsInventorySession failed: 

Solução: Executar um script do OPATCH para recriar o Inventory.

cd $ORACLE_HOME/oui/bin
$ ./attachHome.sh

Checking swap space: must be greater than 500 MB. Actual 196608 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-06-27_03-07-48AM. Please wait ...
Re-run the same command and it is going to work. 
Agora pode instalar o patch que vai funcionar .
Categorias:weblogic Tags:

Mapeando Diretório no Weblogic

Quando uma aplicação no Weblogic precisa acessar um diretório em disco para fazer uploud de arquivo ou ler arquivos em pdf, imagens e etc, e preciso mapear esse diretório para que o weblogic deixe esse diretório ser acessado pela aplicação.

1 – Criar um diretório que ficaram os arquivos: 
# /var/tmp/reportsFiles/

2 – Criar o arquivo weblogic.xml com as tags de Mapear diretório Virtual – O arquivo no projeto deve ficar no mesmo diretório do web.xml  /WEB-INF
 
/WEB-INF/weblogic.xml
<weblogic-web-app>
    <virtual-directory-mapping>
         <local-path>/var/tmp/reportsFiles/</local-path>
         <url-pattern>*.pdf</url-pattern>
    </virtual-directory-mapping>
</weblogic-web-app>

Feito isso a aplicação pode ler e salvar arquivos nesse diretório, lembre-se de ver as permissões de disco de leitura e gravação para o usuário que está iniciando o weblogic.

 

 

Categorias:weblogic Tags:

Weblogic 12.1.3 com RESTfull

O Weblogic 12c vem com implementação RESTful para gerenciamento do weblogic.

RESTful pode ser utilizado por qualquer linguagem de programação ou apenas com chamadas HTTP, e retorno JSON, XML, HTML e TXT,  o que torna o gerenciamento muito mais rápido pois não tem nenhum interpretador como WLST ou JVM para executar ou pegar informações do Weblogic.

1 –  Chamadas RESTFull no Weblogic 12.1.3

Utilizando chamadas http para interagir com o weblogic  utiliza-se o seguinte padrão:

Screen Shot 2015-02-26 at 2.17.23 PM
 Algumas chamadas são feitas via POST e outras GET.
Screen Shot 2015-02-26 at 11.17.40 AM
Quando a chamanda é por POST pode ser feita apenas pelo seu browser que o weblogic retorna um JSON com o resultado,  as chamadas via GET utilize um plugin do chrome chamado Advanced Rest Cliente
 
2 – Configurando o Weblogic para receber chamadas RESTfull. 
Activate by Domain > Configuration > Advanced Configuation > Enable RESTful Management Services 
Screen Shot 2015-02-26 at 10.34.38 AM
3 – Testando as chamadas RESTfull ao Weblogic 12.1.3
 
     Após o Weblogic configurado no seu bowser teste os seguinte comando
Verificar  versão
GET
Serviços RESTfull
GET
Ciclo de vida
GET
Manipular
POST
Configurar
POST
Data Source
POST
Retorno do weblogic em JSON para o browser.
Screen Shot 2015-02-26 at 11.39.50 AM

 

Resumo:
Acredito que futuramente o RESTfull poderá substituir o WLST, por ser mais rápido e mais simples, logo devem fazer interfaces de gerenciamento totalmente visual para essas interações via Rest.
Atualmente o Weblogic 12.1.3 conta com alguns serviços disponibilizados via RESTfull como:
  • Suport a mudanças e configurações.
  • Ciclo de vida dos Servidores
  • Criação de Data Souce
  • Start, Stop, Restart.
  • Deploy, unDeploy e reDeploy
Outras funções como criação de JMS e Workmanagers estão prometidos para próxima versão.
O Edwin Biemond no seu blog ja postou uma prévia utilizando Robot criando um HTML, vejam o resultado:

 

Ref:


Youtube – Ótimo vídeo do Munz sobre RESTfull no weblogic

 

Categorias:weblogic Tags:

Variável de Ambiente Java no Weblogic

09/24/2014 2 comentários

Aplicações que necessitam passar por vários ambientes como Desenvolvimento, Homologação e Produção, para que não seja necessário fazer um pacote para cada ambiente pode resolver no próprio código da aplicação testando uma variável colocada no weblogic identificando qual ambiente o pacote está. Vamos lá :

  1. Vamos definir o valor da variável para cada ambiente.

    Nome da Variável
    -Dambiente
    Valores:
    -Dambiente=DESENV
    -Dambiente=HOMO
    -Dambiente=PROD

  2. Adicinando a variável ao weblogic
    No weblogic navegue até: Dominio -> Environment -> Servers –> Server-1 -> Server Start -> Arguments Adicione a variável com o valor de Desenvolvimento:

    -Dambiente=DESENV 

  3. Testando com jsp
    Fiz uma aplicação web apenas com uma página inicial jsp parar testar.

    <% String teste = System.getProperty(“ambiente”); out.println(teste); %>

    Fiz deploy da aplicação do server e chamei a URL no browser:
    var

  4. Agora para cada ambiente basta colocar a variável com o seu conteúdo [DESENV,HOMO,PROD] testar na sua aplicação e utilizar o mesmo pacote parar todos ambientes. 😉
Categorias:weblogic Tags: