Algumas observações e dicas sobre o Oracle/Aqualogic BPM Enterprise

Desde a última sexta-feira até hoje ao final do dia, podemos dizer que passei um certo sofrimento tentando fazer o deploy de um projeto no Oracle BPM Enterprise, só que a minha situação é um pouco atípica, pois no ambiente de homologação e produção do cliente, a versão que está sendo utilizada da distribuição enterprise ainda é a 6.04, ou seja, Aqualogic BPM Enterprise e não Oracle BPM Enterprise (mais recente).

Há cerca de um mês atrás eu havia falado sobre isso, lembra? Resumidamente o que eu havia dito é que apesar de saber que a versão no cliente ainda era a 6.04, eu havia tomado a decisão de usar a versão nova do Oracle BPM Studio, pois em relação a ferramenta pouca coisa havia mudado e o que havia mudado não impactaria no arquivo gerado a ser deployado nas distribuições enterprise. Inclusive o pessoal da Oracle havia me confirmado isso em um workshop que eu havia ido.

Como o cluster lá do meu trabalho onde está (estava) rodando a versão 6.04 da distribuição enterprise estava muito instável, resolvi fazer a instalação em outra máquina. Foi aí que começou a minha própria Via Crucis. Um detalhe importante é que eu nunca havia feito a instalação da distribuição enterprise, portanto era uma experiência totalmente nova para mim.

A distribuição enterprise do ALBPM possui alguns conceitos um pouco diferentes da versão usada para desenvolvimento (Studio), a começar pelo conceito de directory service e pelas outras aplicações que vem agregadas juntas a instalação. Dentre as aplicações que me interessavam estavam apenas o process administrator, workspace e process engine. Tinha ainda o PAPI Web Services, que pode ser muito importante dentro de um projeto BPM, mas como eu não precisaria integrar outros projetos com o meu projeto BPM, então o PAPI-WS nesse caso não seria necessário, pelo menos não naquele directory service atual. Directory Service é onde ficam guardadas as informações referentes a usuários, roles, grupos, resources externos e outras informações que fazem parte de um projeto no BPM, além também dessas aplicações já citadas. Não necessariamente cada projeto deve ter o seu próprio directory service, na verdade N projetos podem compartilhar o mesmo. Outro ponto importante diz respeito a process execution engine, pois cada directory service possui a sua própria engine, ou até mesmo mais de uma, mas apenas uma engine cadastrada pode estar “rodando”. Uma engine está associada a um servidor de aplicações e no meu caso está associada a uma instância do weblogic, pois foi essa a versão que eu havia escolhido no ato do download.

Sinceramente, apesar de já ter escutado comentários de que a distribuição enterprise (<= 6.*) era um pouco irregular e que possuia algumas peculiaridades, eu não sabia que seria tão árdua a sua instalação. O primeiro problema que eu encontrei foi na criação de um directory service, nesse ponto, através de uma tela do tipo wizard, a instalação solicita as informações do banco de dados onde serão gravadas as informações do directory service, no meu caso eu escolhi como banco de dados o Oracle (Oracle-XE). Nessa mesma tela, a configuração solicita qual o nome do Schema onde serão criadas as tabelas e eu aconselho fortemente deixar essa opção em branco, pois além dela ser opcional, o negócio só funcionou depois que eu a deixei em branco. Em uma das minhas tentativas mal sucedidas eu até havia criado o schema “na mão”, mas mesmo assim não funcionou. Primeiro problema resolvido, nome dos schemas deixados em branco e tudo ok.

O segundo problema talvez tenha sido o pior de resolver. Depois de informar todos os dados necessários para a configuração viria a tela de progresso e conclusão da criação do directory service, nesse momento só resta aguardar até que a ferramenta termine o processo de criação. Mas para o meu azar o processo nunca conseguia ser concluído, pois sempre antes de chegar em 100% o processo me mostrava a mensagem: failed! Tentei mais algumas vezes e após tantos insucessos resolvi verificar os logs e ver qual era o erro. O log nesse caso ajudou e não ajudou, pois no log a informação principal do erro é que uma exceção havia sido disparada quando o JAR de algum EJB estava tentando ser gerado pela instalação. Pesquisei, pesquisei, pesquisei e nada… resolvi então falar com um amigo de trabalho que tinha comentado que a instalação da distribuição enterprise era meio caótica. Ele pediu para eu ver o stack-trace todo da exceção. Após reparar bem o stack-trace percebi que o mesmo continha uma frase que terminava com “too many open files” e informei sobre a mensagem para esse amigo, ele então me disse que esse problema não tinha relação com o JAR do EJB, na verdade o problema estava ocorrendo, pois o SO (Ubuntu) estava tentando abrir mais de 1024 arquivos ao mesmo tempo durante a instalação e que eu precisaria mudar algumas configurações padrões do SO (file descriptor) para resolver esse problema, isso no caso seria um OS tuning. Mudanças feitas e não deu outra: o diretório foi criado com sucesso!

O próximo problema ocorria ao tentar startar a process execution engine. Sempre que eu tentava inicializar a engine a mensagem de status nunca se modificava, não informava nem que estava inicializada e nem que estava parada. Após bater bastante cabeça com isso, fui até o manual de instalação e verifiquei que um dos pré-requisitos era que a versão do Weblogic fosse a 9.2 e no meu caso eu estava usando a 10.0 ou 10.3. Na verdade esse problema ocorreu mais em razão de um vacilo meu do que qualquer outra coisa. Instalei a versão 9.2, criei outro diretório novamente e agora eu conseguia startar a engine sem problemas.

Acho que tive também alguns problemas de versão de JVM, no caso JRockit, mas isso foi tranquilo de resolver, porque o erro era bem evidente.

Instalação concluída, fui tentar finalmente fazer o deploy de um projeto e… mais problemas! Fazer o deploy eu até conseguia, mas ao tentar executar os processos um erro estranho ocorria e verificando o log percebi que alguns arquivos do projeto não estavam sendo encontrados. Para mim nada poderia explicar aquilo a não ser problemas de versão, pois como eu já citei, a versão de desenvolvimento que eu estava usando era diferente da versão da distribuição enterprise. Resolvi então tentar abrir o projeto em uma versão de ambiente de desenvolvimento igual a da distribuição enterprise com o intuito de gerar o arquivo a ser deployado em versões iguais. Ao abrir o projeto em uma versão mais antiga não tive nenhum problema, o ALBPM Studio conseguiu detectar todos os processos, screenflows, resources e etc, mas ao tentar executar o processo comecei a ter alguns problemas. Após alguns debugs, percebi que alguns métodos da API de Java (Component Catalog) simplesmente não existiam, ou, não funcionavam nessa versão mais antiga (ALBPM Studio 6.04) e que provavelmente esse poderia ser o mesmo problema que ocorria na distribuição enterprise. Isso de certa forma fazia com que a minha teoria de que não haviam mudanças consideráveis entre as versões ALBPM e OracleBPM caísse por terra.

Fiz os ajustes no projeto na versão mais antiga da ferramenta, gerei um arquivo de deploy novo e fui novamente tentar rodar o projeto na distribuição enterprise. Mesmo problema! A essa hora minha paciência estava esvaindo-se, mas eu precisava conseguir deployar o projeto de qualquer jeito. Resolvi, só por desencargo de consciência, baixar a distribuição enterprise em sua versão mais atual, no caso já como Oracle BPM Enterprise 10g3. Baixei, fiz a instalação – que por sinal foi muito mais tranquila – e tentei fazer o deploy do projeto e executá-lo. Para minha surpresa (ou não) foi de primeira! Consegui executar o projeto direitinho na versão nova da distribuição enterprise, o que me faz concluir que a versão 6.04 (ou <) é realmente problemática ou então o impacto entre versões Oracle (Oracle BPM) x BEA (Aqualogic BPM) é realmente considerável.

Dicas Finais

BPM

Se você gostou desse tópico, por favor considere deixar um comentário ou se inscreva no feed e tenha no futuro todos os tópicos entregues diretamente no seu agregador.

Comentários

Uma resposta para “Algumas observações e dicas sobre o Oracle/Aqualogic BPM Enterprise”

Deixe seu Comentário

(obrigatório)

(obrigatório)