執行 EPM Automate 的多個例項

您可以針對相同目錄中的某個環境執行 EPM Automate 的多個例項。同樣地,您可以針對來自相同或不同目錄的不同環境執行多個例項。

例如,您可能需要同時重新整理兩個不同環境中的 Planning 應用程式立方體:https://cloudpln.pbcs.us1.oraclecloud.com 和 https://testcloudpln.pbcs.us1.oraclecloud.com。在此案例中,您有兩個選項:

從相同目錄執行兩個階段作業

您可以從相同目錄執行兩個 EPM Automate 例項。必須實作特定指令碼,以確保每個例項皆獨立運作,因此登出某個例項不會讓您登出另一個例項。這些指令碼可確保即使您登出其他例項,EPM Automate 活動也會繼續在環境中執行完畢。本節包含 Windows 和 Unix/Linux 範例指令碼 (caller 與 multisession),可用於從相同目錄建立兩個階段作業。

若要執行多個階段作業,請在 caller 指令碼中新增連線資訊,此指令碼會呼叫 multisession 指令碼以執行 login、uploadfile、listfiles 及 logout 命令。您可以修改 multisession 指令碼以執行這些以外的任務。請務必將這些指令碼儲存在相同的目錄中。

  • EPM Automate 使用環境變數 EPM_SID 來區分多個階段作業。此變數必須在 caller 指令碼中針對每個階段作業設為唯一值。在範例指令碼中,將其設為唯一值的方式如下:

    • 在 caller.bat 中,EPM_SID 是設為 !RANDOM!,這會為其指派一個唯一的系統產生號碼。此號碼也用來為每個階段作業產生日誌檔。如果您想要追蹤每個階段作業的日誌檔,您可以指定一個唯一的號碼來取代 !RANDOM!。

    • 在 caller.sh 中,EPM_SID 是設為程序 ID,這是唯一的。如果您想要追蹤每個階段作業的日誌檔,您可以將 multisession 指令碼的 export EPM_SID=$$ 陳述式修改成使用傳入值來指定唯一 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

從不同目錄執行兩個階段作業

在 UNIX/Linux 伺服器上,您可以從不同目錄對不同環境執行兩個階段作業,無需撰寫特定指令碼。從兩個不同目錄執行的 EPM Automate 命令不會彼此干擾,而且可以各自獨立運作。此方法不適用於必須使用上一節所述之特定指令碼的 Windows 電腦。