WSO2 Business Activity Monitoring + SQL Server
A pedidos do "chefe", realizei o download e a instalação do WSO2 Business Activity Monitoring (versão 1.0.1) e parti para os testes.
Mas como migramos toda a suíte para rodar sobre o SQL Server, configurei tudo para apontar para o banco de dados do WSO2 Governance Registry (arquivo conf/registry.xml) e do WSO2 Identity Server (arquivo conf/user-mgt.xml) - maiores explicações ficam para uma outra oportunidade.
Só que ainda ficou uma dúvida no ar! Aonde estavam as configurações de conexão de banco de dados que armazenam as informações do BAM propriamente dito? Pesquisando nos arquivos instalados encontrei um diretório "bam", e para minha não-surpresa, lá estavam mais dois diretórios:
- ./bam/database/: diretório com arquivos da base de dados do H2;
- ./bam/sql/: scripts de criação da base de dados em diferentes bancos (H2, SQL Server, MySQL e Oracle).
Com essa descoberta, o jeito foi partir para o básico, buscar um arquivo de configuração que pudesse conter a conexão apontando para esses arquivos.
leonardo@mcorp:~/Applications/wso2/wso2bam-1.0.1$ grep -r h2:database * conf/registry.xml: jdbc:h2:database/WSO2CARBON_DB conf/user-mgt.xml: jdbc:h2:database/WSO2CARBON_DB
Ops, não encontrei nada. Nova tentativa:
leonardo@mcorp:~/Applications/wso2/wso2bam-1.0.1$ grep -r h2 * [milhões de respostas - ocultadas por mim - que não ajudam em nada]
Vamos lá, filtrar um pouco mais para quem sabe ser mais feliz:
leonardo@mcorp:~/Applications/wso2/wso2bam-1.0.1$ grep -r jdbc:h2 * conf/registry.xml: jdbc:h2:database/WSO2CARBON_DB conf/user-mgt.xml: jdbc:h2:database/WSO2CARBON_DB repository/dataservices/BAMSummaryGenerationDS.dbs:jdbc:h2:bam/database/WSO2BAM_DB repository/dataservices/BAMConfigurationDS.dbs:jdbc:h2:bam/database/WSO2BAM_DB repository/dataservices/BAMStatQueryDS.dbs:jdbc:h2:bam/database/WSO2BAM_DB repository/dataservices/BAMDataCollectionDS.dbs:jdbc:h2:bam/database/WSO2BAM_DB repository/dataservices/BAMSummaryQueryDS.dbs:jdbc:h2:bam/database/WSO2BAM_DB
E agora sim! Com isso descobrimos que ele utiliza alguns data services que realizam o trabalho "sujo".
Então, basta alterarmos todos esses serviços para conectarem na base de dados criada no SQL Server (dentro de cada serviço tem exemplos). Os serviços são:
- repository/dataservices/BAMSummaryGenerationDS.dbs
- repository/dataservices/BAMConfigurationDS.dbs
- repository/dataservices/BAMStatQueryDS.dbs
- repository/dataservices/BAMDataCollectionDS.dbs
- repository/dataservices/BAMSummaryQueryDS.dbs
E carregar o arquivo bam/sql/bam_schema_mssql.sql na base de dados e... voilà.
INFO - Server : WSO2 Business Activity Monitor-1.0.1 INFO - WSO2 Carbon started in 6 sec
Os estudos sobre o WSO2 Business Activity Monitoring continuarão num próximo capítulo, sempre acompanhado de dicas e descobertas. (:
Compilando o plugin do WSO2 Data Services Server para o Eclipse
Como não encontrei uma versão final do plugin para o Eclipse para criação, edição e deploy de serviços do WSO2 Data Services Server na página de downloads do site, o jeito foi compilar o plugin a partir do fonte disponível no repositório (e viva o código aberto). E seguem abaixo os passos necessário para o procedimento.
Requisitos
Será necessário que você tenha instalado os programas abaixo para poder realizar esse processo. Não é minha ideia ensinar como instalar, mas com uma busca no Google esse problema deve ser facilmente resolvido:
Baixando fontes
Primeiro passo é baixar do repositório o código fonte da última versão:
svn co https://wso2.org/repos/wso2/trunk/tools/ide/eclipse/data-service/org.wso2.ws.dataservices.ide/
Compilação
Depois de baixados os fontes, basta entrar na pasta que foi gerada e mandar compilar:
cd org.wso2.ws.dataservices.ide mvn install
Esse processo pode demorar um pouco, pois ele realiza o download de diversas dependências para compilação, mas no fim ele gera dentro do diretório "target" com o arquivo "org.wso2.ws.dataservices.ide_1.0.0.jar" que deve ser instalado no seu Eclipse.
Instalação
No meu caso, o Eclipse está instalado no meu home e é para lá que copiei o arquivo.
cp target/org.wso2.ws.dataservices.ide_1.0.0.jar ~/Applications/eclipse/plugins/.
Finalização
E com isso, no menu de "Novo", do seu Eclipse, deve ter a opção de wizard para criação e após criado o serviço (que ficará para um outro post) você tem a opção de clicar com o botão direito no arquivo e editar (Edit Data Service) ou realizar o deploy (Deploy Data Service).
WSO2 Data Services – Instalação do servidor
A instalação do WSO2 Data Services se divide em duas partes, a instalação do servidor e a preparação do ambiente de desenvolvimento.
1. Servidor
É necessário realizar o download da última versão (utilizamos aqui a 2.0) do servidor na página do projeto.
Vou exemplificar os comandos como se fosse utilizar pasta "~/Applications/wso2" para colocar todos os servidores do WSO2, caso tenha outra escolha, verifique a adaptação dos comandos.
Criando a pasta:
mkdir -p ~/Applications/wso2
Descompactando o arquivo (lembrando de verificar a versão do arquivo que você baixou - no meu caso, 2.0):
unzip /path/to/download/wso2dataservices-2.0.zip -d ~/Applications/wso2
Após descompactado, vamos iniciar o servidor:
cd ~/Applications/wso2/wso2-dataservices-2.0 ./bin/wso2server.sh
Após algumas (várias) mensagens depois, você deve receber algo como:
[2009-05-29 14:30:30,330] INFO - HTTPS port : 9443 {org.wso2.carbon.core.StartupServlet}
[2009-05-29 14:30:30,333] INFO - HTTP port : 9763 {org.wso2.carbon.core.StartupServlet}
[2009-05-29 14:30:30,333] INFO - WSO2 Carbon started in 35 sec {org.wso2.carbon.core.StartupServlet}
E isso representa que tudo já está instalado e funcionando! Para sair, basta usar "CTRL + C".
Esse comando que acabou de utilizar é usado para controlar o serviço do WSO2, tem alguns parâmetros que podem ser utilizados, para vê-los basta digitar:
./bin/wso2server.sh help
E com isso temos o servidor instalado! Para mantê-lo iniciado, em background, basta utilizar o comando:
./bin/wso2server.sh start
1. Ambiente de desenvolvimento
É necessário realizar o download e instalação desse plugin para o Eclipse.
Numa próxima "jornada", vamos fazer nosso primeiro data service.