33.4 Aufgaben nach der Installation für JBoss

Beim Bereitstellen der Identitätsanwendung auf der JBoss-EAP (Enterprise-Anwendungsplattform) fallen mehrere manuelle Setup-Schritte an.

  1. Installieren Sie die JBoss EAP.

  2. Installieren Sie die Identitätsanwendungen gemäß den Anweisungen in Geführte Installation der Identitätsanwendungen oder Abschnitt 33.3, Automatische Installation der Identitätsanwendungen.

  3. Erstellen Sie eine neue Datei messaging-jboss-beans.xmlmit dem folgenden Inhalt:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!--
     ========================================================================
    
     Copyright (c) 2014 NetIQ Corporation. All Rights Reserved.
    
     THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND TREATIES
     NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED COPIED, DISTRIBUTED,
     REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, EXPANDED, COLLECTED,
     COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN
     CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
     AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND CIVIL
     LIABILITY.
    
     ========================================================================
    -->
    
    <!--
        Messaging beans
        $Id: messaging-jboss-beans.xml 88672 2009-05-11 20:49:47Z anil.saldhana@jboss.com $
    -->
    <deployment xmlns="urn:jboss:bean-deployer:2.0">
    
       <!-- messaging application-policy definition -->
       <application-policy xmlns="urn:jboss:security-beans:1.0" name="messaging">
          <authentication>
             <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
                <module-option name="unauthenticatedIdentity">guest</module-option>
                <module-option name="dsJndiName">java:/IDMUADataSource</module-option>
                <module-option name="principalsQuery">SELECT PASSWD FROM JBM_USER WHERE USER_ID=?</module-option>
                <module-option name="rolesQuery">SELECT ROLE_ID, 'Roles' FROM JBM_ROLE WHERE USER_ID=?</module-option>
             </login-module>
          </authentication>
       </application-policy>
    
       <bean name="SecurityStore" class="org.jboss.jms.server.jbosssx.JBossASSecurityMetadataStore">
          <!-- default security configuration -->
          <property name="defaultSecurityConfig">
             <![CDATA[
                <security>
                   <role name="guest" read="true" write="true" create="true"/>
                </security>
             ]]>
          </property>
          <property name="suckerPassword">changeit</property>
          <property name="securityDomain">messaging</property>
          <property name="securityManagement"><inject bean="JNDIBasedSecurityManagement"/></property>
          <!-- @JMX annotation to export the management view of this bean -->
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.messaging:service=SecurityStore",exposedInterface=org.jboss.jms.server.jbosssx.JBossASSecurityMetadataStoreMBean.class)</annotation>
          <!-- Password Annotation to inject the password from the common password utility
           <annotation>@org.jboss.security.integration.password.Password(securityDomain="messaging",methodName="setSuckerPassword")</annotation>
           -->
       </bean>
    
       <bean name="MessagingDeploymentTemplateInfoFactory"
          class="org.jboss.managed.plugins.factory.DeploymentTemplateInfoFactory"/>
    
       <bean name="QueueTemplate" class="org.jboss.profileservice.management.templates.JmsDestinationTemplate">
          <property name="info"><inject bean="QueueTemplateInfo"/></property>
       </bean>
       <bean name="QueueTemplateInfo"
          class="org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo">
          <constructor factoryMethod="createTemplateInfo">
             <factory bean="DSDeploymentTemplateInfoFactory"/>
             <parameter class="java.lang.Class">org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo</parameter>
             <parameter class="java.lang.Class">org.jboss.jms.server.destination.QueueServiceMO</parameter>
             <parameter class="java.lang.String">QueueTemplate</parameter>
             <parameter class="java.lang.String">A template for JMS queue *-service.xml deployments</parameter>
          </constructor>
          <property name="destinationType">QueueTemplate</property>
       </bean>
    
       <bean name="TopicTemplate" class="org.jboss.profileservice.management.templates.JmsDestinationTemplate">
          <property name="info"><inject bean="TopicTemplateInfo"/></property>
       </bean>
       <bean name="TopicTemplateInfo"
          class="org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo">
          <constructor factoryMethod="createTemplateInfo">
             <factory bean="DSDeploymentTemplateInfoFactory"/>
             <parameter class="java.lang.Class">org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo</parameter>
             <parameter class="java.lang.Class">org.jboss.jms.server.destination.TopicServiceMO</parameter>
             <parameter class="java.lang.String">TopicTemplate</parameter>
             <parameter class="java.lang.String">A template for JMS topic *-service.xml deployments</parameter>
          </constructor>
          <property name="destinationType">TopicTemplate</property>
       </bean>
    
    </deployment>
    
  4. Ersetzen Sie die vorhandene Datei messaging-jboss-beans.xml im Ordner IDMProv/deploy/messaging durch die in Schritt 3 erstellte Datei.

  5. Suchen Sie die Persistenzdienst-Konfigurationsdatei für JBoss. Bei PostgreSQL-Datenbanken ist dies beispielsweise die Datei postgresql-persistence-service.xml im Verzeichnis novell\\jboss\docs\examples\jms.

  6. Ersetzen Sie die vorhandene Persistenzdienst-Konfigurationsdatei durch die Datei im Ordner mit den Beispieldatenbanken. Bei PostgreSQL ist dies die Datei %jboss-root%/docs/examples/jms/postgresql-persistence-service.xml.

  7. Fügen Sie eine Kopie der neuen Persistenzdienst-Konfigurationsdatei in das Verzeichnis %jboss-root%/server/IDMProv/deploy/messaging/ ein.

  8. Öffnen Sie die Persistenzdienst-Konfigurationsdatei, und führen Sie die folgenden Schritte aus:

    1. Ersetzen Sie den Text DefaultDS durch den Text IDMUADataSource.

    2. Kommentieren Sie im Attribut Clustered die folgenden Zeilen aus:

      <attribute name="Clustered">false</attribute>
      
            <!-- All the remaining properties only have to be specified if the post
      office is clustered.
                 You can safely comment them out if your post office is non clustered
      -->
      
            <!-- The JGroups group name that the post office will use -->
      
            <!--attribute
      name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>-->
      
            <!-- Max time to wait for state to arrive when the post office joins the
      cluster -->
      
            <!--attribute name="StateTimeout">30000</attribute>-->
      
            <!-- Max time to wait for a synchronous call to node members using the
      MessageDispatcher -->
      
            <!--attribute name="CastTimeout">30000</attribute>-->
      
            <!-- Set this to true if you want failover of connections to occur when a
      node is shut down -->
      
            <!--<attribute name="FailoverOnNodeLeave">false</attribute>
      
            <depends
      optional-attribute-name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</depends>
            <attribute name="ControlChannelName">jbm-control</attribute>
            <attribute name="DataChannelName">jbm-data</attribute>
            <attribute
      name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>-->
         </mbean>
      
    3. Ersetzen Sie die folgenden Zeilen durch den angegebenen Text:

      Bisheriger Text

      Neuer Text

      POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')

      POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('p_user', 'changeit', 'IDMNotificationDurableTopic')

      POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')

      POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('p_user','guest')

      POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')

      POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','p_user')

      POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')

      POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','p_user')

    4. Schließen und speichern Sie die Persistenzdienst-Konfigurationsdatei.

  9. Starten Sie JBoss.

  10. (Bedingt) Falls JBoss auf einem Windows-Server nicht gestartet werden kann, befolgen Sie die Anweisungen unter Solution 310273 „System properties cannot be set via run.bat script in EAP 5.2“.

    Wenn dieser Fehler auftritt, wird in der Datei server.log ein Ausnahmefehler für AbstractKernelController festgehalten. Weitere Informationen finden Sie in den Diskussionen im Forum der JBoss-Community für JBPAAP-10938 und JBPAAP-9581.

  11. Fügen Sie das JBoss-Administratorkonto mit den folgenden Schritten zum Skript stop-jboss.sh hinzu:

    1. Öffnen Sie das Skript stop-jboss.sh.

    2. Fügen Sie das Benutzerkonto und das Passwort des JBoss-Administrators an das Ende des Befehls shutdown.sh an. Verwenden Sie die folgende Syntax:

      shutdown.sh -s jnp://localhost:1199 -u %user_account% -p %password%
      

      Beispiel:

      shutdown.sh -s jnp://localhost:1199 -u admin -p novell
      
    3. Schließen und speichern Sie das Skript.

  12. (Optional) Überprüfen Sie die ordnungsgemäße Konfiguration. Prüfen Sie hierzu, ob das Serverprotokoll die folgenden Einträge enthält:

    INFO  [ServerPeer] JBoss Messaging 1.4.7.GA server [0] started
    
    INFO  [TopicService] Topic[/topic/IDMNotificationDurableTopic] started,
    fullSize=200000, pageSize=2000, downCacheSize=2000
    
    INFO  [RBPM] [com.novell.soa.notification.impl.jms.JMSConnectionMediator:init]
    Starting JMS notification system
    INFO  [STDOUT] INFO  [RBPM]
    [com.novell.soa.notification.impl.NotificationThread:run] Starting asynchronous notification system