EssCmdQ lief nicht wie gewünscht

Alles fing an mit einem Fehler im Deployment einer Applikation in EPMA. Ich lief in einen bekannten Fehler und um dieses für ein und alle Zeit bei diesem Kunden zu lösen, brauchte ich EssCmdQ. Hier eine Beschreibung des Geschehens. Kein Mitleid notwendig – es gibt Personen auf dieser Welt die lieben diese Arbeit.

Was war passiert? Im EPMA schnell noch eine kleine Anpassung in der Shared Dimension und dann die Applikation nochmals bereitstellen. Das geht gerade noch, bevor ich in ein Meeting muss. Dann ist dieses Teil auch fertiggestellt und kann das dann dort direkt als erledigt berichten.

Doch es ging anders… das Deployment geht auf die “Bretter” mit einer Fehlerbotschaft dass eine Dimension nicht aufgebaut werden kann. Die Fehlerbotschaft in Englisch:

Failed to deploy Essbase cube.

Caused by: Failed to build Essbase cube dimension: (dimensionname) .

Caused by: Cannot end stream build. Essbase Error(1007083): Dimension build failed. Error code [1060114]. Check the server log file and the dimension build error file for possible additional info.

 

Ein kurzes überlegen. In dieser besagten Dimension gab es keine Anpassungen seit dem letzten Bereitstellen. Warum diese Dimension… doch da fiel mir ein, dass es noch immer einen Bug im EPMA im Zusammenhang mit Essbase gibt. Ich hatte hierzu schon mal einen Beitrag geschrieben „Dimensionserstellung nicht erfolgreich“.

Essbase zählt intern wie oft eine Dimension angelegt oder entfernt wird. Bei der Nummer 255 knallt es dann. Bei einer Applikation mit 12 Dimensionen bedeutet das, in der 22sten Bereitstellung ist es dann soweit und der Fehler tritt auf. (Oracle Techdoc „Error Trying to Deploy an ASO Essbase Database „1060190 Cannot Add Dimension — too many dimensions have been created and deleted“ [ID 1323833.1]“ )

Quickfix

Wenn die Dimension unter einem anderen Namen gespeichert wird, dann geht der interne Zähler wieder auf 0. Die schnelle Lösung ist also die Outline zu öffnen, unter einem anderen Namen zu speichern. Dort zu öffnen und zurück auf die original Applikation speichern.

Also nichts, was man in einem automatisierten Betrieb haben möchte.

EssCmdQ – der Retter in der Not

Eine definitive Lösung ist der Einsatz von EssCmdQ. Dieses Tool kann von dieser Oracle Webseite heruntergeladen werden. http://www.oracle.com/technetwork/middleware/bi-foundation/esscmdq-sampleapps-093105.html. Dort ist auch eine kurze Anleitung zu finden, wie das Tool eingesetzt werden kann.

EssCmdQ setzt nicht nur den Zähler in der Outline zurück, es komprimiert die Outline auch. Dieses ist sehr wichtig bei Aggregate Storage Datenbanken. Daher wollte ich es sowieso bei dem Kunden implementieren.

Nun, die heruntergeladene Datei in den richtigen Ordner geschoben und ein kleines Skript geschrieben, um das Programm auf einer Outline zu testen. Der Applikationsname ist Region und die Datenbank trägt den Namen Plan1.

 

Mein EssCmdQ Skript ist hier dargestellt, es wird dann mit einem Batchskript gestartet.

Login „2008SR2SRV“ „admin“ „password“;

Select „REGION“ „Plan1“ ;

Openotl „2“ „1“ “ REGION“ „Plan1“ „Plan1“ „y“ „y“ 1;

Writeotl 1 „2“  1 “ REGION“ „Plan1“ „Plan1“;

Restructotl „1“ ;

CloseOtl „1“ ;

Unlockobj „1“ “ REGION“ „Plan1“ „Plan1“ ;

LogOut ;

 

Leider ging das Ausführen in die “Binsen”. Ich bekam eine Fehlerbotschaft bei der Openotl Zeile:

Error(1060127)

UTF-8 encoded outline file is not allowed to be read in non-Unicode-mode client.

 

Auch bei der Writeotl. Aber das ist logisch wenn die Outline nicht geöffnet wurde.

 

In der Restrukturierung bekam ich den Fehler:

Error(1250030)

File [D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\APP\REGION\Plan1\Plan1.otn] not found

 

Ja, ich habe eine Unicode Applikation. Diese bietet mir immer so viele Vorteile. Siehe hierzu auch meinen Blogbeitrag „Was bedeutet Unicode und warum sollte ich es einschalten“. Nochmals nachgesehen, ob auch eine Unicode Version des Tools vorhanden war. Fehlanzeige.

Dann nach langem Suchen habe ich die Lösung gefunden.

Ganze 21 Zeichen müssen in meinem Aufruf des EssCmdQ eingefügt werden. Diese bewirken, dass auch Unicode Applikationen verarbeitet werden können.

set ESSCMDQ_UTF8MODE=1

Damit konnte ein Prozess aufgebaut werden welches in dem monatlichen Lauf die Outlines der Applikationen bearbeitet. Schön den Zähler zurücksetzt und die Outline strukturiert und kompakt macht.

startEsscmdq.bat

@ECHO OFF

@REM This file is created to start ESSCMDQ.

rem Set ESSBASEPATH

call „%~dp0\setEssbaseEnv.bat“

set PATH=%ESSBASEPATH%\bin;%PATH%

set ESSCMDQ_UTF8MODE=1

%ESSBASEPATH%\bin\ESSCMDQ.exe %*

 

with start of script…

%ESSBASEPATH%\bin\ESSCMDQ.exe Esscmdq_Script.txt %*

 

Ein praktisches Tool welches in jeder Essbase Umgebung mit ASO Applikationen eingesetzt werden sollte.

 

Ihr Philip Hulsebosch.

Veröffentlicht in Essbase

Schreibe einen Kommentar