Existem inúmeras tarefas que podemos realizar nos produtos Oracle Fucion Middleware através de comandos pela interface WLST. O WebLogic Scripting Tool (WLST) é uma interface de script de linha de comando que administradores e operadores do sistema usam para monitorar e gerenciar instâncias e domínios do WebLogic Server.

O ambiente de script do WLST é baseado no interpretador de scripts Java, o Jython. Além das funções de script do WebLogic, você pode usar recursos comuns de linguagens interpretadas, incluindo variáveis locais, variáveis condicionais e instruções de controle de fluxo. Os desenvolvedores e administradores do WebLogic podem estender a linguagem de script WebLogic para atender às suas necessidades seguindo a sintaxe da linguagem Jython. Veja www.jython.org

O WLST oferece Três modos de operação, são eles:

  • Interativamente, por linha de comando;
  • Em um arquivo de texto/Script;
  • Em código Java embutido;

Neste post vou mostrar como criar um arquivo de texto com um script para listar as partições de um domínio. Scripts invocam uma seqüência de comandos WLST sem exigir sua entrada, muito parecido com um script shell. Os scripts contêm comandos WLST em um arquivo de texto com extensão de arquivo .py, por exemplo, filename.py. Você usa arquivos de script com os comandos Jython para executar scripts.

Vamos ao que interessa, mão na massa e código.

from java.util import Hashtable
from javax.naming import Context
from java.lang import String
from java.lang import Object
from oracle.soa.management.facade import ServerManagerFactory
from oracle.soa.management.facade import ServerManager

host='<ip_address>'
port='8001'
username='<username>'
password='<password>'
providerURL = 't3://' + host + ':' + port + '/soa-infra';

print '###############################################################################################'
jndiProps = Hashtable()
jndiProps.put(Context.PROVIDER_URL, providerURL)
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, 'weblogic.jndi.WLInitialContextFactory')
jndiProps.put(Context.SECURITY_PRINCIPAL, username)
jndiProps.put(Context.SECURITY_CREDENTIALS, password)

smf = ServerManagerFactory.getInstance()
sm = smf.createServerManager(jndiProps)

print '----------------------------------------------------------------------------------------------'
partitions = sm.getPartitions()
for partition in partitions:
    try:
    	print 'partition::', partition.getName()
    	print '----------------------------------------------------------------------------------------------'
    except:
        print "error processing partition information::"  +  partition.getName(), sys.exc_info()
print '###############################################################################################'

Das linhas 15 a 19 é criado uma Hashtable com as propriedades mínimas para a conexão, como: URL, Context Factory, Usuário e Senha com permissões para executar as operações.

Linha 22 é criado uma instância de ServerManager e a partir dela temos acesso ao método que obtém todas as partições getPartitions, linha 15. A partir daqui, é iterar a lista retornada e teremos acesso a todas as partições presentes no domínio.

Para executar é muito simples:

Salve o arquivo com o nome ListPartitions.py, navegue até o diretório $MDL_HOME/oracle_common/common/bin e execute com o comando: ./wlst.sh /<file_home>/ListPartitions.py

Altere o IP, Usuário e Senha nas linhas 8, 10 e 11 e teste, altere, brinque e divirtam-se.

Por enquanto é isso, até o próximo post

Deixe um comentário

Campos obrigatórios são marcados *

Post Navigation