Montag, 14. Oktober 2013

VBox Images schrumpfen

Die Images von virtuellen Maschinen, wie z.B. die Virtual Box Images aus den Trainings auf dieser Seite, wachsen praktischerweise automatisch. Leider schrumpfen sie nie wieder von alleine, gerade wenn man viel herumprobiert kann das schnell viel Platz kosten. Hier eine Anleitung wie man die Image-Dateien wieder schrumpfen kann.


In diesem Beispiel ist das Image ca. 52 GB groß. Wichtig: das Schrumpfen funktioniert nur mit VDI-Dateien, VMDK Dateien müssen erst konvertiert werden mit VBoxManage clonehd, z.B.

d:\programme\Oracle\VirtualBox\VBoxManage.exe clonehd OEP-11.1.1.7-Klon-disk1.vmdk OEP-11.1.1.7-Klon-disk1.vdi --format VDI

Dann gilt es, so viel Platz wie möglich freizuschaffen. Alte Installationsdateien löschen, Datenbankfiles verkleinern (die Standardgrößen vom RCU sind viel zu groß für ein kleines Testsystem auf dem Entwicklerarbeitsplatz).
Danach muss der freie Speicherplatz mit Nullen überschrieben werden, sonst wird er von VBox nicht als frei erkannt. Das geht z.B. mit

dd if=/dev/zero of=zero.file
rm zero.file

Das Kommando bricht ab, sobald die Partition voll ist (Achtung: Benutzung auf eigene Gefahr, vorher Backup anlegen). Danach einfach das zero.file wieder löschen. Anschliessend die VBox herunterfahren, jetzt kann Virtual Box die Datei komprimieren mit

e:\VBox\Machines\OEP-11.1.1.7-Klon>d:\programme\Oracle\VirtualBox\VBoxManage.exe
modifyhd OEP-11.1.1.7-Klon-disk1.vdi --compact

Warten bis das Kommando bis 100% heraufzählt und das war es auch schon.


Bei meiner VM habe ich damit eine Reduktion von 52 GB auf 23 GB erreicht.

---8<------------------------------------------------------------------------------

UPDATE:
Ich bin von Lorenz Keller darauf hingewiesen worden, dass Mac Anwender beim Aufruf von VBoxManage den vollen Pfad zum VM-Image angeben müssen, ansonsten gibt es folgende Fehlermeldung:

$ VBoxManage modifyhd EM12cR4.vdi --compact
VBoxManage: error: Could not find file for the medium '/Volumes/Macintosh_HD/Users/oracle/EM12cR4.vdi' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component Medium, interface IMedium, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp

Richtig wäre

$ VBoxManage modifyhd /Volumes/Macintosh_SSD/Users/Shared/VirtualBox/EM12cR4/EM12cR4.vdi --compact

und schon klappt es auch mit dem Mac.

Donnerstag, 5. September 2013

ADF Mobile Handson Workshop in Hamburg, München und Berlin

Ein paar Kollegen haben einen ADF Mobile Handson Workshop ausgearbeitet, der in Kürze stattfindet:

Entwicklung von mobilen Anwendungen mit ADF Mobile

In diesem Workshop erlernen Sie das Basiswissen zu Oracle ADF Mobile, einer Technologie, mit der Sie ohne spezielle Kenntnisse native Anwendungen für mobile Endgeräte (iOS, Android) entwicklen können. Im Verlauf des Workshops werden Sie eine mobile Anwendung erstellen, die auf Ihrem Smartphone oder Tablet (Android, iOS) ablauffähig ist. Vorkenntnisse in Oracle ADF und dem Umgang mit dem JDeveloper sind hilfreich, werden aber nicht vorausgesetzt.
Während des Workshops benutzen Sie Ihren eigenen Laptop zur Entwicklung einer mobilen Anwendung mit Hilfe des Oracle JDeveloper. Anschließend werden Sie die Anwendung auf einem mobilen Endgerät oder in einem Emulator deployen und ausführen.
Registrieren Sie sich für die Veranstaltungen in Hamburg, München oder Berlin und lesen Sie bitte die folgenden Erläuterungen. Der Laptop sollte möglichst vollständig VOR der Veranstaltung konfiguriert sein, damit  Sie die Zeit optimal für den Workshop nutzen können.

Datum & Zeit

  • Hamburg:   1. Oktober 2013, 10.00 - 17.00 Uhr
  • München:   9. Oktober, 10.00 - 17.00 Uhr
  • Berlin:         23. Oktober, 10.00 - 17.00 Uhr
Die Veranstaltung wird eine Kombination von Präsentation und Übungen sein, die unter Anleitung von den Teilnehmern durchgeführt werden.
Präsentation und Folien sind in Deutsch, die Anleitung für die praktische Übungen ist in Englisch verfasst.

Für den Workshop ist folgende Agenda geplant:

Vorträge
  • Begrüßung und Vorstellung
  • Oracle ADF Mobile - Überblick
  • Entwicklung von ADF Mobile-Anwendungen
  • Web Services, lokale Datenhaltung und Gerätefunktionalität
  • Deployment von mobilen Anwendungen
  • Security und Debugging (optional)
Hands-On

  • Setup und Test der Umgebung
  • Erstellen einer ADF Mobile-Anwendung
  • Deployment und Test der Anwendung
 >>>Weitere Details auf der offiziellen Anmeldeseite <<<

Montag, 26. August 2013

Fix: Nach Upgrade auf Oracle Linux 6.4 incl. neuer X.Org-Treiber hängt OL beim Start


Das Problem tritt z.B. auf, wenn man ein Oracle Linux unter VBox regelmässig aktualisiert und mit OL 6.4 auch eine neue X.Org-Version bekommt. Beim Booten bleibt die VM dann stehen, bevor sie in den grafischen Modus schalten kann. Ein Kollege hat die folgende Lösung gefunden:

---8< snip ------------------------------------------------------------

Just last week Oracle released Oracle Linux 6.4 and so it was time that Fat Bloke updated his Oracle Linux guests.
So after a simple and quick://

yum update
I was in a position to reboot into my freshly updated 6.4 vm. But after rebooting I found myself looking at a stuck screen that looked a little like this://
The reason for getting stuck like this was because the installed VirtualBox Guest Additions were configured for an older X11 server, and the new update had a newer version.

So here's how to fix this://At this screen, type Ctrl-Alt-F2 to get to another virtual display;
login, and as root type://

/etc/init.d/vboxadd-x11 setup

like this://

reboot

et, voila!
Hope this helps,

-FB

---8< snip ------------------------------------------------------------

Vielen Dank! Many Thanks!

Dienstag, 6. August 2013

Oracle Business Transaction Management live auf der DOAG Jahreskonferenz 2013



Für alle die keine Zeit haben, das Oracle Business Transaction Management Hands-on Training selbst durchzuarbeiten oder einfach nur interessiert sind, stelle ich eine Zusammenfassung im schnellen Durchlauf auf der DOAG-Konferenz 2013 vor.
Neben vielen anderen hervorragenden Beiträgen befindet sich meiner im Programm am 21.11. um 12:00.

Donnerstag, 20. Juni 2013

Oracle Fusion Middleware war wieder die #1 in 2012

Auch wenn es in diesem BLOG um Technik geht, ist das mal ein Grund hier einen kleinen Sektkorken knallen zu lassen. "Oracle Is #1 in the Application Server Market Segment for 2012". Quelle: Reuters

Montag, 3. Juni 2013

Oracle Business Transaction Management Handson Workshop


Der folgende Handson-Workshop gibt eine Einführung in das Oracle Business Transaction Management (OBTM). Er baut auf den vorhergehenden Workshops auf, so dass Standardtägigkeiten wie die Installation des WebLogic Servers und das anlegen einer Domain hier nicht mehr detailiert beschrieben werden. Erwähnt werden dann lediglich ggf. spezielle Konfigurations-Optionen.

OBTM: Alerting

OBTM verfügt über einen Alerting-Mechanismus um bestimmte Zustände automatisch zu erkennen. Dabei kann es sich z.B. um Fehler-Zustände oder SLA-Verletzung handeln, aber auch dass z.B. eine Nachricht mit einem bestimmten Inhalt verschickt wurde.

SLA Monitoring

Um eine SLA-Policy zu erstellen, wird zunächst die betreffende Transaktion ausgewählt.



Über den Menüpunkt 'SLA Policy|Transaction SLA' wird die Policy erstellt. Hierbei kann gewählt werden ob ein absoluter Wert, ein Wert relativ zum Durchschnitt eines Zeitraums oder eine mandantenbezogene Erfassung als Grundlage genommen wird. Für dieses Tutorial wird der Fixed Value ausgewählt.


In dem sich öffnenden Dialog kann die SLA-Policy definiert werden. Neben dem Zeitfenster können über den Button 'Choose Instruments' die Metriken festgelegt werden.


In dem sich neu öffnenden Dialog kann jetzt auch einer Menge von Metriken ausgewählt werden. Für dieses Beispiel wird 'Max Response Time' gewählt, beenden mit OK.


Die ausgewählte Metrik wird automatisch übernommen und kann jetzt konfiguriert werden. Für dieses Tutorial nehmen wir 500ms als Schwellwert für die Warnung und 1000ms als Schwellwert für den Fehlerfall. Beenden mit 'Apply'.


Die neue SLA Policy wird nun auch im Explorer unter 'SLA Policies' angezeigt.

Jetzt wird wieder ein wenig Last benötigt, daher wird der HelloProxy wieder ein paar Mal aus dem Weblogic Test Client aufgerufen.


Wenn die Transaktion etwas länger nicht benutzt wurde ist die Wahrscheinlichkeit sehr groß, dass zumindest der erste Aufruf länger dauert als in der SLA Policy festgelegt wurde. Dadurch sollte in der Operational Health Summary unter SLA Alerts jetzt etwas angezeigt werden. Falls nicht, kann die Policy auch nachträglich geändert werden. Wenn die Werte klein genug gesetzt werden, wird auch mindestens eine Warning angezeigt. Per Klick auf die Zahl hinter Warnings öffnet sich ein kleines Popup-Fenster, welches anzeigt gegen welche SLA Policy hier verstoßen wurde.
Per Klick auf das Lupensymbol lassen sich weitere Details anzeigen.


Es öffnet sich ein Detailfenster zur verletzten SLA-Policy mit einer Beschreibung. Über den Button 'Open Message Log' lassen sich die betreffenden Messages anzeigen.


Es öffnet sich eine neues Fenster mit dem Message Log. Hier lassen sich auch die beiden Nachrichten, welche die SLA-Verletzung hervorgerufen hatten, finden.


Eine weitere Stelle, an der die SLA-Alerts zu finden sind, ist direkt bei den Eigenschaften der Transaktion auf dem Reiter SLA Compliance. Per Klick auf das Lupensymbol lassen sie die Werte und Grenzwerte auch grafisch darstellen.

Condition Alerts

OBTM kann nicht nur auf Fehlerzustände monitoren, sondern auch auf Nachrichteninhalte, z.B. um bei Aufträgen in besondere Höhe eine Information zu liefern.


Eingeschaltet wird diese Möglichkeit in den Eigenschaften der Transaktion auf dem Reiter Conditions. Standardmässig ist diese ausgeschaltet, zum Einschalten den 'Edit'-Button klicken.


In dem sich öffnenden Popup-Window wird das Monitoring aktiviert, bestätigen mit Apply


Jetzt kann eine neue Bedinung erfasst werden via 'Transaction Condition|Content Condition for Greeting'



In dem sich neu öffnenden Dialog kann jetzt ein Kriterium erfasst werden, z.B. Name (die bereits bestehende Property) = 'Wichtigmann'. Beenden mit Apply.


Jetzt wird mit dem Weblogic Test Client und dem richtigen Parameter (Wichtigmann) wieder etwas Last gemacht.


Danach wird bei der Transaction auf dem Reiter Conditions unter Condition Alerts die Anzahl der entsprechenden Nachrichten angezeigt.


Auch in der Operational Health Summary werden die Condition Alerts angezeigt. Per Klick auf die Anzahl wird angezeigt, welche Conditions erfüllt wurden.

Damit ist das Handson Tutorial zum Oracle Business Transaction Management abgeschlossen.

---

Freitag, 31. Mai 2013

OBTM: Mandantenfähigkeit konfigurieren

Da Dienste im Unternehmen hoffentlich Abteilungs- oder Bereichsübergreifend eingesetzt werden, macht es Sinn das Monitoring mandantenfähig aufzusetzen. Dieses wird in OBTM durch die sog. Consumers umgesetzt. Letztendlich werden Consumers durch speziell gekennzeichnete Properties unterschieden.


Um die Mandantenfähigkeit zu aktivieren, wird also zunächst für einen Service eine neue Property angelegt über 'Create|Message Property on sayHello'


Dann wieder 'Pick from Message...' auswählen...


... und in dem sich öffnenden Dialog wieder arg0 auswählen. Beenden mit OK.


Dann wird der Haken gesetzt bei 'Map to customer through attribute'. Damit wird OBTM mitgeteilt, dass es sich um eine spezielle Property handelt, welchen den Consumer beinhaltet. Beenden mit OK.


Auch diese Property wird mit der bereits bestehenden 'Name'-Property im Properties-Tab dargestellt. Durch das Personen-Symbol vor der Property wird gekennzeichnet, dass es sich hierbei um einen Property handelt die einen Consumer identifiziert.


Ebenso wird die Consumer-Property im Properties-Tab der Transaction angezeigt.


Damit die Consumer-Property für die Greeting-Transaktion auch greift, muss in den Einstellungen der Transaction (Modify|Edit Greeting) auf dem Tab 'Segmentation' noch der Haken bei 'Enable consumer segmentation' gesetzt werden.


Um die Consumer jetzt zu erfassen, starten wir wieder den WebLogic Test Client und rufen den HelloProxy-Service ein paar Mal jeweils mit 'Bereich-1' und 'Bereich-2' auf.


Die Segmentierung der Transaktion nach Consumer lässt sich dann auf dem Tab Analysis, sub-Tab Consumer Usage anzeigen. Die 'Unknown'-Einträge sind alte Einträge aus der Zeit bevor die Segmentierung eingeschaltet war.


Auch im Bereich Consumers werden nach kurzer Zeit die beiden Bereiche angezeigt (ggf. ca. 5min. warten). Dabei werden für die beiden Mandanten unterschiedliche Laufzeiten für die Services angezeigt, nämlich für jeden Mandanten die bei der Bearbeitung seiner spezifischen Anfragen angefallenen Werte.


Verursacht man absichtlich eine Störung, z.B. indem man den SOA-Server herunterfährt und startet während der Downtime nur Anfragen für einen Mandanten (z.B. Bereich-1), dann wird auch nur für diesen das Problem angezeigt. Im Bild oben sieht man, dass die Kurven für gestartete und erfolgreich abgeschlossene Transaktionen deutlich auseinander gehen. Startet man während der Downtime keine Transaktionen für den anderen Mandanten, wird diesem auch kein Problem angezeigt.

Somit lassen sich über das Consumers-Feature von OBTM auch mandantenspezifische Auswertungen durchführen.

---> Alerting

Mittwoch, 15. Mai 2013

OBTM: Arbeiten mit Properties

Properties dienen hauptsächlich dazu, um bestimmte Eigenschaften einer Transaktion hervorzuheben. So kann z.B. bei einer Bestellung schnell die Kunden- oder Auftragsnummer eingesehen werden, ohne dass die kompletten SOAP-Nachrichten untersucht werden müssen.
Dadurch, dass wir bei der Erstellung der Business Transaction gleich eine Property mit angelegt haben, kann diese auch im folgenden Beispiel direkt benutzt werden.


Sofern noch keine Property angelegt wurde, kann dies auch einfach nachgeholt werden, indem man in einer beliebigen Darstellung einen Service auswählt und dann 'Create|Message Property on ...' auswählt.
Für die folgende Übung sollte der HelloProxy Service ein paar Mal mit unterschiedlichen Parametern aufgerufen werden.


Die Properties werden dann z.B. angezeigt bei der Transaktion unter Instances.


Auch im Message Log werden die Properties in separaten Spalten aufgeführt. Über den 'Choose Content...'-Link kann die Ausgabe gefiltert werden.


Die Auswahlbox hinter 'Name' wird auf 'matching' gestellt.


Dann wird ein Suchtext eingegeben, weiter mit OK.


Dann auf 'Search' klicken (und auf den Zeitrahmen links) achten, und es werden nur noch Einträge im Message Log angezeigt, die dem Suchbegriff entsprechen.


Eine weitere Möglichkeit, die Nachrichten zu durchsuchen, bietet der Menüpunkt 'View|Search Message Log'.


In einem separaten Fenster öffnet sich das Search Message Log Tool. Hier kann die Suche wieder über den 'Choose Content ...'-Link eingegrenzt werden.


Mit entsprechender Eingrenzung werden wieder nur die Messages angezeigt, bei denen ein Property einen bestimmten Wert enthält, in diesem Fall Name=Arne. In der Detail Pane werden hier zusätzlich die Details der jeweiligen Nachricht angezeigt.


Der 'View XML'-Link macht genau das: das Ergebnis in XML anzeigen.

Die Properties können also genutzt werden, um die für den jeweiligen Anwender relevanten Informationen hervorzuheben. In Real-World Szenarien wären das z.B. Kunden-, Auftrags- oder Vorgangsnummern, auf die schnell zugegriffen werden kann ohne dass die kompletten Nachrichten untersucht werden.
Ruft beispielsweise ein Kunde im Call-Center an und fragt nach seiner Bestellung, kann auf diese Weise schnell herausgefunden werden, ob die Verarbeitung des Auftrags mit der entsprechenden Nummer irgendwo hängt.

---> Mandantenfähigkeit konfigurieren

Montag, 13. Mai 2013

OBTM: Business Transaction definieren

Nachdem nun das Setup des Szenarios abgeschlossen ist, kann eine erste Business-Transaction definiert werden. Hierzu wird wieder die BTMUI gestartet.


Unter dem Menüpunkt 'Create' geht es los mit 'Transaction'


Jetzt muss eine Operation gewählt werden, mit der die Transaktion startet. In diesem Fall wird sayHello unter sayHelloProxyService ausgewählt.


Die weiteren Operationen werden aufgrund der bereits erfolgten Discovery automatisch gefunden.


Das Instance- und Message Logging wird auf dem Tab 'Logging' eingeschaltet. Für das Message Logging müssen unten die Operationen ausgewählt werden.


Auf dem Tab 'Message Keys' können noch die Properties definiert werden. Properties werden auch protokolliert, wenn nicht die gesamte Nachricht abgespeichert wird. 
Hierzu wird das Dropdown Menu mit dem Titel 'Message Fingerprint' aufgeklappt und 'New Property...' ausgewählt.


In den sich öffnenden Dialog gibt es mehrere Möglichkeiten, die Property zu definieren. In diesem Beispiel geht es weiter via 'Pick from Message...'.


Die Auswahl fällt in diesem Fall leicht, arg0 auswählen und weiter mit OK.


Anstelle von 'Pick from Message...' wird nun request.sayHello.arg0 angezeigt. Die Property bekommt noch einen Namen wie hier z.B. 'Name'. Dann den Dialog mit OK schliessen.


Der Vorgang wird für alle vier Keys wiederholt. Beim Start key von bpelprocess1_client_ep.process wird 'Name' bereits als Alternative angeboten und kann direkt ausgewählt werden.


Auf dem letzten Tab sind die Speicher-Einstellungen. Hier sollte der Haken 'Text index message content' per default gesetzt sein. Der Dialog wird mit OK geschlossen.


Die neue Transaction wird nun unter Transactions angezeigt. Weiter geht es in der WLS Console der Domain, in welcher der sayHelloProxyService läuft.


Wie im vorherigen Kapitel wird der Service jetzt wieder mehrfach ausgeführt. Dann geht es wieder zurück in die BTM UI.


Unter Transactions werden jetzt die ermittelten Informationen angezeigt. Über das Plus (+) vor Greeting werden die beteiligten Operations angezeigt. Im Detail-Fenster wird unten das Transaction Summary Dashboard angezeigt. In der schematischen Darstellung werden jetzt auch die durchschnittlichen Antwortzeiten dargestellt.


Im Tab 'Analysis' werden weitere Informationen angezeigt wie Started Transactions sowie Max und Average Response Time.


Unter 'Instances' werden - je nach Filter - die bisherigen Instanzen angezeigt. Per Klick auf eine eine Instanz öffnet sich das Fenster mit den protokollierten Messages.


Neben einer schematischen Darstellung der Transaction werden hier alle protokollierten Messages aufgeführt. Per Klick auf das Lupensymbol links lassen sich diese anzeigen.


In einem neuen Fenster wird die gespeicherte Nachricht angezeigt. Über einen der beiden 'View XML'-Links lässt sich die jeweilige Nachricht vollständig anzeigen.


Die Nachricht wird in einem neuen Browser-Fenster geöffnet. Anschliessend können die beiden extra-Fenster wieder geschlossen werden, so dass nur noch die BTM-UI geöffnet ist.


Die Messages können auch über den Tab 'Message Log' eingesehen werden.


Im Tab 'Properties' werden alle definierten Properties angezeigt.

Damit ist die erste Business Transaction definiert und kann im weiteren genutzt werden.