Arquivo

Archive for agosto \23\UTC 2012

Weblogic Start Lento

No linux RedHat ocorreu uma lentidão na inicialização de servidores weblogic utilizando Jrockit, chegava a demorar 15 minutos ou mais para iniciar um Server.

Isso é porque a Jrockit usa um gerador de números aleatórios durante a inicialização que lê aleatoriedade do /dev/random. o /dev/random é bom geradores de números aleatórios, mas é extremamente lento. Leva cerca de 10 minutos ou mais para gerar um número, mudei para utilizar o /dev/urandom que é praticamente instantâneo.
A alteração diminuiu o tempo de start do servidor para 2min.

Fazendo a alteração na JVM:

    1. Edite o arquivo:
 
JAVA_HOME/jre/lib/security/java.security
    1. procure pela propriedade:
 
/securerandom.source
    1. Altere o valor para:
 
securerandom.source=file:/dev/./urandom
  1. Restarte o Managed Server e observe se o tempo de startup diminuiu.
Anúncios
Categorias:Java, weblogic Tags:,

Mysql Comandos Básicos

Instalar mysql 5.1 Linux

 
apt-get install mysql-server-5.1

Iniciar Serviço Mysql

 
/etc/init.d/msqld start

Criar Alias para o mysql

 
alias mysql=/usr/bin/mysql 

Criar Alias para o mysqladmin

 
alias mysqladmin =/usr/bin/mysqladmin 

Logar com usuário Root

 
mysql -u root -p

Criar usuario mysql

 
mysql>CREATE USER 'usuarioTeste'@'localhost' IDENTIFIED BY 'senha123';

Dá permissão de root para o usuário

 
mysql> grant all on usuarioTeste.* to 'usuarioTeste'@'localhost';

Logar com usuário não root

 
mysql -u usuarioTeste -p

Criar Database

 
mysql>CREATE DATABASE novoDatabase;

Mostrar todos DataBase existentes

 
mysql>show database;

Entrar no dataBase

 
mysql>use novoDatabase;

Criar Tabela

 
mysql>CREATE TABLE USUARIOS;

Mostrar todas tabelas existentes

 
mysql>show tables;

Executar Script SQL

 
mysql>\. /tmp/criar_base.sql
Categorias:linux, mysql Tags:,

Comandos do Editor Vi

Comandos de Arquivo
:q Sai do VI
:w Salva alteraçoes feitas
:wq Salva aterações e sai do VI
:q! Sai sem salvar
:w abc Grava arquivo com o nome ‘abc’
:r abc Insere o conteúdo do arquivo ‘abc’
:e abc Edita o arquivo ‘abc’
Modo de Inserção
i Entra no modo de Inserção
a Entra no modo de Inserção, após o cursor
o Entra no modo de Inserção, em uma nova linha
<ESC> Sai do modo de Inserção
Copiar, Cortar e Colar
yy Copia a linha inteira
5yy Copia as 5 próximas linhas
dd Apaga a linha
5dd Apaga 5 linhas
x Apaga uma letra
5x Apaga 5 letras
p Cola o trecho copiado ou apagado
V Seleção visual de linhas
Pulos
gg Pula para a primeira linha
G Pula para a última linha
44G Pula para a linha número 44
w Pula para a próxima palavra
b Pula para a palavra anterior
{ Pula para o parágrafo anterior
} Pula para o próximo parágrafo
( Pula para a frase anterior
) Pula para a próxima frase
f. Pula até o próximo ponto (.), na mesma linha
Desfaz o pulo, volta
Apagando com esperteza
dgg Apaga até o início do arquivo
d0 Apaga até o início da linha atual
dw Apaga a palavra
d4b Apaga as quatro palavras anteriores
df. Apaga até o próximo ponto
d) Apaga até o fim da frase
Outros
J Junta a próxima linha com a atual
u Desfaz o último comando
Ctrl+R Refaz o último comando desfeito
. Repete o comando anterior
hjkl Movimenta o cursor
/ Pesquisa um texto
n Vai para o próximo resultado da pesquisa
:%s/a/b/g Troca ‘a’ por ‘b’ em todo o texto
:!cmd Executa o comando externo ‘cmd’
:r!cmd Insere o resultado do comando externo ‘cmd’
Categorias:linux, Mac, Solaris Tags:, ,

Descobrir o Processo de uma Porta no Solaris

Várias vezes no solaris algumas portas ficam listen mesmo matando o processo com o comando “kill -9”, são os conhecidos “processos zumbi”, este script solaris descobre o pid de uma porta que ficou LISTEN.


    port.sh

      
    
    #!/bin/ksh
    
    line='---------------------------------------------'
    pids=$(/usr/bin/ps -ef | sed 1d | awk '{print $2}')
    
    if [ $# -eq 0 ]; then
       read ans?"Enter port you would like to know pid for: "
    else
       ans=$1
    fi
    
    for f in $pids
    do
       /usr/proc/bin/pfiles $f 2&>/dev/null | /usr/xpg4/bin/grep -q "port: $ans"
       if [ $? -eq 0 ]; then
          echo $line
          echo "Port: $ans is being used by PID:\c"
          /usr/bin/ps -ef -o pid -o args | egrep -v "grep|pfiles" | grep $f
       fi
    done
    exit 0
    
    

    Executando o Script

    Chama o script passando a porta como parâmetro. Ex:

    ./port.sh 7001
    
Categorias:Solaris Tags:

WLST Stop Start Server

Script para Para e Iniciar um Server específico.

  1. startStop.py
  2.   
    
    #=============================================================
    # @author: Herivelto Gabriel
    #
    #=============================================================
    #Variaveils
    USUARIO_ADMIN='weblogic'
    PASSWORD_ADMIN='weblogic10'
    URL_ADMIN='t3://localhost:7001'
    #nome e porta do Server
    SERVER='Server-1'
    URL_SERVER='t3://localhost:8011'
    
    #=============================================================
    # connect adminServer
    #=============================================================
    def connection():
        try:
            connect(USUARIO_ADMIN,PASSWORD_ADMIN,URL_ADMIN)
        except WLSTException:
            print 'Error while shutting down Server',e
            exit()
    
    #=============================================================
    # Stop & Start Server
    #=============================================================
    
    connection()
    domainRuntime()
    
    mBean = cmo.lookupServerLifeCycleRuntime(SERVER)
    status = mBean.getState()
    
    #Testa se o server está rodando para Parar
    if status != 'RUNNING':
     shutdown(SERVER,force='true')
    elif status != 'SHUTDOWN' :
     start(SERVER,'Server',URL_SERVER)
    
    exit()
    #=============================================================
    
  3. Executando o Script
  4. Chama-se o script do weblogic wlst.sh e passa o nome do script com parâmetro. EX:

      
      ../Oracle/Middleware/wlserver_10.3/common/bin/wlst.sh startStop.py
    
  5. Start Stop automático com hora agendada
  6. Este script foi utilizado para fazer restart de um servidor todas as noites em um horário agendado, foi adicionado ao crontab do Solaris/linux

      
    #Parar o Servidor 02:00 e Iniciar 02:05
    00 02 *  *  * ../wlserver_10.3/common/bin/wlst.sh startStop.py 
    05 02 *  *  * ../wlserver_10.3/common/bin/wlst.sh startStop.py
    

    WLST Oracle Reference

Categorias:weblogic, wlst Tags:,

WLST Criar Clusters

Criando Cluster no Weblogic via script wlst no nodo online.

O Script é composto de dois arquivos um script.py e um arquivo.properties, esse arquivo properties é usado para definir as configurações de cada cluster.

  1. cluster.properties
  2. No Exemplo já temos um domínio weblogic (domain1)

      
    
    #==========================================================
    # @author : 
    # Herivelto Gabriel 
    #==========================================================
    
    USUARIO_ADMIN=weblogic
    SENHA_ADMIN=weblogic10
    ADMIN_SERVER_URL=t3://localhost:7001
    DIRETORIO_DOMINIO=/opt/Oracle/Middlewar1036/domains/domain1/
    
    #CLUSTER
    CLUSTER_1=cluster-linux
    
    CLUSTER_2=cluster-solaris
    
    CLUSTER_3=cluster-macos
    
    #==========================================================
    
    
  3. criarclusters.py
  4. O Script vai criar os clusters definidos no arquivo de properties:



      
    
    #==========================================================
    # @author : 
    # Herivelto Gabriel 
    #==========================================================
    from java.util   import Properties
    from java.io     import FileInputStream
    from java.io     import File
    from java.util   import Enumeration
    from string      import split
    
    #=========CARREGA DADOS ARQUIVO PROPRIEDADES===============
    #arquivo de propriedades a ser carregado
    localizacaoArquivoPropriedadesConfiguracao = 'cluster.properties'
    
    myProps = Properties()
    
    #carrega arquivo de propriedades
    myProps.load(FileInputStream(File(localizacaoArquivoPropriedadesConfiguracao)))
    
    #ler o Domínio
    readDomain(myProps.get('DIRETORIO_DOMINIO'))
    
    #========SEPARA ELEMENTOS DO ARQUIVO DE PROPRIEDADES ======
    cluters = []
    propertyNames = myProps.propertyNames()
    
    while propertyNames.hasMoreElements():
        chave = propertyNames.nextElement()
        elemento = split(chave, '_')
        if elemento[0] == 'CLUSTER':
            cluters.append(chave)
            
    print 'Lista de cluters a serem criado(s) aguarde....'
    for a in cluters:
        print 'Nome do Cluste == ' + myProps.get(a)
        
    
    #============ CRIACAO DOS CLUTERS  ========================
    print 'Iniciando configuração e criação dos Clusters ....'
    
    username = myProps.get('USUARIO_ADMIN')
    password = myProps.get('SENHA_ADMIN')
    adminServerURL = myProps.get('ADMIN_SERVER_URL')
    
    connect(username,password,adminServerURL);
    edit()
    startEdit()
    
    cd('/')
    
    for cluste in cluters:
        clusterName = myProps.get(cluste)
        print 'Criando cluster ...'+ clusterName
        
        clu = create(clusterName,'Cluster')
        clu.setClusterMessagingMode('unicast');
        clu.setClusterBroadcastChannel("channel-"+clusterName)            
        print''
        print'ClusterCriado com Sucesso !!'
    
    activate()
    #=================== FIM ================================
    
  5. Executando o Script
  6. Os dois arquivos (cluster.properties e criarClusters.py) devem está no mesmo diretório para a execução, chama-se o script do weblogic wlst.sh e passa o nome
    do script python com parâmetro. EX:

      
      ../Oracle/Middleware/wlserver_10.3/common/bin/wlst.sh criarclusters.py
    
Categorias:weblogic, wlst Tags:,

WLST Criar Servidores

Criando servidores no Weblogic via script wlst no nodo online.

O Script é composto de dois arquivos um script.py e um arquivo.properties, esse arquivo properties é usado para definir as configurações de cada servidor.

  1. servidores.properties
  2. No Exemplo já temos um domínio weblogic (domain1) em cluster com as machines já criadas e configuradas:

    • 2 Machines ( Machine-Linux e Machine-Solaris)
    • 2 Clusters ( cluster-linux e cluster-solaris)
      
    #==========================================================
    # @author
    # Herivelto Gabriel 
    #==========================================================
    
    #Variáveis globais 
    USUARIO_ADMIN=weblogic
    SENHA_ADMIN=weblogic10
    ADMIN_SERVER=t3://localhost:7001
    DIRETORIO_DOMINIO=/opt/Oracle/Middlewar/domains/domain1
    DIRETORIO_LOG=/var/log
    JAVA_HOME=/Library/Java/Home
    
    #Java Arguments 
    JAVA_ARGUMENTS= -Xms2g -Xmx2g 
    
    #somente true ou false
    PORTA_HTTPS_HABILITADA=true
    
    #Para cada servidor a ser criado repete esses parâmetros
    SERVIDOR_1=server-1
    IP_SERVIDORES_1=localhost
    PORTA_HTTP_SERVIDOR_1=7010
    PORTA_HTTPS_SERVIDOR_1=8010
    MACHINE_SERVIDOR_1=Machine-Linux
    CLUSTER_SERVIDOR_1=cluster-linux
    
    SERVIDOR_2=server-2
    IP_SERVIDORES_2=localhost
    PORTA_HTTP_SERVIDOR_2=7020
    PORTA_HTTPS_SERVIDOR_2=8020
    MACHINE_SERVIDOR_2=Machine-Solaris
    CLUSTER_SERVIDOR_2=cluster-solaris
     
    
  3. criarServidores.py
  4. O Script vai criar os servidores definidos no arquivo de properties e configurar:



    • Ip Servidor
    • Portas http e https
    • Cluster
    • Machine
    • Java Options
    • Caminho de log
      
    #==========================================================
    # @author
    # Herivelto Gabriel 
    #==========================================================
    from java.util   import Properties
    from java.io     import FileInputStream
    from java.io     import File
    from java.util   import Enumeration
    from string      import split
    
    #==========CARREGA DADOS ARQUIVO PROPRIEDADES=================
    #arquivo de propriedades a ser carregado (com o mesmo nome )
    localizacaoArquivoPropriedadesConfiguracao = 'servidores.properties'
    
    myProps = Properties()
    
    #carrega arquivo de propriedades
    myProps.load(FileInputStream(File(localizacaoArquivoPropriedadesConfiguracao)))
    
    readDomain(myProps.get('DIRETORIO_DOMINIO'))
    
    #=====SEPARA ELEMENTOS SERVIDOR DA LISTA DE PROPRIEDADES=====
    #array para add os servidores do arquivo de propriedades.
    servidores = []
    
    propertyNames = myProps.propertyNames()
    
    while propertyNames.hasMoreElements():
        #carrega os nomes do arquivo de propriedades
        chave = propertyNames.nextElement()
        #Se e um servidor adiciona no array de servidores.
        elemento = split(chave, '_')
        if elemento[0] == 'SERVIDOR':
            servidores.append(chave)
            
    print 'Os seguinte servidores serão criados, aguarde....'
    for a in servidores:
        print 'Nome do servidor == ' + myProps.get(a)
    
    #==========CRIACAO E CONFIGURACAO DE INSTANCIAS=============
    print 'Iniciando configuracao dos servidores........'
    
    #Pega as variáveis do aquivo de Properties
    portaHttpsHabilitada = myProps.get('PORTA_HTTPS_HABILITADA') 
    dirLogs=myProps.get('DIRETORIO_LOG')
    adminUser = myProps.get('USUARIO_ADMIN')
    adminPassword = myProps.get('SENHA_ADMIN')
    adminServerURL = myProps.get('ADMIN_SERVER')
    java_home = myProps.get('JAVA_HOME')
    
    #Conecta com o AdminServer que vai ser configurado.
    connect(adminUser,adminPassword,adminServerURL);
    
    #Inicia a criação
    edit()
    startEdit()
    cd('/')
    
    for servidor in servidores:
        #Pega os valores de cada server.
        nomeServidor = myProps.get(servidor)
        ipServidor = myProps.get('IP_'+servidor)
        portaHttp = myProps.get('PORTA_HTTP_'+servidor)
        nomeMachine = myProps.get('MACHINE_'+servidor)
        nomeCluster = myProps.get('CLUSTER_'+servidor)
        javaArguments = myProps.get('JAVA_ARGUMENTS') 
        cd('/')    
        
        #Criar o Server
        cmo.createServer(nomeServidor)
        cd('/Servers/' + nomeServidor)
        cmo.setListenAddress(ipServidor)
        cmo.setListenPortEnabled(True)
        cmo.setListenPort(int(portaHttp))
        print 'Servidor Criado == ' + nomeServidor 
    
        #Seta o Cluster
        cmo.setCluster(getMBean('/Clusters/' + nomeCluster))
        print 'Cluster Selecionado == ' + nomeCluster 
    
        #Seta a Machine
        cmo.setMachine(getMBean('/Machines/' + nomeMachine))
        print 'Node Manager Selecionado == ' + nomeMachine
        
        #Seta os Arguments
        cmo.getServerStart().setArguments(javaArguments)
        cmo.getServerStart().setJavaHome(java_home)
        cmo.getServerStart().setJavaVendor("Oracle")
        cmo.getServerStart().setUsername(adminUser)
        cmo.getServerStart().setPassword(adminPassword)
        print 'JAVA_HOME / Arguments Setado '
        
        #Se Existir porta HTTPS Hablita e seta o IP
        if portaHttpsHabilitada == 'true':
            portaHttps = myProps.get('PORTA_HTTPS_'+servidor)
            cd('SSL/'+nomeServidor)
            cmo.setEnabled(True)
            cmo.setListenPort(int(portaHttps))
            print 'HTTPS Configurado '
            
        #configrar LOG
        cd('/')
        cd('Servers/' + nomeServidor +'/Log/'+ nomeServidor)
        cmo.setFileName(dirLogs +'/'+ nomeServidor +'/server.log')
        cmo.setRotationType('byTime')
        cmo.setFileTimeSpan(6)
        cd('/')
        cd('Servers/' + nomeServidor + '/WebServer/' + nomeServidor +'/WebServerLog/' +nomeServidor)
        cmo.setFileName(dirLogs +'/'+ nomeServidor +'/access.log')
        cmo.setRotationType('byTime')
        cmo.setFileTimeSpan(6)
        print 'Server.log e access.log  CONFIGURADO == '+ dirLogs
        print 'SERVIDOR CRIADO E CONFIGURADO Com Sucesso !! \n\n'
        
    
    # Atualiza dominio e sai
    
    activate()
    
    #===============================  FIM ======================
    
  5. Executando o Script com wlst.sh
  6. Os dois arquivos (servidores.properties e criarServidores.py) devem está no mesmo diretório para a execução, chama-se o script do weblogic wlst.sh e passa o nome
    do script python com parâmetro. EX:

      
      ../Oracle/Middleware/wlserver_10.3/common/bin/wlst.sh criarServidores.py
    
Categorias:weblogic, wlst Tags:,