33.4 JBossのインストール後の手順

識別情報アプリケーションをJBoss Enterprise Application Platform (EAP)上に展開するには、いくつかの設定手順を手動で実行する必要があります。

  1. JBoss EAPをインストールします。

  2. ガイドによる識別情報アプリケーションインストールプロセスまたはセクション 33.3, 識別情報アプリケーションのサイレントインストールの説明に従って識別情報アプリケーションをインストールします。

  3. 次に示す内容で新しいmessaging-jboss-beans.xmlファイルを作成します。

    <?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. IDMProv/deploy/messagingフォルダにある既存のmessaging-jboss-beans.xmlファイルをステップ 3で作成したファイルで置き換えます。

  5. JBossの永続性サービス設定ファイルを見つけます。たとえば、PostgreSQLデータベースの場合、このファイルはnovell\\jboss\docs\examples\jmsディレクトリにあるpostgresql-persistence-service.xmlです。

  6. 既存の永続性サービス設定ファイルをデータベースのexamplesフォルダにあるファイルで置き換えます。たとえば、PostgreSQLの場合、%jboss-root%/docs/examples/jms/postgresql-persistence-service.xmlファイルで置き換えます。

  7. 新しい永続性サービス設定ファイルを%jboss-root%/server/IDMProv/deploy/messaging/ディレクトリにコピーします。

  8. 永続性サービス設定ファイルを開いて、次の手順を実行します。

    1. テキストDefaultDSをテキストIDMUADataSourceで置き換えます。

    2. Clustered属性内の次の行をコメントアウトします。

      <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. 次の行を指定したテキストで置き換えます。

      置換前

      置換後

      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. 永続性サービス設定ファイルを閉じて保存します。

  9. JBossを起動します。

  10. (状況によって実行) WindowsサーバでJBossが起動に失敗する場合は、「Solution 310273 “System properties cannot be set via run.bat script in EAP 5.2”」で示されている解決策を実行します。

    この問題が発生した場合、AbstractKernelControllerの例外エラーがserver.logファイルに記録されます。詳細については、JBossコミュニティフォーラムでJBPAAP-10938JBPAAP-9581の説明を参照してください。

  11. 次の手順を実行して、JBoss管理者アカウントをstop-jboss.shスクリプトに追加します。

    1. stop-jboss.shスクリプトを開きます。

    2. shutdown.shコマンドの末尾にJBoss管理者のユーザアカウントとパスワードを追加します。使用する構文は次のとおりです。

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

      次に例を示します。

      shutdown.sh -s jnp://localhost:1199 -u admin -p novell
      
    3. スクリプトを閉じて保存します。

  12. (オプション)正しく設定されていることを検証するために、サーバログに次の情報が記録されていることを確認します。

    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