运行 EPM Automate 的多个实例

您可从同一个目录针对一个环境运行 EPM Automate 的多个实例。类似地,您也可以从同一个目录或不同目录针对多个环境运行 EPM Automate 的多个实例。

例如,您可能需要在 https://cloudpln.pbcs.us1.oraclecloud.comhttps://testcloudpln.pbcs.us1.oraclecloud.com 中同时刷新 Planning 应用程序多维数据集。在此方案中,您有两种选择:

  • 从同一个目录运行 EPM Automate 的两个实例,分别刷新不同环境中的应用程序多维数据集

  • 从两个单独的目录分别执行 EPM Automate 以连接到环境,然后刷新应用程序多维数据集

在这两种方案中,EPM Automate 的每一个实例都独立运行;从一个实例注销不会使您从另一个实例注销。即使从另一个实例注销,使用 EPM Automate 启动的活动也将继续在环境中运行直至完成。

本节包含可用于创建两个 EPM Automate 会话以执行任务的 Windows 和 Unix/Linux 示例脚本(callermultisession)。要同时运行多个会话,必须在 caller 脚本中添加以下连接信息,该脚本会调用 multisession 脚本来运行 loginuploadfilelistfileslogout 命令。可以修改 multisession 脚本来执行这些任务之外的其他任务。确保这两个脚本存储在同一目录中。

  • EPM Automate 使用环境变量 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