2.2. Instalação do Pacote Implantável Genérico

Para instalar o Red Hat JBoss BPM Suite no Red Hat JBoss Web Server (EWS), você precisa usar o pacote implantável genérico do produto.
Para a instalação no EWS, o pacote implantável genérico contém o gerenciador de transação adicional e as bibliotecas de segurança que não fazem parte do Red Hat JBoss EWS.
Observe que, para instalar o pacote implantável genérico, você precisará dos seguintes arquivos ZIP:
  • jboss-bpmsuite-VERSION-deployable-generic.zip: contém os aplicativos web business-central.war, dashbuilder.war e kie-server.war.
  • jboss-bpmsuite-VERSION-engine.zip: bibliotecas de mecanismo de execução com suporte para incorporar o mecanismo no seu aplicativo e outras bibliotecas necessárias para implantação genérica.

2.2.1. Baixando o Pacote Implantável Genérico

Para baixar o pacote implantável genérico Red Hat JBoss BPM Suite no JBoss Web Server, siga as instruções a seguir:
  1. Acesse o Portal do Consumidor Red Hat e faça o log in.
  2. Clique em Downloads.
  3. Clique em Red Hat JBoss BPM Suite, a partir da lista de produtos.
  4. A partir do menu suspenso Versão, selecione a versão 6.1 (caso não esteja selecionada ainda).
  5. Na seção Downloads de Software que surgir, navegue pelo Red Hat JBoss BPM Suite 6.1 Deployable for All Supported Containers e clique em Download.
  6. Navegue também pelos arquivos Red Hat JBoss BPM Suite 6.1 Engine e clique em Download para baixar os arquivos do mecanismo JBoss BPM Suite.

2.2.2. Instalando o Pacote Implantável Genérico

Para instalar o pacote implantável genérico, você precisará configurar o seguinte depois de ter instalado a plataforma subjacente (Red Hat JBoss WS):

2.2.2.1. Configurando o Gerenciador de Transação para Red Hat JBoss Web Server 2.1 (Tomcat 7)

  1. Extraia o pacote zip implantável genérico baixado do Portal do Consumidor Red Hat para um local temporário. Esse pacote zip contém os três arquivos do aplicativo web a seguir: business-central.war, dashbuilder.war e kie-server.war em um formato expandido. Renomeie essas pastas para remover a extensão .war.
  2. Copie essas pastas diretamente sob a pasta $TOMCAT_DIR/webapps.
    Você deve obter três pastas em um formato expandido: $TOMCAT_DIR/webapps/business-central, $TOMCAT_DIR/webapps/dashbuilder e $TOMCAT_DIR/webapps/kie-server.

    Nota

    $TOMCAT_DIR refere-se ao diretório base onde seu servidor web está localizado. Substitua-o pelo próprio caminho do diretório base do seu servidor web, por exemplo: /home/john/jboss-ews-2.1/tomcat7/
  3. Extraia os conteúdos dos arquivos do mecanismo JBoss BPM Suite para um local temporário de onde você pode copiar as bibliotecas necessárias. Essa pasta contém, agora, todas as bibliotecas principais do JBoss BPM Suite sob a pasta extraída e uma pasta lib.
  4. Instale o Gerenciador de Transação.

    Atenção

    Por favor, observe que a seção a seguir descreve a instalação de um gerenciador de transação, Bitronix, que não possui suporte da Red Hat.
    Copie as seguintes bibliotecas jar do gerenciador de transação da pasta lib no diretório $TOMCAT_DIR/lib/:
    • btm-VERSION.jar
    • btm-tomcat55-lifecycle-VERSION.jar
    • jta-VERSION.jar
    • slf4j-api-VERSION.jar
    • slf4j-jdk14-VERSION.jar
    Além disso, baixe a biblioteca a seguir e copie-a na pasta $TOMCAT_DIR/lib/ também:
  5. Instale o Driver no seu Banco de Dados
    Copie o arquivo jar com o driver do banco de dados relevante no $TOMCAT_DIR/lib/.

    Nota

    Caso utilize o banco de dados H2 incorporado, o driver estará disponível em business-central/WEB-INF/lib/.
  6. Crie os arquivos de configuração do gerenciador de transação em $TOMCAT_DIR/conf/:
    • btm-config.properties
      bitronix.tm.serverId=tomcat-btm-node0
      bitronix.tm.journal.disk.logPart1Filename=${btm.root}/work/btm1.tlog
      bitronix.tm.journal.disk.logPart2Filename=${btm.root}/work/btm2.tlog
      bitronix.tm.resource.configuration=${btm.root}/conf/resources.properties
      
    • resources.properties (resource.ds1.uniqueName define, depois, o nome da fonte de dados usado na definição do recurso tomcat - anote esse valor).
      Certifique-se de mudar os valores nas definições a seguir para corresponderem ao seu ambiente.

      Exemplo 2.1. Definição da fonte de dados H2

      resource.ds1.className=bitronix.tm.resource.jdbc.lrc.LrcXADataSource
      resource.ds1.uniqueName=jdbc/jbpm
      resource.ds1.minPoolSize=10
      resource.ds1.maxPoolSize=20
      resource.ds1.driverProperties.driverClassName=org.h2.Driver
      resource.ds1.driverProperties.url=jdbc:h2:file:~/jbpm
      resource.ds1.driverProperties.user=sa
      resource.ds1.driverProperties.password=
      resource.ds1.allowLocalTransactions=true

      Exemplo 2.2. Definição da fonte de dados MySQL 5.5

      resource.ds1.className=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
      resource.ds1.uniqueName=jdbc/jbpm
      resource.ds1.minPoolSize=0
      resource.ds1.maxPoolSize=10
      resource.ds1.driverProperties.URL=jdbc:mysql://localhost:3306/sampledb
      resource.ds1.driverProperties.user=dbuser
      resource.ds1.driverProperties.password=dbpassword
      resource.ds1.allowLocalTransactions=true

      Exemplo 2.3. Definição da fonte de dados DB2 Tipo 4

      resource.ds1.className=com.ibm.db2.jcc.DB2Driver
      resource.ds1.uniqueName=jdbc/jbpm
      resource.ds1.minPoolSize=0
      resource.ds1.maxPoolSize=10
      resource.ds1.driverProperties.URL=jdbc:db2://localhost:50000/sampledb
      resource.ds1.driverProperties.user=dbuser
      resource.ds1.driverProperties.password=dbpassword
      resource.ds1.allowLocalTransactions=true

      Exemplo 2.4. Definição da fonte de dados Oracle

      resource.ds1.className=oracle.jdbc.xa.client.OracleXADataSource
      resource.ds1.uniqueName=jdbc/jbpm
      resource.ds1.minPoolSize=0
      resource.ds1.maxPoolSize=10
      resource.ds1.driverProperties.URL=jdbc:oracle:thin:@//localhost:1521/bpms 
      resource.ds1.driverProperties.user=dbuser
      resource.ds1.driverProperties.password=dbpassword
      resource.ds1.allowLocalTransactions=true

      Exemplo 2.5. Definição da fonte de dados Microsoft SQL Server

      resource.ds1.className=com.microsoft.sqlserver.jdbc.SQLServerDriver
      resource.ds1.uniqueName=jdbc/jbpm
      resource.ds1.minPoolSize=0
      resource.ds1.maxPoolSize=10
      resource.ds1.driverProperties.URL=jdbc:sqlserver://localhost:1433;databaseName=bpms;
      resource.ds1.driverProperties.user=dbuser
      resource.ds1.driverProperties.password=dbpassword
      resource.ds1.allowLocalTransactions=true
  7. Configure o ouvinte do gerenciador de transação no $TOMCAT_DIR/conf/server.xml para iniciar e encerrar Bitronix na inicialização e no desligamento do contêiner:
    Adicione o elemento a seguir como o último elemento <Listener> no elemento <Server>:
    <Listener className="bitronix.tm.integration.tomcat55.BTMLifecycleListener" />
  8. Defina a propriedade de sistema btm.root e o local onde o arquivo de configuração bitronix será colocado:
    Em $TOMCAT_DIR/bin/, crie um arquivo legível setenv.sh com o seguinte conteúdo:
    CATALINA_OPTS="-Xmx512M -XX:MaxPermSize=512m -Djava.security.auth.login.config=$CATALINA_HOME/webapps/business-central/WEB-INF/classes/login.config -Dbtm.root=$CATALINA_HOME -Dbitronix.tm.configuration=$CATALINA_HOME/conf/btm-config.properties -Dorg.jbpm.designer.perspective=RuleFlow -Djbpm.tsr.jndi.lookup=java:comp/env/TransactionSynchronizationRegistry"
    A propriedade org.jbpm.designer.perspective é definida como RuleFlow permitindo que a perspectiva padrão para o designer seja RuleFlow ao invés de Full. Conceda as permissões de execução do arquivo, se necessário.
    A propriedade java.security.auth.login.config deve ser definida para que o clone ssh do repositório git funcione.

    Importante

    Nos sistemas do Microsoft Windows, substitua o valor $CATALINA_HOME no conteúdo do arquivo pelo nome da variável do ambiente equivalente ou use o caminho absoluto e adicione os valores no arquivo setenv.bat, como apresentado aqui, no exemplo a seguir:
    defina "CATALINA_OPTS=-Xmx512M -XX:MaxPermSize=512m -Dbtm.root=C:/Tomcat -Dbitronix.tm.configuration=C:/Tomcat/conf/btm-config.properties -Dorg.jbpm.designer.perspective=RuleFlow"

2.2.2.2. Configurando o Business Central para Red Hat JBoss Web Server 2.1 (Tomcat 7)

Para configurar o Business Central, siga as instruções a seguir:
  1. Defina um Valve para que o aplicativo web do Business Central possa carregar os usuários definidos no Tomcat:
    1. Defina os usuários e as funções em $TOMCAT_DIR/conf/tomcat-users.xml. Observe que o Business Central exige que os usuários tenham as funções especificadas como admin e/ou analista (para mais informações sobre as definições de usuário e função, consulte a documentação sobre Tomcat 7).
      Segue abaixo um exemplo de como essas duas funções seriam adicionadas e como elas seriam atribuídas a um usuário nomeado bpmsadmin.

      Nota

      Certifique-se de que os nomes de usuário não entrem em conflito com as funções conhecidas. Por exemplo, você não deve criar um usuário com o nome de usuário admin.
        <role rolename="admin"/>
        <role rolename="analyst" />
        <user username="bpmsadmin" password="P@ssw0rd" roles="admin,analyst"/>
      
    2. Mova (não copie) kie-tomcat-integration-VERSION.jar de $TOMCAT_DIR/webapps/business-central/WEB-INF/lib/ para $TOMCAT_DIR/lib/.
    3. Copie jboss-jaxb-api-VERSION.jar de $TOMCAT_DIR/webapps/business-central/WEB-INF/lib/ no $TOMCAT_DIR/lib/.
    4. Em $TOMCAT_DIR/conf/server.xml, adicione a declaração Tomcat Valve no elemento <host> relevante:
      <Valve className="org.kie.integration.tomcat.JACCValve" />
  2. Caso esteja utilizando uma fonte de dados que não seja a fonte de dados padrão fornecida pelo banco de dados H2 subjacente, você precisará definir as persistências. Se estiver usando o banco de dados H2 padrão, você pode ignorar as outras etapas deste procedimento.
    Nesse procedimento, você configura uma fonte de dados com o nome JNDI jdbc/myDatasource, como definido antes em uniqueName=jdbc/jbpm no arquivo resources.properties bitronix (para a opção MySQL).
    1. Em business-central/META-INF/context.xml, substitua o nome JNDI da fonte de dados no elemento <Resource>. O atributo uniqueName refere-se à propriedade resource.ds1.uniqueName definida em resources.properties:
      <Resource name="jdbc/myDatasource" uniqueName="jdbc/jbpm" auth="Container" removeAbandoned="true" factory="bitronix.tm.resource.ResourceObjectFactory" type="javax.sql.DataSource"/>
    2. Em business-central/WEB-INF/web.xml, substitua o nome JNDI da fonte de dados no elemento <res-ref-name> pelo nome da sua fonte de dados:
      <resource-ref>
              <description>Console DS</description>
              <res-ref-name>jdbc/myDatasource</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>Container</res-auth>
      </resource-ref>
    3. Altere business-central/WEB-INF/classes/META-INF/persistence.xml.
      Nesse arquivo, altere o nome do dialeto do hibernate usado para a sua fonte de dados, se estiver usando uma fonte de dados diferente da H2. O código abaixo demonstra as informações originais da fonte de dados para persistence.xml:
      <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
      Essas informações podem ser atualizadas da seguinte maneira (como demonstrado com o banco de dados MySQL abaixo):
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>

      Nota

      O dialeto para DB2 é org.hibernate.dialect.DB2Dialect, para DB2 em AS/400 é org.hibernate.dialect.DB2400Dialect, para Oracle é org.hibernate.dialect.Oracle10gDialect e para Microsoft SQL Server é org.hibernate.dialect.SQLServerDialect
    4. Altere o arquivo business-central/WEB-INF/classes/META-INF/persistence.xml para que o mecanismo do processo JBoss BPM Suite possa usar o novo banco de dados.
      O código abaixo demonstra as informações originais da fonte de dados para persistence.xml:
      <jta-data-source>java:comp/env/jdbc/jbpm</jta-data-source>
      Altere esse valor para a fonte de dados definida antes:
      <jta-data-source>java:comp/env/jdbc/myDatasource</jta-data-source>
  3. Você pode, agora, iniciar o JBoss Web Server para fazer o login no Business Central.
    1. Execute startup.sh no diretório $TOMCAT_HOME/bin.
      ./startup.sh
    2. Faça o login com o nome de usuário e a senha definidos antes no arquivo tomcat-users.xml.

2.2.2.3. Configurando Dashbuilder para Red Hat JBoss Web Server 2.0 (Tomcat 7)

Nota

Antes de configurar o Dashbuilder no Red Hat JBoss Web Server, você deve certificar-se de que o Business Central foi instalado e iniciado corretamente, como descrito na Seção 2.2.2.2, “Configurando o Business Central para Red Hat JBoss Web Server 2.1 (Tomcat 7)”. O Dashbuilder necessita que as tabelas da fonte de dados do log do histórico estejam presentes, as quais são fornecidas pelo Business Central. Se essas tabelas não existirem na fonte de dados antes de você tentar realizar as etapas abaixo, erros de inicialização podem ocorrer.
Para configurar o Dashbuilder no Red Hat JBoss Web server, siga as instruções a seguir:
  1. Defina os usuários e as funções em $TOMCAT_DIR/conf/tomcat-users.xml. Observe que, o Dashbuilder exige que os usuários tenham as funções especificadas como admin e/ou analista. Se você já definiu esses usuários antes para o Business Central, você não precisa definí-los novamente.
  2. Habilite o logon único entre o Dashbuilder e o Business Central removendo os comentários das seguintes linhas no arquivo $TOMCAT_DIR/conf/server.xml:
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
  3. Quanto à configuração do Business Central, se você estiver usando um banco de dados que não seja o padrão e o banco de dados H2 integrado, você precisará definir as persistências.
    Nesse procedimento, você configura uma fonte de dados com o nome JNDI jdbc/dashbuilderDS, como definido em uniqueName=jdbc/jbpm no arquivo resources.properties bitronix:
    1. Em dashbuilder/META-INF/context.xml, substitua o nome JNDI da fonte de dados no elemento <Resource>. O atributo uniqueName refere-se à propriedade resource.ds1.uniqueName definida em resources.properties:
      <Resource name="jdbc/dashbuilderDS" uniqueName="jdbc/jbpm" auth="Container" removeAbandoned="true" factory="bitronix.tm.resource.ResourceObjectFactory" type="javax.sql.DataSource"/>

      Nota

      Dependendo do seu banco de dados, pode ser preciso definir algumas outras propriedades também. Por exemplo, em um ambiente Oracle, essa entrada pode parecer-se com o seguinte:
      <Resource name="jdbc/jbpm" uniqueName="jdbc/jbpm" auth="Container"  removeAbandoned="true" factory="bitronix.tm.resource.ResourceObjectFactory" type="javax.sql.DataSource" username="username" password="password"  driverClassName="oracle.jdbc.xa.client.OracleXADataSource" url="jdbc:oracle:thin:YOUR-URL:1521:YOUR-DB" maxActive="8" />
      
    2. Em dashbuilder/WEB-INF/web.xml, substitua o nome JNDI da fonte de dados no elemento <res-ref-name> pelo nome da sua fonte de dados:
      <resource-ref>
          <description>Dashboard Builder Datasource</description>
          <res-ref-name>jdbc/dashbuilderDS</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
    3. Em dashbuilder/META-INF/context.xml, defina a fábrica de transação:
       <Transaction factory="bitronix.tm.BitronixUserTransactionObjectFactory"/>
    4. Atualize o nome JNDI da fonte de dados em dashbuilder/WEB-INF/etc/hibernate.cfg.xml no elemento <session-factory>:
      <property name="connection.datasource">java:/comp/env/jdbc/dashbuilderDS</property>
  4. Reinicie o servidor Web Java para que essas alterações sejam efetivadas. Depois de reiniciado, você pode navegar pelo Dashbuilder de dentro do Business Central ou diretamente via: http://localhost:8080/dashbuilder.