您可从同一个目录针对一个环境运行 EPM Automate 的多个实例。类似地,您也可以从同一个目录或不同目录针对多个环境运行多个实例。
https://cloudpln.pbcs.us1.oraclecloud.com 和 https://testcloudpln.pbcs.us1.oraclecloud.com)中同时刷新 Planning 应用程序多维数据集。在此方案中,您有两种选择:
从同一目录运行两个会话
可以从同一目录运行 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。如果要跟踪每个会话的日志文件,可以指定唯一的 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
从不同目录运行两个会话
在 UNIX/Linux 服务器上,您可以从不同的目录运行针对不同环境的两个会话,而无需编写特定的脚本。从两个不同的目录运行的 EPM Automate 命令不会相互干扰,并且可以彼此独立运行。此方法在 Windows 计算机上不起作用,您必须使用上一节中提到的特定脚本。