スクリプトによるセッション管理用アプリケーションの構成
このタスクでは、AdminConfig オブジェクトを使用して、アプリケーションの セッション・マネージャーを構成する例を示します。
事前処理
稼働中のサーバーにアプリケーションがインストール済みである必要があります。
このタスクの概要
AdminConfig オブジェクトを使用して、アプリケーションの構成を設定できます。 ただし、AdminConfig オブジェクトでは設定できない構成もいくつかあります。
手順
- wsadmin スクリプト・ツールを開始します。
- アプリケーションのデプロイメント構成オブジェクトを識別して、
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)
- アプリケーション・デプロイメント・オブジェクトを検索して
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)
- セッション・マネージャーに設定できる属性のリストを取得するには、 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 ファイルにはあっても有効ではありません。 - セッション・マネージャーの属性をセットアップします。
次の例では、 セッション・マネージャーに 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 属性の値です。 - 以下のいずれかを実行します。
- アプリケーションのセッション・マネージャーを作成します。 以下に例を示します。
- 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)
- アプリケーションのセッション・マネージャーを作成します。 以下に例を示します。
- 構成の変更を保存します。以下のコマンド例を使用して、構成変更を保存します。
AdminConfig.save()