EPM自動化の複数インスタンスの実行

同一のディレクトリから1つの環境に対してEPM自動化の複数のインスタンスを実行できます。同様に、同じまたは異なるディレクトリから様々な環境に対して複数のインスタンスを実行できます。

たとえば、https://cloudpln.pbcs.us1.oraclecloud.comおよびhttps://testcloudpln.pbcs.us1.oraclecloud.comの2つの異なる環境のPlanningアプリケーション・キューブを同時にリフレッシュする必要がある場合があります。このシナリオには、2つのオプションがあります。

同じディレクトリからの2つのセッションの実行

EPM自動化の2つのインスタンスを同じディレクトリから実行できます。各インスタンスが独立して動作し、一方のインスタンスからログアウトしても他方のインスタンスからログアウトされないように、特定のスクリプトを実装する必要があります。これらのスクリプトにより、一方のインスタンスからサインアウトした場合でも、EPM自動化のアクティビティが環境内で完了するまで実行を継続するようにします。この項には、同じディレクトリから2つのセッションを作成するために使用できるWindowsおよびUnix/Linuxのサンプル・スクリプト(callerおよびmultisession)が記載されています。

複数の同時セッションを実行するには、callerスクリプト(login、uploadfile、listfilesおよびlogoutコマンドを実行するmultisessionスクリプトを呼び出す)に接続情報を追加します。これらのコマンド以外のタスクを実行するためにmultisessionスクリプトを変更できます。これらのスクリプトは必ず同じディレクトリに格納してください。

  • EPM自動化では、環境変数EPM_SIDを使用して複数のセッションを区別します。この変数は、callerスクリプトでセッションごとに一意の値に設定する必要があります。サンプル・スクリプトでは、次のように一意の値が設定されています:

    • caller.batでは、EPM_SIDに!RANDOM!が設定され、これによって一意のシステム生成番号が割り当てられます。この番号は、各セッションのログ・ファイルの生成にも使用されます。各セッションのログ・ファイルを追跡する必要がある場合は、!RANDOM!のかわりに一意の番号を指定できます。

    • caller.shでは、EPM_SIDには一意のプロセスIDが設定されます。各セッションのログ・ファイルを追跡する必要がある場合に、一意のEPM_SIDを指定するには、渡された値を使用するようにmultisessionスクリプトのexport EPM_SID=$$文を変更した後、各セッションのcallerスクリプトでこのパラメータに一意の値を渡します。たとえば、caller.shではEPM SIDの値を次のように指定します:

      $SCRIPT_DIR/multisession.sh EPM_SID "USERNAME" "PASSWORD" "URL" "/home/user/Snapshot1.zip" &
      $SCRIPT_DIR/multisession.sh EPM_SID "USERNAME" "PASSWORD" "URL" "/home/user/Snapshot2.zip" &
  • USERNAME: サービス管理者のログインID

  • PASSWORD: サービス管理者のパスワード

  • URL: 環境の接続URL

サンプルのWindowsスクリプト

caller.bat

@echo off
setlocal EnableExtensions EnableDelayedExpansion

REM syntax: start /B multisession.bat EPM_SID "USERNAME" "PASSWORD" "URL"  "SNAPSHOTPATH"
start /B multisession.bat !RANDOM! "USERNAME" "PASSWORD" "URL" "C:\Snapshot1.zip"
start /B multisession.bat !RANDOM! "USERNAME" "PASSWORD" "URL" "C:\Snapshot2.zip"

endlocal

multisession.bat

@echo off

set EPM_SID=%1
set USERNAME=%2
set PASSWORD=%3
set URL=%4
set SNAPSHOTNAME=%5

echo User: %USERNAME% > %EPM_SID%.log
echo Cloud Instance: %URL% >> %EPM_SID%.log

call epmautomate login %USERNAME% %PASSWORD% %URL% >> %EPM_SID%.log
call epmautomate uploadfile %SNAPSHOTNAME% >> %EPM_SID%.log
call epmautomate listfiles >> %EPM_SID%.log
call epmautomate logout

サンプルのBourne Shellスクリプト

caller.sh
#!/bin/sh

set +x
SCRIPT_DIR=`dirname "${0}"`

# syntax: /home/user/multisession.sh "USERNAME" "PASSWORD" "URL" "SNAPSHOTPATH" &
$SCRIPT_DIR/multisession.sh "USERNAME" "PASSWORD" "URL"  "/home/user/Snapshot1.zip" &
$SCRIPT_DIR/multisession.sh "USERNAME" "PASSWORD" "URL" "/home/user/Snapshot2.zip" &
multisession.sh
#!/bin/sh

set +x

EPM_AUTOMATE_HOME=/home/user/epmautomate

export JAVA_HOME=/home/user/jre
export EPM_SID=$$

USERNAME=$1
PASSWORD=$2
URL=$3
SNAPSHOTNAME=$4

echo User: $USERNAME > $EPM_SID.log
echo Cloud Instance: $URL >> $EPM_SID.log

$EPM_AUTOMATE_HOME/bin/epmautomate.sh login $USERNAME $PASSWORD $URL >> $EPM_SID.log
$EPM_AUTOMATE_HOME/bin/epmautomate.sh uploadfile $SNAPSHOTNAME >> $EPM_SID.log
$EPM_AUTOMATE_HOME/bin/epmautomate.sh listfiles >> $EPM_SID.log
$EPM_AUTOMATE_HOME/bin/epmautomate.sh logout

異なるディレクトリからの2つのセッションの実行

UNIX/Linuxサーバーでは、特定のスクリプトを記述せずに、異なるディレクトリから異なる環境に対して2つのセッションを実行できます。2つの異なるディレクトリから実行されるEPM自動化コマンドは、相互に干渉せず、それぞれ独立して動作することができます。このアプローチはWindowsコンピュータでは機能せず、前のセクションで説明した特定のスクリプトを使用する必要があります。