スクリプトによるセッション管理用アプリケーションの構成

このタスクでは、AdminConfig オブジェクトを使用して、アプリケーションの セッション・マネージャーを構成する例を示します。

事前処理

稼働中のサーバーにアプリケーションがインストール済みである必要があります。

このタスクの概要

AdminConfig オブジェクトを使用して、アプリケーションの構成を設定できます。 ただし、AdminConfig オブジェクトでは設定できない構成もいくつかあります。

手順

  1. wsadmin スクリプト・ツールを開始します。
  2. アプリケーションのデプロイメント構成オブジェクトを識別して、 deployment 変数に割り当てます。
    注: このステップは、OSGi アプリケーションには必要ありません。
    以下に例を示します。
    • Jacl を使用:
      test
      set deployments [$AdminConfig getid /Deployment:myApp/]
    • Jython を使用:
      deployments = AdminConfig.getid('/Deployment:myApp/')
      print deployments
    ここで:
    表 1. getid コマンド・エレメント getid コマンドを実行して、デプロイメント・オブジェクトを識別します。
    エレメント 説明
    set Jacl コマンドです。
    deployments 変数名です。
    $ 変数名を値で置換する Jacl 演算子です。
    AdminConfig WebSphere® Application Server 構成を表すオブジェクトです。
    getid AdminConfig コマンドです。
    デプロイメント 属性です。
    myApp 属性の値です。
    出力例:
    myApp(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Deployment_1)
  3. アプリケーション・デプロイメント・オブジェクトを検索して appDeploy 変数に割り当てます。
    以下に例を示します。
    • Jacl を使用:
      set appDeploy [$AdminConfig showAttribute $deployments deployedObject]
    • Jython を使用:
      appDeploy = AdminConfig.showAttribute(deployments, 'deployedObject')
      print appDeploy
    注: OSGi アプリケーションの場合は、このステップに以下の jython コードを使用してください。
    appDeploy = AdminTask.getOSGiApplicationDeployedObject('-cuName cu_name')
    ここで:
    表 2. コマンド・エレメントを設定します。 set コマンドを実行して、デプロイメント・オブジェクトに値を割り当てます。
    エレメント 説明
    set Jacl コマンドです。
    appDeploy 変数名です。
    $ 変数名を値で置換する Jacl 演算子です。
    AdminConfig WebSphere Application Server の構成を表すオブジェクトです。
    showAttribute AdminConfig コマンドです。
    deployments ステップ 1 で指定したデプロイメント・オブジェクトの ID を評価します。
    deployedObject 属性です。
    cu_name 構成単位の名前です。
    出力例:
    (cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#ApplicationDeployment_1)
  4. セッション・マネージャーに設定できる属性のリストを取得するには、 attributes コマンドを使用します。 以下に例を示します。
    • Jacl を使用:
      $AdminConfig attributes SessionManager
    • Jython を使用:
      print AdminConfig.attributes('SessionManager')
    ここで:
    表 3. attributes コマンド・エレメント attributes コマンドを実行して、セッション・マネージャーの属性をリストします。
    エレメント 説明
    $ 変数名を値で置換する Jacl 演算子です。
    AdminConfig WebSphere Application Server の構成を表すオブジェクトです。
    属性 AdminConfig コマンドです。
    SessionManager 属性です。
    出力例:
    "accessSessionOnTimeout Boolean"
    "allowSerializedSessionAccess Boolean"
    "context ServiceContext@"
    "defaultCookieSettings Cookie"
    "enable Boolean"
    "enableCookies Boolean"
    "enableProtocolSwitchRewriting Boolean"
    "enableSSLTracking Boolean"
    "enableSecurityIntegration Boolean"
    "enableUrlRewriting Boolean"
    "maxWaitTime Integer"
    "properties Property(TypedProperty)*"
    "sessionDRSPersistence DRSSettings"
    "sessionDatabasePersistence SessionDatabasePersistence"
    "sessionPersistenceMode ENUM(DATABASE, DATA_REPLICATION, NONE)"
    "tuningParams TuningParams"

    セッション管理のアプリケーションを構成するとき、それぞれの属性を指定することをお勧めします。

    問題の回避: クラスターのセッション管理属性をセットアップする場合は、 sessionManagment エレメントに指定した設定が有効になる前に、クラスターの AdminConfig オブジェクトの targetMappings エレメントも更新する必要があります。 targetMappings エレメントを更新しないと、設定は、deployment.xml ファイルにはあっても有効ではありません。
  5. セッション・マネージャーの属性をセットアップします。

    次の例では、 セッション・マネージャーに 4 つのトップレベル属性を設定します。 この例を変更して、セッション・マネージャーの他の属性を設定できます。 これには、DRSSettings、SessionDataPersistence、および TuningParms オブジェクト・タイプの ネストされた属性が含まれます。

    問題の回避:

    セッション・マネージャーでは、アプリケーションを初期化するために defaultCookieSettings 属性および tuningParams 属性が使用されます。これらはユーザーによる設定が可能です。 バージョン 9.0.0.4 では、これらの属性を設定しない場合、デフォルトのセッション設定と Cookie 設定を使用してセッション・マネージャーによりアプリケーションが初期化されます。

    9.0.0.4 より前のバージョンでは、セッション・マネージャーを使用する際には、アプリケーションを初期化する前に、 defaultCookieSettings 属性と tuningParams 属性の両方を設定しておく必要があります。 これらの属性を設定しないと、セッション・マネージャーはアプリケーションを 初期化できず、アプリケーションは開始しません。

    これらのオブジェクト・タイプの属性をリストするには、 AdminConfig オブジェクトの attributes コマンドを使用します。

    • Jacl を使用:
      set attr1 [list enableSecurityIntegration true]
      set attr2 [list maxWaitTime 30]
      set attr3 [list sessionPersistenceMode NONE]
      set kuki [list maximumAge -1]
      set cookie [list $kuki]
      Set cookieSettings [list defaultCookieSettings $cookie]
      set attrs [list $attr1 $attr2 $attr3 $cookieSettings]
      set sessionMgr [list sessionManagement $attrs]
      
      Jacl を使用した出力例:
      sessionManagement {{enableSecurityIntegration true} {maxWaitTime 30} {sessionPersistenceMode NONE} 
      {defaultCookieSettings {{maximumAge -1}}}}
    • Jython を使用:
      attr1 = ['enableSecurityIntegration', 'true']
      attr2 = ['maxWaitTime', 30]
      attr3 = ['sessionPersistenceMode', 'NONE']
      kuki = ['maximumAge', -1] 
      cookie = [kuki] 
      cookieSettings = ['defaultCookieSettings', cookie] 
      attrs = [attr1, attr2, attr3, cookieSettings]
      sessionMgr = [['sessionManagement', attrs]]
      Jython を使用した出力例:
      [[sessionManagement, [[enableSecurityIntegration, true], [maxWaitTime, 30], [sessionPersistenceMode, NONE], 
      [defaultCookieSettings [[maximumAge, -1]]]]
    ここで:
    表 4. コマンド・エレメントを設定します。 set コマンドを実行して、セッション・マネージャーに属性を設定します。
    エレメント 説明
    set Jacl コマンドです。
    attr1、attr2、attr3、attrs、sessionMgr 変数名です。
    $ 変数名を値で置換する Jacl 演算子です。
    enableSecurityIntegration 属性です。
    はい enableSecurityIntegration 属性の値です。
    maxWaitTime 属性です。
    30 maxWaitTime 属性の値です。
    sessionPersistenceMode 属性です。
    NONE sessionPersistenceMode 属性の値です。
  6. 以下のいずれかを実行します。
    • アプリケーションのセッション・マネージャーを作成します。 以下に例を示します。
      • Jacl を使用:
        $AdminConfig create ApplicationConfig $appDeploy [list $sessionMgr]
      • Jython を使用:
        print AdminConfig.create('ApplicationConfig', appDeploy, sessionMgr)
      ここで:
      表 5. コマンド・エレメントを作成します。 create コマンドを実行して、セッション・マネージャーを作成します。
      エレメント 説明
      $ 変数名を値で置換する Jacl 演算子です。
      AdminConfig WebSphere Application Server の構成を表すオブジェクトです。
      create AdminConfig コマンドです。
      ApplicationConfig 属性です。
      appDeploy ステップ 2 で指定したデプロイ済みアプリケーションの ID を評価します。
      リスト Jacl コマンドです。
      sessionMgr ステップ 4 で指定したセッション・マネージャーの ID を評価します。
      出力例:
      (cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#ApplicationConfig_1)
    • セッション・マネージャーが既に存在する場合は、AdminConfig オブジェクトの modify コマンドを使用して、セッション・マネージャーの構成を更新します。 以下に例を示します。
      • Jacl を使用:
        set configs [lindex [$AdminConfig showAttribute $appDeploy configs] 0]
        set appConfig [lindex $configs 0]
        set SM [$AdminConfig showAttribute $appConfig sessionManagement]
        $AdminConfig modify $SM $attrs
      • Jython を使用:
        configs = AdminConfig.showAttribute (appDeploy, 'configs')
        appConfig = configs[1:len(configs)-1] 
        SM = AdminConfig.showAttribute (appConfig, 'sessionManagement') 
        AdminConfig.modify (SM, attrs)
        
  7. 構成の変更を保存します。
    以下のコマンド例を使用して、構成変更を保存します。
    AdminConfig.save()