ヘッダーをスキップ
Oracle® Fusion Middleware Forms Servicesデプロイメント・ガイド
11g リリース1(11.1.1)
B61388-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 HTTPリスナーとOracle WebLogic ServerでのOracle Forms Servicesの使用方法

Oracle WebLogic Serverは、エンタープライズ対応のスケーラブルなJava EEアプリケーション・サーバーです。Java EEテクノロジの全機能を実装しており、高度な管理サービス、クラスタリング・サービス、Webサービスなどの数多くの追加の機能を備えています。Oracle WebLogic Serverは、Oracle Fusion Middlewareプラットフォームの中核となる製品であり、スケーラブルで可用性が高く、安全なアプリケーションを構築するための安定したフレームワークを提供します。

この章には、次の項が含まれています。

5.1 Oracle WebLogic管理対象サーバーについて

管理対象サーバーは、ビジネス・アプリケーション、アプリケーション・コンポーネント、Webサービスおよび関連リソースをホストします。パフォーマンスを最適化するために、管理対象サーバーは、ドメインの構成ドキュメントの読取り専用コピーを保持します。管理対象サーバーが起動すると、ドメインの管理サーバーに接続して、その構成ドキュメントと管理サーバーに保持されているドキュメントが同期化されます。Oracle Fusion Middlewareシステム・コンポーネント(SOA、WebCenter Portal、Identity Managementコンポーネントなど)とカスタマによって配布されたアプリケーションは、ドメイン内の管理対象サーバーに配布されます。構成中に、Oracle Fusion Middlewareシステム・コンポーネント(wls_soa、wls_portal、wls_formsなど)のホスト用にいくつかの管理対象サーバーが作成されます。

図5-1に、Oracle WebLogic管理対象サーバーの簡単な使用例を示します。この図の左側で、Formsサーブレットは開始HTMLファイルをレンダリングし、Formsリスナー・サーブレットに関する情報をクライアントに提供します。次に、HTTPリクエストがOracle HTTP Serverリスナーで受信され、リスナーはこれをOracle WebLogic管理対象サーバー内で動作しているFormsリスナー・サーブレット(図の右側)に渡します。Formsリスナー・サーブレットはランタイム・プロセスを確立し、クライアント・ブラウザとランタイム・プロセス間で継続的な通信を維持します。多くのユーザーがOracle Formsセッションをリクエストした場合、そのリクエストはOracle HTTP Serverリスナーで受信されます。HTTPリスナーは再びそのリクエストをFormsリスナー・サーブレットに渡し、サーブレットはさらにランタイム・プロセスを確立します。Formsリスナー・サーブレットは、多数のFormsランタイム・セッションを同時に処理できます。同時ユーザー数を制限する必要はありますが、このアーキテクチャでは高いパフォーマンスを得るためのチューニングや構成を行うことができます(次の項を参照)。

図5-1 Oracle WebLogic管理対象サーバーとForms Services

HTTPリクエストのフロー
「図5-1 Oracle WebLogic管理対象サーバーとForms Services」の説明

5.2 Forms管理対象サーバーでの作業

デフォルト(特別な設定をしていないインストール)では、Forms ServicesのJava EEアプリケーション(formsapp.ear)はForms管理対象サーバー(WLS_FORMS)に配布されます。Oracle WebLogic管理コンソールまたはOracle Enterprise Manager Fusion Middleware Controlを使用して、WLS_FORMSformsapp.earを管理できます。詳細は次のトピックを参照してください。

5.2.1 Forms Java EEアプリケーションのカスタム・デプロイメント

カスタム管理対象サーバーを作成し、そこにFormsアプリケーションをデプロイするには、次の手順を実行します。

5.2.1.1 前提条件ステップ

  1. 次の環境変数を指定のパスに設定します。

    • MW_HOME: この変数をOracle Middlewareホームの場所を指すように設定します(詳細は、Oracle Fusion Middleware Oracle Portal, Forms, Reports and Discovererのインストレーション・ガイドのインストール場所の指定画面に関する項を参照してください)。

    • ORACLE_HOME: この変数にOracleホーム・ディレクトリの絶対パスを設定します。詳細は、Oracle Fusion Middleware Oracle Portal, Forms, Reports and Discovererのインストレーション・ガイドのインストール場所の指定画面に関する項を参照してください。

    • DOMAIN_HOME: この変数に、Oracle Fusion Middleware Oracle Portal, Forms, Reports and Discovererのインストレーション・ガイドのドメインの選択画面に関する項で指定したドメインのOracle WebLogic Serverで作成されたフォルダの場所を設定します。

  2. システム・パスにJDKパスを指定します。

    Java実行可能ファイルへのパスを入力します。たとえば、UNIXオペレーティング・システムでは、システム・パスに$MW_HOME/jdk<version>/binを入力します(Windowsオペレーティング・システムの場合、パスは%MW_HOME%\jdk<version>\binです)。

  3. デフォルトの管理対象サーバー(WLS_FORMS)と同じクラスタの一部として管理対象サーバー(WLS_FORMS_CUSTOM_APPなど)を作成します。

    管理対象サーバーの追加の詳細は、『Oracle Fusion Middleware管理者ガイド』の管理対象サーバーのドメインへの追加に関する説明を参照してください。

  4. WebLogic管理コンソールを使用して管理対象サーバーの次のプロパティを指定します。

    • クラスパス: 値として<ORACLE_HOME>/opmn/lib/optic.jar(Windowsオペレーティング・システムの場合は<ORACLE_HOME>\opmn\lib\optic.jar)を指定します。<ORACLE_HOME>を絶対パスに置き換えます。

    • 引数: 次の値を指定します。

      -Dclassic.oracle.home=<ORACLE_HOME> -Doracle.instance=<ORACLE_INSTANCE> -
      Doracle.instance.name=<ORACLE_INSTANCE_NAME> -Doracle.forms.weblogic=1
      

      すべてのエントリは一行(改行なし)である必要があります。<ORACLE_HOME><ORACLE_INSTANCE>を絶対パスに置き換えます。<ORACLE_INSTANCE_NAME>をOracleインスタンスの名前(デフォルト名はasinst_1)に置き換えます。

    詳細は、Oracle WebLogic管理コンソール・ヘルプサーバーの起動に関する説明を参照してください。

  5. 次の手順を実行して、ORACLE_HOMEにフォルダ構造を作成します。

    1. UNIXオペレーティング・システムで、カスタム・アプリケーション用の新しいフォルダを作成します。

      たとえば、次のようにcustomappを作成します。

      mkdir -p $ORACLE_HOME/customapp

      次のように、customappにJavaフォルダを作成し、そのフォルダのシンボリック・リンクを作成します。

      例:

      cd $ORACLE_HOME/customapp

      ln -s $ORACLE_HOME/forms/java $ORACLE_HOME/customapp/java

      アプリケーション・ファイルを新しいフォルダにコピーします。

      例:

      cp -rpf $ORACLE_HOME/forms/j2ee $ORACLE_HOME/customapp/

    2. Windowsオペレーティング・システムで、次のコマンドを使用し、ORACLE_HOMEディレクトリの下にフォルダ構造を作成します。

      mkdir %ORACLE_HOME%\customapp\java

      mkdir %ORACLE_HOME%\customapp\j2ee

      cd %ORACLE_HOME%\customapp

      xcopy /S /E %ORACLE_HOME%\forms\java %ORACLE_HOME%\customapp\java

      xcopy /S /E %ORACLE_HOME%\forms\j2ee %ORACLE_HOME%\customapp\j2ee

5.2.1.2 デフォルトのサーブレット別名とコンテキスト・ルートのオーバーライド

  1. EARファイルを展開します。

    たとえば、UNIXオペレーティング・システムでは、次のようにします。

    cd $ORACLE_HOME/customapp/j2ee

    jar xvf formsapp.ear

    Windowsオペレーティング・システムの場合:

    cd %ORACLE_HOME%\customapp\j2ee

    jar xvf formsapp.ear

  2. WARファイルを展開します。

    たとえば、UNIXオペレーティング・システムでは、次のようにします。

    mkdir -p $ORACLE_HOME/customapp/j2ee/warfile

    cd $ORACLE_HOME/customapp/j2ee/warfile

    jar xvf $ORACLE_HOME/customapp/j2ee/formsweb.war

    Windowsオペレーティング・システムの場合:

    mkdir %ORACLE_HOME%\customapp\j2ee\warfile

    cd %ORACLE_HOME%\customapp\j2ee\warfile

    jar xvf %ORACLE_HOME%\customapp\j2ee\formsweb.war

  3. Web-INFフォルダにあるweb.xmlデプロイメント・ディスクリプタでサーブレット別名をオーバーライドします。

    たとえば、UNIXオペレーティング・システムでは、次のようにします。

    cd $ORACLE_HOME/customapp/j2ee/warfile/WEB-INF

    Windowsオペレーティング・システムの場合:

    cd %ORACLE_HOME%\customapp\j2ee\warfile\WEB-INF

    エディタでweb.xmlを編集し、frmservletをcustomservletに置き換えます(<Servlet-Name>、<url-pattern>、<welcome-file>タグの下のエントリ)。

  4. WARファイルを再びパッケージします。

    たとえば、UNIXオペレーティング・システムでは、次のようにします。

    cd $ORACLE_HOME/customapp/j2ee/warfile

    jar cvfM formsweb.war ./*

    mv formsweb.war $ORACLE_HOME/customapp/j2ee/

    Windowsオペレーティング・システムの場合:

    cd %ORACLE_HOME%\customapp\j2ee\warfile

    jar cvfM formsweb.war .\*

    copy formsweb.war %ORACLE_HOME%\customapp\j2ee\

    del formsweb.war

  5. META-INFフォルダにあるapplication.xmlデプロイメント・ディスクリプタで、アプリケーションのコンテキスト・ルートをオーバーライドします。

    たとえば、UNIXオペレーティング・システムでは、次のようにします。

    cd $ORACLE_HOME/customapp/j2ee/META-INF

    Windowsオペレーティング・システムの場合:

    cd %ORACLE_HOME%\customapp\j2ee\META-INF

    application.xmlを編集して、context-rootをcustomappに変更します。

  6. formsweb.cfgでcodebaseおよびserverURLエントリを変更します。

    たとえば、UNIXオペレーティング・システムでは、次のようにします。

    cd $ORACLE_HOME/customapp/j2ee/config

    Windowsオペレーティング・システムの場合:

    cd %ORACLE_HOME%\customapp\j2ee\config

    formsweb.cfgを編集し、serverURLのcontext-rootとcodebaseパラメータを変更します。

    たとえば、serverURL=/forms/lservletserverURL=/customapp/lservletに変更します。codebaseを/forms/javaからcustomapp/javaに変更します。

  7. EARファイルを再びパッケージします。

    たとえば、UNIXオペレーティング・システムでは、次のようにします。

    cd $ORACLE_HOME/customapp/j2ee

    jar cvfM customapp.ear META-INF/MANIFEST.MF APP-INF/* config/* formsweb.war META-INF/*

    Windowsオペレーティング・システムの場合:

    cd %ORACLE_HOME%\customapp\j2ee

    jar cvfM customapp.ear META-INF\MANIFEST.MF APP-INF\* config\* formsweb.war META-INF\*

  8. 展開したEARファイルの内容を消去します。UNIXオペレーティング・システムでは、次のようにします。

    rm -rf META-INF APP-INF config META-INF formsweb.war

    Windowsオペレーティング・システムの場合:

    RMDIR META-INF APP-INF config META-INF /s /q

    DEL formsweb.war

5.2.1.3 デプロイメント・プランの作成

  1. customappに11.1.1というフォルダを作成します。

    たとえば、UNIXオペレーティング・システムでは、次のようにします。

    mkdir -p $DOMAIN_HOME/deploymentplans/customapp/11.1.1

    Windowsオペレーティング・システムでは、次のようにします。

    mkdir %DOMAIN_HOME%\deploymentplans\customapp\11.1.1

  2. 次のエントリをファイル$DOMAIN_HOME/deploymentplans/customapp/11.1.1/plan.xml(Windowsオペレーティング・システムの場合は%DOMAIN_HOME%\deploymentplans\customapp\11.1.1\plan.xml)にコピーします。例5-1は、アプリケーション名がcustomappで、管理対象サーバー名がWLS_FORMS_CUSTOM_APPである場合のデプロイメント・プランについて説明しています。次の変更を行ってください。

    • カスタム・アプリケーション名、EARファイルの場所および管理対象サーバーをご使用の環境の名前と場所に置き換えます。

    • <DOMAIN_HOME><ORACLE_HOME>を絶対パスに置き換えます。

      例5-1 デプロイメント・プランの例

      <?xml version='1.0' encoding='UTF-8'?>
      <deployment-plan xmlns="http://xmlns.oracle.com/weblogic/deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.oracle.com/weblogic/deployment-plan
       http://xmlns.oracle.com/weblogic/deployment-plan/1.0/deployment-plan.xsd"
       global-variables="false">
        <application-name>customapp</application-name>
        <variable-definition>
          <variable>
            <name>vd-<ORACLE_HOME>/customapp</name>
            <value><ORACLE_HOME>/customapp</value>
          </variable>
          <variable>
            <name>vd-<DOMAIN_HOME>/config/fmwconfig/servers/WLS_FORMS_CUSTOM_APP/applications/customapp_11.1.1/config/customapp</name>
            <value><DOMAIN_HOME>/config/fmwconfig/servers/WLS_FORMS_CUSTOM_APP/applications/customapp_11.1.1/config/customapp</value>
          </variable>
        </variable-definition>
        <module-override>
          <module-name>customapp.ear</module-name>
          <module-type>ear</module-type>
          <module-descriptor external="false">
            <root-element>weblogic-application</root-element>
            <uri>META-INF/weblogic-application.xml</uri>
          </module-descriptor>
          <module-descriptor external="false">
            <root-element>application</root-element>
            <uri>META-INF/application.xml</uri>
          </module-descriptor>
          <module-descriptor external="true">
            <root-element>wldf-resource</root-element>
            <uri>META-INF/weblogic-diagnostics.xml</uri>
          </module-descriptor>
        </module-override>
        <module-override>
          <module-name>formsweb.war</module-name>
          <module-type>war</module-type>
          <module-descriptor external="false">
            <root-element>weblogic-web-app</root-element>
            <uri>WEB-INF/weblogic.xml</uri>
            <variable-assignment>
              <name>vd-<ORACLE_HOME>/customapp</name>
              <xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="java/*"]/local-path</xpath>
            </variable-assignment>
            <variable-assignment>
              <name>vd-<ORACLE_HOME>/customapp</name>
             <xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"]/local-path</xpath>
            </variable-assignment>
            <variable-assignment>
              <name>vd-<DOMAIN_HOME>/config/fmwconfig/servers/WLS_FORMS_CUSTOM_APP/applications/customapp_11.1.1/config/customapp</name>
             <xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="registry/*"]/local-path</xpath>
            </variable-assignment>
          </module-descriptor>
          <module-descriptor external="false">
            <root-element>web-app</root-element>
            <uri>WEB-INF/web.xml</uri>
          </module-descriptor>
        </module-override>
      </deployment-plan>
      

5.2.1.4 カスタムEARファイルのデプロイ

WebLogic Scripting Tool(WLST)コマンドを使用してカスタムEARファイルをデプロイします。たとえば、UNIXオペレーティング・システムでは、次のようにします。

$MW_HOME/oracle_common/common/bin/wlst.sh

Windowsオペレーティング・システムの場合: %MW_HOME%\oracle_common\common\bin\wlst.cmd

WLSTのdeployコマンドを使用して、アプリケーションをデプロイします。

wls:/offline> connect('weblogic','welcome1')

wls:/ClassicDomain/serverConfig> deploy('customapp', '<ORACLE_HOME>/customapp/j2ee/customapp.ear', 'WLS_FORMS_CUSTOM_APP', 'nostage','<DOMAIN_HOME>/deploymentplans/customapp/11.1.1/plan.xml')

コマンドでは次の変更を行ってください。

  • customappを実際のコンテキスト・ルートと置き換えます。

  • <DOMAIN_HOME><ORACLE_HOME>を絶対パスに置き換えます。

5.2.1.5 デプロイされたカスタムForms Java EEアプリケーションの登録

第5.2.3項「Forms Java EEアプリケーションの登録」の手順を実行して、新しくデプロイされたカスタム・アプリケーションを登録します。次の例に示すカスタム・アプリケーションのmanagedserverformsappNameおよびasinstNameの値を入力します。

$FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py
--adminServerName=AdminServer --asinstName=asinst_1
--managedServer=WLS_FORMS_CUSTOM_APP --formsappName=customapp name -o registerApp

5.2.1.6 パッチ適用後のタスク

既存のOracle Fusion Middleware 11gパッチ・セット1(リリース11.1.1.2.0)またはパッチ・セット2(リリース11.1.1.3.0)環境にパッチを適用して最新のパッチ・セットに対応してある場合は、次の手順を実行します。

  1. Forms J2EEアプリケーション・ファイルをcustomappディレクトリにコピーします。UNIXオペレーティング・システムでは、次のようにします。

    cp -rpf $ORACLE_HOME/forms/j2ee/* $ORACLE_HOME/customapp/j2ee/*

    Windowsオペレーティング・システムの場合:

    xcopy /S /E %ORACLE_HOME%\forms\java %ORACLE_HOME%\customapp\java

    xcopy /S /E %ORACLE_HOME%\forms\j2ee %ORACLE_HOME%\customapp\j2ee

  2. 「デフォルトのサーブレット別名とコンテキスト・ルートのオーバーライド」の手順を繰り返します。

  3. カスタム管理対象サーバーを再起動します。

5.2.1.7 カスタム・デプロイメントのテスト

http://<Host>:<Port Number>/<context root>/<servlet name>のURLを使用して、デプロイメントをテストします。

この項の例の場合、URLはhttp://<Host>:<Port Number>/customapp/customservlet.となります。

5.2.2 Forms管理対象サーバー・クラスタの拡張

ハイエンド・マシン(マルチプロセッサと大容量メモリーを搭載したマシン)でFormsデプロイメントのスケーラビリティとパフォーマンスの向上を図るには、Forms管理対象サーバー・クラスタ(cluster_forms)を拡張します。次の手動の手順を実行してForms管理対象サーバー・クラスタを拡張します。

  1. 次の手順を実行して、新しい管理対象サーバーをクラスタ(cluster_forms)に追加します。

    1. Oracle WebLogic Server管理コンソールを使用して、デフォルトのForms管理対象サーバー(WLS_FORMS)を複製するか、新しい管理対象サーバー(ポート番号を9010としたWLS_FORMS_1など)を作成するかを選択できます。

      Fusion Middleware Controlを使用して新しい管理対象サーバーまたはクローン化された管理対象サーバーを管理する方法の詳細は、第5.2.3項「Forms Java EEアプリケーションの登録」を参照してください。

    2. 「サーバー・プロパティ」ページで、新しく作成した管理対象サーバーをFormsクラスタcluster_formsに追加します。

    3. 「一般」タブで、この管理対象サーバーにポート番号を割り当てます。

    4. この管理対象サーバーにマシンを割り当てます。

  2. 次の手順を実行して、新しい管理対象サーバーの構成を編集します。

    1. Oracle WebLogic Server管理コンソールの「サーバーの起動」タブで、次の「サーバーの起動」プロパティを設定します。

    2. 次のシステム・プロパティを追加します。引数の間には改行を記述しません。

      -Dclassic.oracle.home=<ORACLE_HOME location>-Doracle.instance=<ORACLE_INSTANCE location>-Doracle.instance.name=<ORACLE_INSTANCE Name>

      -Doracle.forms.weblogic=1

    3. クラスパスに<ORACLE_HOME>/opmn/lib/optic.jar:<FMW_HOME>/oracle_common/modules/oracle.ldap_11.1.1/ldapjclnt11.jar:<FMW_HOME>/oracle_common/jlib/rcucommon.jarを追記します。

  3. 変更をアクティブにして、新しい管理対象サーバーを起動します。

  4. forms.confのWebLogicClusterエントリに、新しい管理対象サーバーのホストとポートの情報を追加します。

    <Location /forms>

    SetHandler weblogic-handler

    WebLogicCluster <HostName>:9001, <HostName>:9010

    DynamicServerList OFF

    </Location>

  5. OHSを再起動します。

5.2.3 Forms Java EEアプリケーションの登録

Fusion Middleware Controlを使用して、デフォルトのForms WLSクラスタの下で新しい管理対象サーバーまたはクローン化された管理対象サーバーを管理するには、Forms Java EEアプリケーションを登録します。

Forms Java EEアプリケーションを登録するには、次の手順を実行します。

  1. 例5-2に示すようにサンプルWLSTスクリプトを作成します。この例の場合、スクリプト名はformsappRegistration.pyです。

    例5-2 WLSTスクリプトのサンプル

    #
    # formsappRegistration.py
    # Workaround script to register/unregister Forms J2EE application Mbean
    # as a member of Forms System Component Mbean
    #
    from javax.management import ObjectName, Attribute
    from jarray import array
    import getopt, sys
    #
    # function prints the usage
    #
    def usage():
         message = "--------------------------------------------------------------------------------\n" \
    + "Usage : " + \ " $FMW_HOME/oracle_common/common/bin/wlst.sh " + sys.argv[0] +" \
    --adminServerName=<admin server name> --asinstName=<Oracle Instance name> \
    --managedServer=<newly added Forms managed server name> --formsappName=<forms \
    J2EE application name> -o <option> " + \ "\n \nvalid option - registerApp or unregisterApp" + \ "\n \n examples:" + \ "\n$FMW_HOME/oracle_common/common/bin/wlst.sh " + sys.argv[0] +"\ --adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1 \ --formsappName=formsapp -o registerApp " + \ "\n$FMW_HOME/oracle_common/common/bin/wlst.sh " + sys.argv[0] + "\
    --adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1 \
    --formsappName=formsapp -o unregisterApp " + \ "\n--------------------------------------------------------------------------------" print message # # getFormsCompMbeanObjectName - function to generate the Forms System Component # Mbean ObjectName. # def getFormsCompMbeanObjectName(asInstName, adminServerName): frmCompONameString = "oracle.as.management.mbeans.register:" \ + "Location="+ adminServerName + ",type=SystemComponent,name=/" \ + asinstName +"/forms,instance=" + asinstName \ + ",component=forms,EMTargetType=oracle_forms"; print frmCompONameString frmCompOName = ObjectName(frmCompONameString) return frmCompOName # # getFormsAppMbeanObjectName - function to generate the Forms J2EE application # ObjectName. # def getFormsAppMbeanObjectName(appName, managedServer): frmappONameString = "com.bea:Name="+formsappName+ "#11.1.1,Location=" +\ managedServer+ ",Type=AppDeployment" frmappOName = ObjectName(frmappONameString) return frmappOName # # doesMemberExist - utility function to check if app is already registered as a member # def doesMemberExist(member, list): for item in list: if item == member: return 1 return None # # registerFormsApp - registers Forms J2EE application Mbean as a member of # Forms System Component Mbean # def registerFormsApp(formsCompMbean, frmappMbean): domainRuntime() membersArray = mbs.getAttribute(formsCompMbean,"Members") membersList = membersArray.tolist() if membersList == []: print "Members list is empty" else: print "Members list is not empty" if doesMemberExist(frmappMbean, membersList): print "Member already registered, skipping registration" else: print "Member is not found, append it to the members list" membersList.append(frmappMbean) membersArray = array(membersList, ObjectName) membersAttrib = Attribute("Members",membersArray) mbs.setAttribute(formsCompMbean, membersAttrib) # # unregisterFormsApp - unregisters Forms J2EE application Mbean as a member of # Forms System Component Mbean # def unregisterFormsApp(formsCompMbean, frmappMbean): domainRuntime() membersArray = mbs.getAttribute(formsCompMbean,"Members") membersList = membersArray.tolist() if membersList == []: print "Members list is empty" else: print "Members list is not empty" if doesMemberExist(frmappMbean, membersList): print "Found the Member, removing it." membersList.remove(frmappMbean) membersArray = array(membersList, ObjectName) membersAttrib = Attribute("Members",membersArray) mbs.setAttribute(formsCompMbean, membersAttrib) else: print "Member not found, skipping unregister" # # execution starts here # if len(sys.argv) != 7 : print "invalid arguments passed to the script" usage() sys.exit(0) # trim the first argument which is the name of the script args = sys.argv[1:7] optlist, args = getopt.getopt(args,'o', [ 'adminServerName=','asinstName=','managedServer=','formsappName=']) options = dict(optlist) adminServerName = options["--adminServerName"] asinstName = options["--asinstName"] managedServer = options["--managedServer"] formsappName = options["--formsappName"] if adminServerName == [] or \ managedServer == [] or formsappName == [] or not args: print "invalid arguments passed to the script " usage() sys.exit(0) argument = args[0] print "enter the WLST connection paramters ..." connect() frmcompMbean = getFormsCompMbeanObjectName(asinstName,adminServerName) print frmcompMbean frmappMbean = getFormsAppMbeanObjectName(formsappName,managedServer) print frmappMbean if argument == "registerApp": print "registering Forms J2EE application " + formsappName registerFormsApp(frmcompMbean,frmappMbean) elif argument == "unregisterApp": print "unregistering Forms J2EE application " + formsappName unregisterFormsApp(frmcompMbean,frmappMbean) else: print "invalid option passed to the scripts ..." usage() disconnect() print "done... "
  2. スクリプトを実行します。例5-3に示すようにhelp引数を使用して、詳細を参照できます。

    例5-3 サンプル・スクリプトの実行

    $FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py help 
     
    --------------------------------------------------------------------------------
    Usage :
     $FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py
     --adminServerName=<admin server name> --asinstName=<Oracle Instance name>
     --managedServer=<newly added Forms managed server name>  --formsappName=<forms
     J2EE application name> -o <option> 
     
     valid options - registerApp or unregisterApp
     
    examples:
      $FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py
     --adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1
     --formsappName=formsapp -o registerApp
    
     $FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py
     --adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1
     --formsappName=formsapp -o unregisterApp
    
     $FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py
    --adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1
    --formsappName=formsapp -o unregisterApp
    --------------------------------------------------------------------------------
    
  3. プロンプトが表示されたら、管理サーバーのユーザー名、パスワードおよび接続情報を入力します。

  4. デフォルトのサーバーURLを受け入れます。

  5. 例5-4は、サンプルの実行とサーバー登録の結果を示しています。

    例5-4 サンプルの実行と結果

    $FMW_HOME/oracle_common/common/bin ( ) -> ./wlst.sh formsappRegistration.py –
    adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1 –
    formsappName=formsapp -o registerApp
     
    CLASSPATH=. . . . . .
    . . . . . . . . . . .
    . . . . . . . . . . .
    Your environment has been set.
     
    Initializing WebLogic Scripting Tool (WLST) ...
     
    Welcome to WebLogic Server Administration Scripting Shell
     
    Type help() for help on available commands
     
    enter the WLST connection paramters ...
    Please enter your username :weblogic
    Please enter your password :
    Please enter your server URL [t3://localhost:7001] :
    Connecting to t3://localhost:7001 with userid weblogic ...
    Successfully connected to Admin Server 'AdminServer' that belongs to domain 
    'ClassicDomain'.
     
    Warning: An insecure protocol was used to connect to the
    server. To ensure on-the-wire security, the SSL port or
    Admin port should be used instead.
     
    registering Forms J2EE application formsapp
    Location changed to domainRuntime tree. This is a read-only tree with DomainMBean
    as the root.
    For more help, use help(domainRuntime)
     
    Members list is not empty
    Member is not found, append it to the members list
    Disconnected from weblogic server: AdminServer
    done...
    

5.2.4 Forms J2EEアプリケーションのデプロイメント・ディスクリプタの変更

配布後は、Forms J2EEアプリケーションのデプロイメント・ディスクリプタ(weblogic.xmlweb.xmlapplication.xmlおよびweblogic-application.xml)をOracle WebLogic Serverで変更することはできなくなります。

次の手順を実行してForms J2EEアプリケーションのデプロイメント・ディスクリプタをカスタマイズし、そのアプリケーションを再配布することでこの問題を解決できます。

  1. デフォルトのformsappデプロイメント・プラン$DOMAIN_HOME/deploymentplans/formsapp/11.1.1/plan.xmlのバックアップを作成します。

  2. Forms J2EEアプリケーションのデプロイメント・プランに、デプロイメント・ディスクリプタのカスタマイズを追加します。例は、「デプロイメント・プランの変更」を参照してください。


    注意:

    デプロイメント・プランの更新の詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。


  3. WebLogic管理コンソールを使用して、Formsアプリケーションを更新(再配布)し、オプション「このアプリケーションを新しいデプロイメント・プランの変更とあわせた場所に更新します。」を選択します。

  4. WebLogic管理コンソールを使用してForms J2EEアプリケーションを再起動します。

デプロイメント・プランの変更

この例では、FormsサーブレットのtestModeパラメータを上書きしてその値をtrueに設定するようにデプロイメント・プランを変更します。デプロイメント・プランを変更するには、次の手順を実行します。

  1. 次のコマンドを入力します。

    mkdir –p $CLASSIC_ORACLE_HOME/forms/j2ee/backup
    cd $CLASSIC_ORACLE_HOME/forms/j2ee
    cp $DOMAIN_HOME/deploymentplans/formsapp/11.1.1/plan.xml backup/
    vi $DOMAIN_HOME/deploymentplans/formsapp/11.1.1/plan.xml
    
  2. デプロイメント・プランを変更します。次はデプロイメント・プランの例で、追加したエントリを太字で強調表示しています。

    <?xml version='1.0' encoding='UTF-8'?>
    <deployment-plan xmlns="http://xmlns.oracle.com/weblogic/deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/deployment-plan http://xmlns.oracle.com/weblogic/deployment-plan/1.0/deployment-plan.xsd" global-variables="false">
      <application-name>formsapp</application-name>
      <variable-definition>
        <variable>
          <name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
          <value>/scratch/t_work/Oracle/Middleware/as_1/forms</value>
        </variable>
        <variable>
          <name>vd-/scratch/t_work/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms</name>
          <value>/scratch/t_work/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms</value>
        </variable>
        <variable>       
           <name>FormsServlet_InitParam_testMode</name>      
           <value>true</value>    
        </variable>
      </variable-definition>
      <module-override>
        <module-name>formsapp.ear</module-name>
        <module-type>ear</module-type>
        <module-descriptor external="false">
          <root-element>weblogic-application</root-element>
          <uri>META-INF/weblogic-application.xml</uri>
        </module-descriptor>
        <module-descriptor external="false">
          <root-element>application</root-element>
          <uri>META-INF/application.xml</uri>
        </module-descriptor>
        <module-descriptor external="true">
          <root-element>wldf-resource</root-element>
          <uri>META-INF/weblogic-diagnostics.xml</uri>
        </module-descriptor>
      </module-override>
      <module-override>
        <module-name>formsweb.war</module-name>
        <module-type>war</module-type>
        <module-descriptor external="false">
          <root-element>weblogic-web-app</root-element>
          <uri>WEB-INF/weblogic.xml</uri>
          <variable-assignment>
            <name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
    <xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="java/*"]/local-path</xpath>
          </variable-assignment>
          <variable-assignment>
            <name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
    <xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"]/local-path</xpath>
          </variable-assignment>
          <variable-assignment>
            <name>vd-/scratch/t_work/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms</name>
    <xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="registry/*"]/local-path</xpath>
          </variable-assignment>
        </module-descriptor>
        <module-descriptor external="false">
          <root-element>web-app</root-element>
          <uri>WEB-INF/web.xml</uri>
          <variable-assignment>
            <name>FormsServlet_InitParam_testMode</name>
    <xpath>/web-app/servlet/[servlet-name="frmservlet"]/init-param/[param-name="testMode"]/param-value</xpath>
          </variable-assignment>
        </module-descriptor>
      </module-override>
    </deployment-plan>
    
  3. WebLogic管理コンソールを使用して、Forms J2EEアプリケーション・デプロイメント(formsapp(11.1.1))を更新します。Forms J2EEアプリケーションの再デプロイの詳細は、『Oracle Fusion Middleware管理者ガイド』を参照してください。

  4. WebLogic管理コンソールを使用してForms J2EEアプリケーションを再起動します。

5.3 パフォーマンス/スケーラビリティのチューニング

Formsリスナー・サーブレットをチューニングする手順は、スループットの高いサーブレット・アプリケーションをチューニングする手順と同様です。特定のForms Servicesの構成に最適なチューニングを行うには、リソース管理とユーザーのニーズを考慮する必要があります。詳細は、OTN(http://www.oracle.com/technology/documentation/)にあるOracle Fusion Middlewareのパフォーマンス・ガイドを参照してください。

5.3.1 HTTPDプロセス数の制限

メモリーを大量に消費するHTTPDプロセス生成を制御するには、Oracle HTTP Listener構成ファイル(httpd.conf)でKeepAliveディレクティブをKeepAlive Offと設定します。

KeepAliveでは、永続的な接続(接続ごとに複数のリクエスト)を許可するかどうかを指定します。たとえば、別のアプリケーションに対してKeepAlive Onを使用する必要がある場合は、KeepAliveTimeoutをデフォルトの15秒のような低い数値に設定してください。KeepAliveの設定は、クライアント(ブラウザ)とOHSサーバー間で永続的な接続を維持するために使用されます。OHSとOracle WebLogic Server間の接続には関係ありません。

5.3.2 高い値のMaxClientsディレクティブの設定

多数のHTTPDプロセスを作成するタイミングは、HTTPリスナーで判断できます。そのため、構成ファイル(httpd.conf)ではMaxClientsディレクティブを高い値に設定します。ただし、このパラメータを設定する際にはシステム上のメモリー容量を考慮する必要があります。

MaxClients=256は、同時にリクエストを処理するHTTPDプロセスをリスナーが最大256作成できることを示します。

HTTPリクエストが急激に増大し、必要なHTTPDプロセスを開始する時間を短縮する必要がある場合は、適切な数のプロセスに対応するように、MinSpareServersMaxSpareServers(httpd.conf内)を設定できます。ただし、ほとんどのサイトではそれぞれ5と10のデフォルト値で十分です。

5.4 Oracle WebLogic Serverのロード・バランシング

Formsリスナー・サーブレットのアーキテクチャでは、標準のHTTPロード・バランシング技術を使用して、システムのロード・バランスを実現します。

Oracle HTTP Serverリスナーで提供するロード・バランシング・メカニズムでは、複数のWebLogicインスタンスをHTTPプロセスと同じホストで実行することも、複数の異なるホストやその組合せで実行することもできます。次に、HTTPリスナーはHTTPリクエストをOracle WebLogic管理対象サーバー・インスタンスにルーティングします。

次の使用例では、ホストを組み合せた使用方法を紹介します。ユーザーのサイトにどのような選択が最も適しているかは、様々な要因により異なります。

この機能の詳細は、OTN(http://www.oracle.com/technology/documentation/index.html)にあるOracle Fusion Middlewareのパフォーマンス・ガイドを参照してください。

次の図では、配置例を4つ示します。

図5-2 Oracle HTTP Listenerと同じホスト上にある複数のOracle WebLogicサーバー

同じホスト上にある複数のOC4JインスタンスとHTTPリスナー

図5-3 Oracle HTTP Listenerとは異なるホスト上にある複数のOracle WebLogicサーバー

HTTPリスナーとは異なるホスト上にある複数のOC4Jインスタンス

図5-4 それぞれが異なるホスト上にある複数のOracle WebLogicサーバーと複数のOracle HTTP Listener

ホストされる複数のOC4Jインスタンス、ホストされる複数のHTTPリスナー

図5-5 異なるホスト上にある複数のOracle HTTP Listenerと同じホスト上にある複数のOracle Weblogicサーバー

異なるホスト上にある複数のHTTPリスナー、同じホスト上にある複数のOC4Jインスタンス

HTTPリスナーとOracle WebLogic ServerでのForms Servicesのチューニングおよび最適化の詳細は、Oracle Technology Network(OTN)(http://www.oracle.com/technology/documentation/index.html)にあるOracle Fusion Middlewareのパフォーマンス・ガイドを参照してください。

5.5 Formsリスナー・サーブレットでのHTTPSの使用

Oracle FormsにHTTPSを使用するのは、他のWebベースのアプリケーションでHTTPSを使用するのと変わりません。HTTPSでは、デジタル証明書(VeriSignなど)を使用する必要があります。Forms ServicesサーブレットはユーザーのWebサーバーからアクセスできるため、Oracle Formsのクライアントとサーバー間の通信に特別な証明書を購入する必要はありません。正式な認証局からユーザーのWebサーバー用の証明書を購入するだけで済みます。

5.6 認証プロキシを使用したOracle Formsアプリケーションの実行

Oracle Fusion Middlewareのインストール・プロセスで設定されたデフォルトの構成では、認証プロキシがサポートされます。認証プロキシでは、アプリケーションを実行する接続先サーバーにアクセスできるように、ユーザーがユーザー名とパスワードを指定する必要があります。認証プロキシは通常、ユーザーがログインしているか(または認証されているか)どうかを検出するためにCookieを設定します。Cookieはその後のすべてのネットワーク要求時に送信され、不要なログイン・プロンプトを回避します。

Oracle WebLogic Serverのインストール・プロセスで設定されるcodebase値およびserverURL値には、$ORACLE_HOME/forms/javaおよび/forms/lservletが含まれます。これらはページのドキュメント・ベース($ORACLE_HOME/forms)の下にあるので、認証プロキシが機能します。

5.7 Oracle Forms ServicesとSSL

Oracle Forms ServicesアプリケーションをSSLモードで実行するには:

前述のトピックの詳細は、『Oracle Fusion Middleware管理者ガイド』のOracle Fusion MiddlewareでのSSL構成に関する項を参照してください。


注意:

Enterprise Managerを使用してOracle Web Cacheポートを変更する場合は、osso.confを再生成し、生成したosso.confファイルを$ORACLE_INSTANCE/config/OHS/<OHS_INSTANCE>/moduleconfディレクトリにコピーします。変更を有効にするために、Oracle HTTP ServerとOracle Web Cacheを再起動します。


5.8 ロード・バランシング・ルーターによるSSLの有効化

HTTPSポートを使用するFormsアプリケーションを実行するには、証明書をインポートする必要があります。Oracle Formsがロード・バランシング・ルーターの後ろにあり、そのOracle FormsでSSLが終了する場合、証明書をロード・バランシング・ルーターからインポートする必要があります。

ロード・バランシング・ルーター上のFormsアプリケーションでSSLを有効にするには:

  1. Webブラウザを起動して、FormsアプリケーションのHTTPS URLを入力します。このURLでは、Oracleインストールで使用している完全修飾ホスト名を指定します(必要に応じてポート番号も指定)。たとえば、https://example.com:443/forms/frmservletとします。

    「セキュリティ・アラート」ダイアログ・ボックスが表示されます。

  2. 証明書の表示」をクリックします。

  3. 「証明書」ダイアログで、「詳細」タブをクリックします。

  4. ファイルへコピー」をクリックします。

  5. 証明書エクスポート・ウィザードの「ようこそ」ページで、「次へ」をクリックします。

  6. エクスポート・ファイル形式ページで、「Base-64 encoded X.509 (.CER)」を選択し、「次へ」をクリックします。

  7. c:\temp\formsなどのファイル名を入力して、「次へ」をクリックします。

  8. 終了」をクリックします。

    エクスポートが正常に終了したことを示すメッセージが表示されます。

  9. OK」をクリックします。

  10. 「セキュリティ・アラート」ダイアログは開いたまま証明書エクスポート・ウィザードを終了します。

  11. 使用しているJVMの証明書ストアに保存してあるセキュリティ証明書ファイルをインポートします。詳細は、次の項を参照してください。

  12. 「セキュリティ・アラート」ダイアログで「はい」をクリックしてセキュリティ証明書を受け入れ、Formsアプリケーションを起動します。

Java Plug-inへの証明書のインポート

  1. クライアント・マシンでコントロール・パネルを開きます。

  2. Javaを開きます。

  3. 「セキュリティ」タブにナビゲートします。

  4. 「証明書」をクリックします。

  5. 前述の項でエクスポートした証明書をインポートします。

  6. 「適用」をクリックします。