Mehrere Instanzen von EPM Automate ausführen

Sie können mehrere Instanzen von EPM Automate in einer Umgebung aus demselben Verzeichnis ausführen. Ebenso können Sie mehrere Instanzen in verschiedenen Umgebungen aus demselben oder verschiedenen Verzeichnissen ausführen.

Beispiel: Sie müssen den Cube der Planning-Anwendung möglicherweise in zwei verschiedenen Umgebungen gleichzeitig aktualisieren: https://cloudpln.pbcs.us1.oraclecloud.com und https://testcloudpln.pbcs.us1.oraclecloud.com. In diesem Szenario haben Sie zwei Möglichkeiten:

Zwei Sessions aus demselben Verzeichnis ausführen

Sie können zwei Instanzen von EPM Automate aus demselben Verzeichnis ausführen. Spezifische Skripte müssen implementiert werden, um sicherzustellen, dass die einzelnen Instanzen unabhängig voneinander arbeiten, sodass Sie beim Abmelden von einer Instanz nicht von der anderen abgemeldet werden. Diese Skripte stellen sicher, dass EPM Automate-Aktivitäten weiterhin bis zum Abschluss in der Umgebung ausgeführt werden, auch wenn Sie sich von der anderen Instanz abmelden. Dieser Abschnitt enthält Beispielskripte für Windows und Unix/Linux (caller und multisession), die verwendet werden können, um zwei Sessions aus demselben Verzeichnis zu erstellen.

Um mehrere gleichzeitige Sessions auszuführen, fügen Sie Verbindungsinformationen im caller-Skript hinzu. Damit wird das multisession-Skript zum Ausführen der Befehle login, uploadfile, listfiles und logout aufgerufen. Sie können das multisession-Skript ändern, um damit andere Aufgaben als diese auszuführen. Stellen Sie sicher, dass diese Skripte in demselben Verzeichnis gespeichert sind.

  • EPM Automate verwendet die Umgebungsvariable EPM_SID, um mehrere Sessions zu unterscheiden. Diese Variable muss im Aufruferskript für jede Session auf einen eindeutigen Wert gesetzt sein. In den Beispielskripten ist sie wie folgt auf eindeutige Werte gesetzt:

    • In caller.bat ist EPM_SID auf !RANDOM! gesetzt. Dadurch wird der ID eine eindeutige systemgenerierte Zahl zugewiesen. Diese Zahl wird auch zum Generieren der Logdateien für jede Session verwendet. Wenn Sie die Logdatei für jede Session verfolgen möchten, können Sie eine eindeutige Zahl anstelle von !RANDOM! angeben.

    • In caller.sh, ist EPM_SID auf die Prozess-ID gesetzt, die eindeutig ist. Wenn Sie die Logdatei für jede Session verfolgen möchten, können Sie einen eindeutigen Wert für EPM_SID angeben, indem Sie die Anweisung export EPM_SID=$$ im multisession-Skript ändern, sodass der übergebene Wert verwendet wird, und dann einen eindeutigen Wert für diesen Parameter in das caller-Skript für jede Session übergeben, indem Sie z.B. wie folgt den Wert von EPM SID in caller.sh angeben:

      $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: Anmelde-ID eines Serviceadministrators

  • PASSWORD: Kennwort des Serviceadministrators

  • URL: Verbindungs-URL der Umgebung

Windows-Beispielskripte

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-Beispielskript

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

Zwei Sessions aus verschiedenen Verzeichnissen ausführen

Auf UNIX/Linux-Servern können Sie zwei Sessions in verschiedenen Umgebungen aus unterschiedlichen Verzeichnissen ausführen, ohne spezifische Skripte schreiben zu müssen. Die EPM Automate-Befehle, die aus zwei verschiedenen Verzeichnissen ausgeführt werden, beeinträchtigen sich nicht gegenseitig und können unabhängig voneinander arbeiten. Dieser Ansatz funktioniert nicht auf Windows-Computern, auf denen Sie spezifische Skripte verwenden müssen, die im vorherigen Abschnitt erwähnt wurden.