Sun Java System Portal Server 7.1 配備計画ガイド

第 7 章 Portal Server のコミュニティーの配備

Portal Server のコミュニティーは、エンドユーザー自身が確立し、管理できるメンバーおよびサービスを関連付けるものです。コミュニティーの全データ (コミュニティーメンバーシップと設定データ、およびポートレットのアプリケーションデータ) は、管理者が選択したデータベースに保存されるよう設計されています。このデータベースには、jdbc ドライバを使用して接続できます。Portal 7.1 は、デフォルトで Derby データベースに上記のデータを保存します。Derby は Portal 製品とともに出荷されます。そのため、このデータベースをチューニングして最適なパフォーマンスとスケーラビリティーを得ることが重要になります。

この章では、次に Portal Server コミュニティーの一般的な配備事例を示します。

デフォルトデータベースのインストールへのコミュニティーの配備

デフォルトでは、Portal Server の各インストールは Derby データベースにインスタンスを作成します。このインスタンスは、Derby Client JDBC を使用して任意のクライアントからアクセス可能な Network Server として構成されます。

複数の Portal インスタンスが異なるホストに配備されているが同じコミュニティーに対してサービスを提供している場合、共通の Derby サーバーインスタンスを使用する必要があります。単独のデータベースインスタンスを使用する複数ホスト上に Portal コミュニティーを配備する方法については、「単独のデータベースインタフェースを使用する複数ホストへのコミュニティーの配備」を参照してください。

デフォルトでは、Derby Network Server はポート 1527 で待機するよう設定されています。Derby が実行されているかどうかは、次の UNIX コマンドでテストします。

netstat -an | grep 1527

ポートで何も待機していなければ、Derby データベースは実行されていません。次の行を使用すると起動できます。


###start_derby.sh####
PATH=/usr/jdk/jdk1.5.0_09/bin:${PATH};export PATH
derby_classpath=/opt/SUNWjavadb/lib/derby.jar:/opt/SUNWjavadb/lib/derbynet.jar;
exportderby_classpath
derby_home=/var/opt/SUNWportal/derby;export derby_home
java -Dderby.system.home=${derby_home} -cp ${derby_classpath}
org.apache.derby.drda.NetworkServerControl start &

単独のデータベースインタフェースを使用する複数ホストへのコミュニティーの配備

複数の Portal インスタンスが異なるホストに配備されると、インスタンスが共通のデータベースインスタンスを使用するよう設定しないかぎりは、各インスタンスは異なるコミュニティーデータを持ちます。このセクションでは、単独の共通 Derby ネットワークサーバーインスタンスを使用するよう、複数の Portal Server インスタンスを設定する方法について解説します。

単独の共通 Derby インスタンスに複数の Portal Server インスタンスを配備するには、次の 2 つの方法があります。

配備の要件

単独の Derby インスタンスに複数の Portal Server コミュニティーを配備するためのプラットフォーム要件には、次のようなものがあります。

オペレーティングシステム

詳細については、リリースノートを参照してください。

これらの要件は、ほかのポータルインスタンスの設定の要件と共通しています。専用の Derby インスタンスを設定するためには、通常は Java Enterprise System 5 に同梱されている java sdk を使用する必要があります。必要となるバージョンは 1.5.0_09 以降です。

Procedure共通の Derby Network Server インスタンスを設定する (Solaris)

  1. Java Enterprise System 5 配布から JDK をインストールします。この手順は、必要な Java バージョンがマシン上にない場合に必要です。

    1. cd /net/machine1.pstest.com/jes5/Solaris_sparc/Product/shared_components/Packages

    2. pkgadd -d . SUNWj5rt SUNWj5rtx SUNWj5cfg SUNWj5dev SUNWj5dmo SUNWj5dmx SUNWj5dvx SUNWj5man

  2. 専用ホストに Derby データベースパッケージをインストールします。

    1. cd /net/machine1.pstest.com/jes5/Solaris_sparc/Product/shared_components/Packages

    2. pkgadd -d . SUNWjavadb-common SUNWjavadb-core SUNWjavadb-client SUNWjavadb-demo SUNWjavadb-docs SUNWjavadb-javadoc

  3. Portal Server のインストールホストから専用の Derby ネットワークサーバーインスタンスホストに Derby データファイルを転送します。データファイルは /var/opt/SUNWportal/derby にあります。

    Derby データファイルは次のとおりです。

    • derby.properties

    • および次のディレクトリです。

      • communitymc_portal1

      • surveydb_portal1

      • filesharingdb_portal1

      • wikidb_portal1

    1. Portal Server インストールホストで tar コマンドを使用し、Derby データファイルをアーカイブします。

      cd /var/opt/SUNWportal/derby

      tar -cvf derby-system.tar *

    2. 専用の Derby ネットワークインスタンスホスト上に Derby システムのホームディレクトリを作成します。

      mkdir -p /var/opt/SUNWportal/derby

    3. Portal Server のインストールホストから専用の Derby ネットワークインスタンスホスト上のシステムホームディレクトリに derby-system.tar ファイルを転送します。

      専用の Derby ネットワークインスタンスホストの /var/opt/SUNWportal/derby ディレクトリで、次のコマンドを実行します。

      ftp> portal install

      ftp> cd /var/opt/SUNWportal/derby

      ftp> get derby-system.tar

      ftp> quit

    4. tar コマンドを使用し、derby-system.tar ファイルを抽出します。

      tar -xvf derby-system.tar

  4. Derby プロパティーファイルを修正します。

    1. derby.drda.host プロパティーを、共通の Derby ネットワークサーバーインスタンスが実行されるインタフェースに割り当てられた完全修飾ホスト名に変更します。

    2. Derby のログファイルを削除します。

      rm derby.log

    3. 空のログファイルを作成します。

      touch derby.log

    4. (オプション) デフォルト以外のポートでサーバーを実行するには、derby.drda.port プロパティーを変更します。Derby のデフォルトポートは、ポート1527 です。ポートプロパティーの変更はオプションです。

  5. Derby ネットワークサーバーインスタンスを開始します。次のサンプルスクリプトを使用します。


    ###start_derby.sh####
    PATH=/usr/jdk/jdk1.5.0_09/bin:${PATH};export PATH
    derby_classpath=/opt/SUNWjavadb/lib/derby.jar:/opt/SUNWjavadb/lib/derbynet.jar;
    exportderby_classpath
    derby_home=/var/opt/SUNWportal/derby;export derby_home
    java -Dderby.system.home=${derby_home} -cp ${derby_classpath}
    org.apache.derby.drda.NetworkServerControl start &
  6. (オプション) derby.properties の Derby チューニングプロパティーを修正するか、Derby ネットワークサーバーを起動するために使用する Java コマンドに JVM チューニングパラメータを追加します。詳細については、Apache Derby のマニュアルおよび java.sun.com を参照してください。

Procedureすべてのポータルサーバーインスタンスを共通の Derby ネットワークサーバーインスタンスにポイントさせる

Derby ネットワークサーバーインスタンスの Portal クライアントは、Web コンテナに設定された JDBC データソースを通じ、Derby ネットワークサーバーインスタンスにアクセスします。デフォルト以外の Derby ネットワークサーバーインスタンスを使用するよう Portal インスタンスを設定すると、別のホストにポイントするようこれらのデータソースを再設定する必要があります。その方法は、Web コンテナの種類によって異なります。たとえば、Sun Java Webserver 7.0 などを使用します。

共通の Derby ネットワークサーバーインスタンスを使用する 各 Portal Server インスタンスに対し、次の手順を実行します。

  1. Sun Java System Web Server にアクセスします。

    http://sesta.iplanet.com:8800 などです。

  2. 「共通操作」タブで、「構成タスク」から「Java 設定を編集」をクリックします。

  3. 「リソース」タブをクリックします。

    Web コンテナの JDBC リソースのリストが表示されます。

  4. 次のそれぞれのリソースに対し、次の手順を実行します。

    • jdbc/communitymc

    • jdbc/FileSharingDB

    • jdbc/SurveyDB

    • jdbc/WikiDB

    1. リソースをクリックします。

      新規ウィンドウが開きます。

    2. ウィンドウ上部の「プロパティー」リンクをクリックし、リソースのプロパティーにスクロールします。

    3. serverName プロパティーを、共通の Derby インスタンスのホスト名に変更します。各 Derby サーバーインスタンスの serverName プロパティーを変更します。

    4. 「Ok」をクリックします。

  5. 次の手順を実行し、設定を配備します。

    1. 「設定」タブを選択します。

    2. 「設定」チェックボックスを選択し、設定を特定します。

    3. 設定の操作リストから「構成を配備」を選択します。

  6. Web コンテナを再起動します。

高可用性データベースへのコミュニティーの配備

エンタープライズ級のコミュニティーに高い可用性を与えるには、Portal Server とともにインストールされる Derby データベースを、高可用性を提供する jdbc 接続可能データベースに置換する必要があります。

ProcedureDerby データベースを置換する

  1. データベースを設定します。

    1. RDBMS をインストールするか、システムにすでにインストールされている RDBMS を特定します。

    2. コラボレーションで使用するデータベースインスタンス (または Oracle の場合は表領域) を作成します。

    3. データベースユーザーアカウントを作成します。

    4. ユーザーアカウントに対して適切な権限を確立します。

  2. 新規データベースの Web コンテナを設定します。

    1. JDBC ドライバを検出します。

    2. JDBC ドライバを Web コンテナの JVM クラスパスに追加します。

    3. 次の JVM オプションを追加します。

      -Djdbc.drivers=JDBC_DRIVER_CLASS

  3. 「コミュニティーメンバーシップおよび設定」を設定します。

    1. 次の communitymc データベース設定ファイルを設定します。

      PORTAL-DATA-DIR/portals/PORTAL-ID/config/portal.dbadmin

      パラメータ

      db.driver= vendor-specific-classpath.jdbc.ClientDriver

      db.driver.classpath=/opt/jarfile-directory-pathclient.jar

      community.db.user=database-user-account (手順 1c で作成)

      community.db.password= database-user-account-password (手順 1c で作成)

      community.db.url=jdbc:xxx://xxxxx.pstest.com:port/ database-instance-created-in-step-1b

    2. 次の場所にある、Derby 固有のプロパティーを削除します。

      PORTAL-DATA-DIR/portals/PORTAL-ID/config/communitymc.properties

      次に例を示します。javax.jdo.option.Mapping=derby

    3. 次のコマンドを使用し、データベースにスキーマをロードします。

      cd /var/opt/SUNWportal/portals/portal1/config

      /usr/sfw/bin/ant -f config.xml -D"portal.id=portal1" configure

    4. Web コンテナ設定の JDBC リソースを、新規データベースにポイントするよう編集します。

  4. ポートレットアプリケーションを設定し、インストールします。

    1. ポートレットアプリケーションを検出します。

      PORTAL-DATA-DIR/portals/PORTAL-ID/portletapps

    2. ポートレットアプリケーションで新規データベースを使用するよう設定します。次に例を示します。

      cd /var/opt/SUNWportal/portals/portal1/portletapps/surveys

      tokens_xxx.properties ファイルを編集します。

    3. tokens_xxx.properties ファイルの値を使用し、各アプリケーションに対して JDBC リソースを作成します。

      • Resource JNDI Name: jdbc/DB-JNDI-NAME

      • Resource Type: javax.sql.DataSource

      • Datasource Classname: DB-DATASOURCE

      • User: DB-USER

      • Password: DB-PASSWORD

      • URL: DB-URL

    4. データストアとして Derby データベースを使用する既存のポートレットを配備解除します。

    5. 新たに設定されたポートレットアプリケーションを配備します。

Procedure高可用性データベースを配備する

始める前に

Oracle 10g Release 2 データベースをインストールします。

  1. Oracle データベースを準備します。

    1. portal と名付けられたデータベースインスタンスを作成します。たとえば、SID=portal などです。


      注 –

      Solaris 10 の ORA-27102 メモリー不足エラーを回避するために、次のコマンドを実行します。projadd -U oracle -K "project.max-shm-memory=(priv,4294967295B,deny)" user.oracle


    2. SYSTEM として Oracle Enterprise Manager にログインします。通常のパスは http://hostname:1158/em です。(em は Enterprise Manager の略です)。

      またはコマンド行 sqlplus /nolog CONNECT sys/password AS SYSDBA です。

    3. 表領域 communitymc_portal-ID を作成します。たとえば、communitymc_portal1 などです。

      例:


      SQL> CREATE TABLESPACE COMMUNITYMC_PORTAL1 LOGGING DATAFILE '
      /app/oracle/oradata/portal/communitymc_01.dbf' SIZE 400M REUSE AUTOEXTEND ON NEXT  
      1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
    4. 次の値を使用し、ユーザーアカウントを作成します。

      Username: portal

      Password: portal

      Default Tablespace: communitymc_Portal—ID

      Assign roles: CONNECT and RESOURCE

      例:


      SQL> create user portal identified by portal;
      
      SQL>alter user portal default tablespace  COMMUNITYMC_PORTAL1;
      
      SQL> grant connect,resource to portal;
  2. 新規データベースの Web コンテナを準備します。

    1. 次のいずれかの方法を使用し、Oracle JDBC ドライバを探します。ファイルは ojdbc14.jar です。

      • Oracle がインストールされているマシン上の ojdbc14.jar ファイルを使用する。通常は、$ORACLE_HOME/jdbc/lib/ojdbc14.jar にあります。

      • Oracle の Web サイトから ojdbc14.jar ファイルをダウンロードする。使用する Oracle RDBMS と互換性のあるバージョンをダウンロードしてください。

    2. JVM クラスパスに JDBC ドライバを追加します。

      JVM クラスパスに JDBC ドライバ (ojdbc14.jar) を追加します。

      例:

      class-path-suffix...//opt/SUNWjavadb/lib/derbyclient.jar: /oracle/ojdbc14.jar...

    3. 次の JVM オプションを追加します。

      -Djdbc.drivers=oracle.jdbc.OracleDriver

      たとえば、Web Server server.xml で

      <jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>

      <jvm-options>-Djdbc.drivers=oracle.jdbc.OracleDriver</jvm-options>


      注 –

      Derby データベースの jdbc リソースを使用するすべてのポートレットやアプリケーションを、Oracle リソースを使用するよう変換すると、Derby のクラスファイルおよびオプションを削除できます。


  3. 「コミュニティーメンバーシップおよび設定」を設定します。

    1. communitymc データベース設定ファイルを編集します。

      vi Portal-data-dir/portals/ Portal-ID/config/portal.dbadmin

      db.driver=oracle.jdbc.OracleDriver

      db.driver.classpath= JDBC-Driver-Path/ojdbc14.jar url=jdbc:oracle:thin:@Oracle-Host :Oracle-Port:portal

      たとえば、portal.dbadmin


      db.driver=oracle.jdbc.OracleDriver
      db.driver.classpath=/oracle/ojdbc14.jar
      community.db.user=portal
      community.db.password=portal
      community.db.url=jdbc:oracle:thin:@machine1.pstest.com:1521:portal
      portal.id=portal1
    2. communitymc 設定ファイルから、次のプロパティーを削除またはコメントアウトします。

      vi Portal-Data-Dir /portals/Portal-ID/config/communitymc.properties

      #javax.jdo.option.Mapping=derby

    3. 次のコマンドを使用し、コミュニティースキーマを Oracle にロードします。

      cd /var/opt/SUNWportal/portals/portal1/config

      /usr/sfw/bin/ant -f config.xml -D"portal.id=portal1" configure

    4. 終了後、次のように入力して Oracle にテーブルが作成されていることを確認します。


      SQL> connect portal/portal
      Connected.
      SQL> select * from cat;
       
      TABLE_NAME                     TABLE_TYPE
      ------------------------------ -----------
      BIN$I3usV+V+I7HgRAgAIMbswQ==$0 TABLE
      JPOX_TABLES                    TABLE
      COMMUNITY                      TABLE
      COMMUNITY_USER                 TABLE
      COMMUNITY_DP                   TABLE
    5. communitymc JDBC リソースを、Oracle にポイントするよう編集します。

      1. Web コンテナ管理コンソールにログインします。

      2. jdbc/communitymc と名付けられた JDBC リソースを検出します。

      3. データソースクラス名を oracle.jdbc.pool.OracleDataSource に設定します。

      4. 次のプロパティーを設定します。

        • user: portal

        • password: portal

        • url: jdbc:oracle:thin:@Oracle-Host :Oracle-Port:portal


        <jdbc-resource>
            <jndi-name>jdbc/communitymc</jndi-name>
            <datasource-class>oracle.jdbc.pool.OracleDataSource</datasource-class>
            <idle-timeout>30</idle-timeout>
            <wait-timeout>10</wait-timeout>
            <property>
              <name>Password</name>
              <value>portal</value>
            </property>
            <property>
              <name>portNumber</name>
              <value>1521</value>
            </property>
            <property>
              <name>databaseName</name>
              <value>communitymc_portal1</value>
            </property>
            <property>
              <name>User</name>
              <value>portal</value>
            </property>
            <property>
              <name>serverName</name>
              <value>machine1.pstest.com</value>
              <description/>
            </property>
            <property>
              <name>url</name>
              <value>jdbc:oracle:thin:@machine1.pstest.com:1521:portal</value>
              <description/>
            </property>
          </jdbc-resource>

      注 –

      いくつかの Web コンテナでは、JDBCリソースの代わりに JDBC 接続プールを編集しなければならないことがあります。


  4. Fileshare、Surveys、および Wiki Portlet Application を設定し、インストールします。

    1. ポートレットアプリケーションを検出します。

      Portal-Data-Dir /portals/Portal-ID/portletapps/ Portlet_Application

    2. tokens_ora.properties を設定します。

      /portals/portal1/portletapps/ に格納されている各アプリケーションは、 tokens.properties ファイルに加え、独自の tokens_ora.properties ファイルを持ちます。実際のデータベース接続を反映するよう、必要となる Oracle データベースアクセスパラメータを tokens_ora.properties ファイルで修正します。

    3. tokens_ora.properties ファイルの値を使用し、各アプリケーションに対して JDBC リソースを作成します。

      • Resource JNDI Name: jdbc/OracleFilesharingDBこの値は、tokens_ora.properties ファイルの DB-JNDI-NAME 値と一致する必要があります。

      • Resource Type: javax.sql.DataSource

      • Datasource Classname: oracle.jdbc.pool.OracleDataSourceこの値は、tokens_ora.properties ファイルの DB-DATASOURCE 値と一致する必要があります。

      • User: portalfsこの値は、tokens_ora.properties ファイルの DB-USER 値と一致する必要があります。

      • Password: portalfsこの値は、tokens_ora.properties ファイルの DB_PASSWORD 値と一致する必要があります。

      • URL: jdbc:oracle:thin:@oracle.acme.com:1521:portalこの値は、tokens_ora.properties ファイルの DB-URL 値と一致する必要があります。


      注 –

      いくつかの Web コンテナでは、JDBC リソースを設定する前に JDBC 接続プールを定義する必要があります。


    4. データソースとして Derby データベースを使用する既存のポートレットを配備解除します。

      /opt/SUNWportal/bin/psadmin undeploy-portlet -u uid=amadmin,ou=people,dc=acme,dc=com -f Password-File -p Portal ID -g portlet

    5. 新たに設定されたポートレットを配備します。

      cd Portal-Data-Dir/portals/Portal-ID/portletapps/ Portlet_Application

      /usr/sfw/bin/ant -D"portal.id=portal1" -Dapp.version=ora