ORDIX News. Hysterie um Histogramme Details zu Statistiken, die für den kostenbasierenden Oracle Optimizer wichtig sind S. 8

Größe: px
Ab Seite anzeigen:

Download "ORDIX News. Hysterie um Histogramme Details zu Statistiken, die für den kostenbasierenden Oracle Optimizer wichtig sind S. 8"

Transkript

1 Ein guter Projektmanager ist ein Manager S. 20 ORDIX News Das IT-Magazin der ORDIX AG Ausgabe 4/2005 2,20 Hysterie um Histogramme Details zu Statistiken, die für den kostenbasierenden Oracle Optimizer wichtig sind S. 8 Tiefe Einblicke in Solaris 10 mit DTrace Systemereignisse komfortabel protokollieren S. 12 Hibernate: Hält Java Winterschlaf? Java-Objekte in einer Datenbank zu persistieren, ist einfach wie nie zuvor. S. 39 Top Secret: Securitiy Features im IDS Daten in der Datenbank verschlüsseln S. 26

2 Editorial Paderborn, Dezember 2005 From open to closed? Seit Jahren propagiere ich an dieser Stelle unserer News den Open Source Gedanken. Einen schweren Dämpfer hat mein und damit auch das ORDIX-Engagement durch eine Mitteilung auf dem Ticker einer Internet News Agentur erhalten: JBoss, Vermarkter des gleichnamigen Open Source Application Servers, hat sich den Unmut der Open Source Gemeinde zugezogen. Sie meint, die Methoden der Firma, die mit professionellem Support rund um das Produkt in den vergangenen Jahren sehr erfolgreich war, seien nicht mit dem Open Source Gedanken zu vereinbaren. Konkret entzündete sich der Ärger hierzulande an einer Abmahnung, die JBoss einem Darmstädter J2EE-Beratungsunternehmen zugestellt hat. Darin heißt es, dass das Unternehmen jeglichen Gebrauch der Marke JBoss künftig zu unterlassen habe, ansonsten drohten Strafen im sechsstelligen Euro-Bereich. Konkret: Euro pro Fall, der Streitwert beträgt Euro. Das Darmstädter Unternehmen war bis August JBoss-Partner und bietet zudem herstellerunabhängige Schulungen und Beratung. Damit schadet aus meiner Sicht JBoss massiv dem Gedanken von Open Source und versucht eine Art Monopolstellung zu erhalten; leider typisch für amerikanische Unternehmen. Wir werden versuchen, unsere JBoss-Unterstützung in Projekten auch ohne großes Aufhebens weiterhin auszuführen. Ob uns das gelingt? Wir werden sehen! Es liegt auch an Ihnen. Die JBoss-Attacke ist sicherlich nicht der Grund, warum es dieses Mal nicht ganz so viele Java-Artikel in unserer Weihnachtsausgabe gibt. Auch nicht, dass Larry R. bei unserem letzten Rätsel nur wenig Unterstützung erhalten hat. Freuen Sie sich vielmehr auf unterschiedliche Artikel zum Thema Linux, Oracle, DTrace (Solaris) und Windows. Da wir beim letzten Larry-Rätsel keine Gewinner hatten, machen wir es Ihnen dieses Mal leichter. Rätsel und Gewinnchancen finden Sie in diesem Heft zu Hauf. Ich wünsche Ihnen, dass Ihre Wünsche zum Weihnachtsfest in Erfüllung gehen und dass das Leben und Arbeiten 2006 weiterhin Spaß macht. ORDIX beendet im Dezember seine Aktionen zum 15-jährigen Jubiläum. Vielleicht konnten Sie davon profitieren. Wenn nicht: wir sind offen für Ihre Anfragen. Meine Mitarbeiter und ich freuen uns, wenn wir Ihnen bei der Bearbeitung von Anfragen etc. behilflich sein können. Von daher wünsche ich Ihnen, wie in jedem Jahr, alles Gute für das kommende Jahr, Gesundheit und Erfolg. Bei letzterem werden Ihnen die ORDIX-Mitarbeiter sicher gerne helfen - ob mit oder ohne Open Source. Bis dahin wünsche ich Ihnen alles Gute. X Wolfgang Kögler 2

3 Inhaltsverzeichnis Standards Aktuell 02...Editorial 03...Inhalt 23...Impressum 24...Seminarübersicht bis Juli Larry Ratlos und die Linux Distributionen 23...Rückblick DOAG Schulungstag und DOAG Konferenz 29...Rückblick Fachtreff J2EE Servertechnologie 29...Weihnachtsrätsel Java/XML 04...Von POJOs und anämischen Objekten Der Artikel betrachtet Probleme in der ob jektorientierten Software-Entwicklung. Dabei werden das Anemic Object Anti- Pattern und das Konzept des POJO vorgestellt J2EE und Persistenz: Ein heißes Eisen (Teil II) Im letzten Teil der Miniserie zu J2EE und Persistenz werden die Pros und Contras des gewählten Ansatzes anhand konkreter Projekterfahrungen erläutert Hibernate: Hält Java Winterschlaf? Titelthema Java-Programmierer können aufatmen. Das Persistieren von Java-Objekten in einer Datenbank ist einfach, wie nie zuvor. Dank Hibernate, einer Open Source Persistenzschicht für Java, ist diese Aufgabe nur noch eine Konfigurationssache. Titelthema Datenbanken 08...Hysterie um Histogramme Details zu Statistiken, die für den kostenbasierenden Optimizer von Oracle wichtig sind. Durch die Analyse von Tabellen etc. kann man sich Performance-Vorteile verschaffen aber auch zunichte machen Jobsteuerung mit dem Microsoft SQL Server (Teil I) Grundlagen der Jobsteuerung mit dem Microsoft SQL Server. Beispielhaft werden Möglichkeiten gezeigt, Aufträge mit mehreren Auftragsschritten unterschiedlichen Typs anzulegen Top Secret: Verschlüsseln auf Spaltenebene... Das neueste Security Feature des Informix Dynamic Servers Mit Hilfe der Column Level Encryption können die Daten nun auch innerhalb der Datenbank verschlüsselt werden PL/SQL Web-Services (Teil I) Wir stellen das Programm JPublisher vor, mit dem eine Veröffentlichung von PL/SQL-Programmen als Web-Service leicht möglich ist Neues bei Oracle: 10gR2 (Teil I) Übersicht über neue Features von Oracle 10g Release 2. Titelthema 46...Oracle 10g (Teil VI): Automatic Workload Repository Überblick über das Automatic Workload Repository (AWR), mit dem Oracle seit Version 10g Daten sammelt und auswertet. AWR ist Statspack-Kennern nicht ganz neu. Projekt management 20...Ein guter Titelthema Projektmanager ist ein Manager Zusammenstellung der wesentlichen Erfolgsfaktoren im Bereich Projektmanagement und der notwendigen Kompetenzen und Fähigkeiten, die ein erfolgreicher Pro - jektmanager braucht Seminar IT-Projektmanagement Unix/Linux/Open Source Titelthema 12...Tiefe Einblicke in Solaris 10 mit DTrace Mit Hilfe von DTrace stellt Sun für Solaris 10 ein mächtiges und komfortables Werkzeug zur Verfügung, um unterschiedliche Systemereignisse zu protokollieren und damit Programme z. B. in Problemfällen zu analysieren oder Performance- Engpässe aufzudecken Es ist nicht einfach, wenn man`s doppelt nimmt!? LDAP im shared-nothing Cluster durch Heartbeat unter Linux ist eine preisgünstige Alternative zu herkömmlichen Cluster-Lösungen. Wir zeigen eine verblüffend einfache Konfiguration. 3

4 Java/XML Ein Lösungsansatz für Probleme in der objektorientierten Software-Entwicklung Von POJOs und anämischen Objekten J2EE, SOA und wie sie alle heißen: Bei allen neuen Techniken, Technologien und Spezifikationen sollten wir in der Software-Entwicklung nicht den Blick für etwas Wesentliches verlieren. Dass das aber schnell passieren und was man dagegen machen kann, entdecken Sie in diesem Artikel. Dieser Artikel richtet sich an Entwickler objektorientierter (Java-) Lösungen und solche, die es werden wollen. Es waren einmal Sieben Stufen zur objektbasierten Glückseligkeit Geht es Ihnen auch so? Manchmal kommt einem etwas seltsam vor, aber man weiß nicht genau, was es ist. Haben Sie in letzter Zeit mal einen skeptischen Blick auf Ihre Geschäftsobjekte geworfen, d. h. in die Klassen, in denen Sie ihre Geschäftsdaten erwarten? Sie finden dort sicher Ihre sämtlichen Geschäftsdaten sauber modelliert vor. In den meisten Fällen auch noch mit den entsprechenden Get- und Set-Methoden. Der eine oder andere Konstruktor ist meist ebenfalls anzutreffen. Soweit so gut. Und wenn Sie dort noch wesentlich mehr (Methoden) antreffen, brauchen Sie an dieser Stelle vermutlich gar nicht erst weiter zu lesen. Sollten Sie aber kaum mehr als das Genannte vorfinden, dann sollten Sie zumindest ein wenig ins Grübeln kommen: War da nicht etwas mit der Objektorientierung? Wenn man die Get- und Set-Methoden und den Konstruktor vernachlässigt, stellt man fest, dass man es in den Klassen eigentlich nur mit den klassischen Strukturen der prozeduralen Programmiersprachen zu tun hat. Dazugehörende Geschäftslogik: Fehlanzeige! Anders ausgedrückt, wodurch unterscheidet sich diese Implementierung von beispielsweise einem C-Programm mit einem einfachen struct? Sind wir auf Bertrand Meyers Sieben Stufen zur objektbasierten Glückseligkeit [1] etwas ins Stolpern geraten? Offensichtlich. Die Frage ist nur, ob uns nicht jemand anderes aus dem Tritt gebracht hat? In der aktuellen Software-Entwicklung gibt es einige Gesellen, denen so etwas zuzutrauen ist. Schuld ist das Management Vermutlich der älteste unter diesen Gesellen ist die Managementoder Controller-Klasse, die durchaus nahezu immer ihre Daseinsberechtigung hat. Ursprünglich gedacht, um die eigentlichen Geschäftsobjekte zu verwalten, ist die Versuchung groß, dort auch gleich ein wenig Geschäftslogik unterzubringen. Und wenn Sie nicht aufpassen, sind die Grenzen bald verwischt. Und das ist noch steigerungsfähig: Beim nächsten Refactoring wird die restliche Geschäftslogik sauber aus den ursprünglichen Geschäftsklassen entfernt und in die Management-Klasse(n) verlagert. Die ursprüngliche Geschäftsklasse wird somit zur reinen Datenstruktur degradiert. Anämische Objekte Martin Fowler nennt so etwas Anämische Objekte und hat daraus gleich ein schreckliches Anti-Pattern gemacht, das AnemicDomain- Model. ( The fundamental horror of this antipattern is, that it s so contrary to the basic idea of object-oriented design; which is to combine data and process together. ) Auch er nennt Ross und Reiter als weitere Anstifter für dieses So-sollte-es-nicht-sein : Dies sind alle Frameworks, Spezifikationen und Bibliotheken, die umfangreiche Konventionen und externe Abhängigkeiten für die eigenen Klassen erzwingen. Das können beispielsweise zwingend zu implementierende Schnittstellen, einzuhaltende Namenskonventionen oder notwendige Annotationen sein. Mit den J2EE Entity Beans sind auch gleich die Lieblingsschurken der Szene ausgemacht. Doch auch JDO oder andere Object-Relational(O/R)-Mapper verführen den ahnungslosen Entwickler schnell und komfortabel, diese blutarmen Klassen zu entwerfen. Und da passt es sehr gut, dass sich momentan alles um Services dreht: Eine service-orientierte Architektur (SOA), Web-Services oder zumindest aber ein Service Layer muss die Applikation haben. Darin lässt sich dann hervorragend die gesamte Geschäftslogik unterbringen. Somit fügt sich zusammen, was nicht zusammen gehört und alles hat seinen Platz: Die Daten in den Entity-Klassen und die Business-Logik in den Service-Methoden bzw. -Funktionen. Weit verbreitet Das Erstaunliche an diesem Anti-Pattern ist, dass es den Entwicklern mit einer datenzentrierten Vergangenheit kaum auffällt. Da es doch 4

5 Java/XML noch den einen oder anderen Entwickler mit dieser Vergangenheit gibt, kann man sich die Verbreitung dieses Anti-Patterns ausmalen. Ehre wem Ehre gebührt Zur Ehrenrettung aller Services muss auf jeden Fall gesagt werden, dass auch sie einen berechtigten und wichtigen Platz in der Software-Technologie haben. Allerdings ist ihre Aufgabe oft wesentlich dedizierter als das, was ich manchmal zu Gesicht bekomme. Diese Services sollten nämlich in einer möglichst dünnen Schicht über den Geschäftsobjekten liegen und enthalten per Definition erst einmal keine Geschäftsregeln und kein Business-Know-how. Vielmehr benutzen sie dafür die ihnen unterliegenden Geschäftsobjekte, um beispielsweise größere Aufgaben zu koordinieren oder mit anderen Anwendungen oder einem Benutzer zu kommunizieren. Retter in der Not Bei so vielen Bösewichtern fehlt der heldenhafte Retter in der Not. Und es gibt ihn tatsächlich, wenngleich sein Name wenig ruhmreich klingt: POJO. POJO ist die Abkürzung für Plain Old Java Object, also ein eigentlich ganz normales Objekt der guten, alten, objektorientierten Schule. Der Ausdruck wurde u. a. von Martin Fowler geprägt, um diese Objekte von anderen zu unterscheiden, die mit vielen externen Abhängigkeiten und Konventionen belastet sind. Entity Bean versus Hibernate Dies ist keine Abrechnung mit den J2EE EJBs zumal eine solche mit der Einführung von EJB 3.0 etwas zu spät käme. Es geht in diesem Beitrag um ein gutes Beispiel für die hier genannten Probleme. Von daher stellt der Artikel auch keinen ansatzweise vollständigen Vergleich dar. Während Hibernate als POJO-Implementierung kaum Vorgaben bei der Programmierung der Geschäftsobjekte macht, mussten wir bei EJBs bisher immer das Remote und Home Interface sowie etliche, oft überflüssige Callback-Methoden implementieren. Durch Fleißarbeit oder entsprechende Tools war dies bisher noch zu kompensieren. Das gelingt jedoch dann nicht mehr, wenn objektorientierte Grundlagen wie Vererbung und Polymorphie der EJBs untereinander nicht möglich sind. Das hat dann gleichzeitig einen wesentlichen Einfluss auf das Design der Anwendung. Wir waren mit der Objektorientierung einmal angetreten, die fachlichen Probleme dieser Welt zu lösen. Daher ist es ernüchternd, festzustellen, dass wir uns für bestimmte technische Anforderungen, wie z. B. die Möglichkeit einer Anwendungsverteilung, von Anfang an in unseren Ausdrucksmitteln beschneiden lassen. Abb. 1: Anmerkungen zur Implementierung. Mit POJOs lassen sich also ohne externe Zwänge alle Geschäftsdaten, -regeln und -verfahren modellieren. Der Entwickler kann sich voll und ganz auf die fachliche Entwicklung konzentrieren und sich dabei aus dem vollen Baukasten der Objektorientierung bedienen. POJOs stellen zwar bei weitem keine Garantie für gutes Design dar, sind aber zumindest eine gute Grundlage dafür. Rein technisch und organisatorisch lässt sich auf jeden Fall sagen, dass ein POJO durch die in sich ruhende Unabhängigkeit leichter wart- und wiederverwendbar ist. POJOs stellen auch eine wichtige Basis für eine komponentenorientierte Architektur dar. Das fängt bereits mit der guten Testbarkeit eines POJOs an. public class Umsatzberechnung { // 1. ext. Abhängigkeit (Logging): private final static Log log = new SimpleLog("TEST"); public double berechnegesamtumsatz() { // 2. ext. Abhängigkeit (Datenquelle): TestDatenKundenDB kundendb = new TestDatenKundenDB(); Kunde[] allekunden = kundendb.getall(); double sum = 0; for (int i = 0; i < allekunden.length; i++) { log.debug("addiere Kunde " + allekunden[i].getname()); sum += allekunden[i].getgesamtumsatz(); return sum; public static void main(string[] args) { Umsatzberechnung berechnung = new Umsatzberechnung() ; System.out.println(berechnung.berechneGesamtUmsatz()); Abb. 2: Beispiel für eine Umsatzberechnung mit zwei externen Referenzen. 5

6 Java/XML public class Umsatzberechnung { private Log log; private KundenDB kundendb; public double berechnegesamtumsatz() { // 1. ext. Abhängigkeit (Datenquelle): Kunde[] allekunden = kundendb.getall(); double sum = 0; for (int i = 0; i < allekunden.length; i++) { // 2. ext. Abhängigkeit (Logging): log.debug("addiere Kunde " + allekunden[i].getname()); sum += allekunden[i].getgesamtumsatz(); return sum; public void setkundendb(kundendb kundendb) { this.kundendb = kundendb; public void setlog(log log) { this.log = log; public static void main(string[] args) { Umsatzberechnung berechnung = new Umsatzberechnung() ; berechnung.setkundendb(new TestDatenKundenDB()); berechnung.setlog(new SimpleLog("TEST")); System.out.println(berechnung.berechneGesamtUmsatz()); Abb. 3: Beispiel für eine mit dem Dependency Injection Prinzip verbesserte Umsatzberechnung. Versuchen Sie dagegen, mal eben auf die Schnelle ein Entity Bean zu testen. Diese Beans sind perfekt in die J2EE-Umgebung integriert, so dass ein Herauslösen insbesondere nur zu Testzwecken eine echte Herausforderung darstellt. Diese Schwachstelle ist aber mittlerweile identifiziert und geht mit der Enterprise Java Beans (EJB) 3.0 Spezifikation in Richtung POJO. Maßgeblichen Einfluss auf diese Entwicklung hatte das O/R-Mapping-Tool Hibernate (siehe Abbildung 1). Als einer der Stars der Open Source Szene hat Hibernate gezeigt, wie einfach eine Persistenzschicht aussehen kann und wie einfach sie benutzt werden kann. Lesen Sie mehr zu Hibernate auf Seite 39. Auch andere Open Source Projekte, wie z. B. Spring, Hivemind und PicoContainer, sind als kleine, aber feine (Teil-)Alternativen zu den großen und mächtigen J2EE-Umgebungen entstanden. Sie werden daher oft als leichtgewichtige Frameworks bezeichnet. Eine kleine Randbemerkung: Streng genommen sind auch Java- Beans keine POJOs, da sie per Konvention Get- und Set-Methoden enthalten müssen, um Zugriff auf ihre Properties zu ermöglichen. Allerdings sollten wir diesen Umstand nicht überbewerten. Objekte mit Objekten injizieren Interessant ist die Frage Wie gehen diese Frameworks mitsamt ihrer POJOs denn mit externen Abhängigkeiten um? Externe Abhängigkeiten komplett zu ignorieren, würde sie nutzlos machen. In Abbildung 2 ist eine Umsatzberechnung für Kunden dargestellt, die zwei externe Referenzen aufweist. Die eine externe Abhängigkeit entsteht durch die Verwendung der Log-Klasse und die andere durch die Instanziierung der Datenquelle für Kundendaten. Aktuell werden also ganz konkrete Implementierungen für das Logging und den Zugriff auf Kundendaten zum Test benutzt. Es ist nun aber nicht möglich, die Klasse unverändert auch für die Produktivdaten zu benutzen. Ähnliche Probleme hat man beim Ändern der Logging-Implementierung. Ändert man sie zu diesem Zweck, so ist sie wiederum nicht länger in einem automatischen Test zu verwenden. Es muss also eine Lösung geben. Auch hier haben wir es Martin Fowler zu verdanken, dass die eigentlich sehr einfache Lösung einheitlich unter Inversion-of-Control oder seit einiger Zeit unter Dependency Injection bekannt geworden ist. Dependency Injection heißt, dass die Kontrolle über bestimmte Vorgänge über eine definierte Schnittstelle nach außen verlagert wird. Dabei wird, meist zur Laufzeit, das Objekt mit anderen Objekten injiziert, die die fachfremden Aufgaben durchführen. Die oben genannten 6

7 I Java/XML Open Source Projekte, wie Spring und Hivemind, ermöglichen dies und machen davon sehr intensiven Gebrauch. Das einfache Beispiel aus Abbildung 2 ist in Abbildung 3 nach dem Dependency Injection Prinzip verbessert worden. Für die Kundendaten-Schnittstelle ist hier ein eigenes Interface definiert und verwendet worden, das alle notwendigen Methoden enthält. Für das Logging wiederum wurde auf das Interface des Apache Jakarta Common Logging Projektes zurückgegriffen. Entscheidend ist, dass die Klasse diese beiden Schnittstellen nach außen öffnet und dass das aufrufende Code-Segment diese Schnittstellen vorher setzt (in diesem Fall die main- Methode). Wer sagt, das sei nichts wirklich Neues, hat Recht. Es kommt nur auf die konsequente Umsetzung an. Nur so lässt sich diese Klasse in einem beliebigen Kontext einsetzen und insbesondere auch testen. Einige der o. g. Frameworks wie z. B. Hivemind können diese Verknüpfung auf Basis einer entsprechenden Definition auch automatisch erstellen (auto-wiring). Dem Entwickler bleibt diese Arbeit dann weitestgehend erspart. Fazit Die vorangegangenen Worte üben zwar Kritik an J2EE oder vergleichbaren Spezifikationen im Allgemeinen, jedoch keineswegs so grundlegend, dass der Autor von ihrer Verwendung abraten würde. Dazu haben sie zu viele Vorteile. Vor- und Nachteile sollten im jeweiligen Kontext individuell betrachtet werden. Allerdings sollten wir bei allen Spezifikationen und neuen Entwicklungstrends nie die ursprünglichen Grundlagen aus den Augen verlieren. Stolperfallen sollten als solche identifiziert und umgangen werden. Auch ein (selbst)kritischer Umgang mit neuen Technologien und Spezifikationen kann helfen. Wenn die Kritik dabei nicht nur die Qualität der eingesetzten Tools und Frameworks beleuchtet, sondern ebenfalls hinterfragt, inwieweit wir die dahinter stehenden Konzepte auch wirklich verstanden haben, dann sind wir einen Schritt weiter gekommen auf dem Weg zur produktiven Software-Entwicklung. Axel Röber Links Literatur Glossar Annotations Anti-Pattern JDO Inversion of Control Containers and the Dependency Injection pattern, Martin Fowler: AnemicDomainModel, Martin Fowler: POJO auf Wikipedia: [1] Objektorientierte Softwareentwicklung, Bertrand Meyer, Hanser Verlag, 1988 [2] JDO auf Wikipedia: [3] J2EE auf Wikipedia: J2EE O/R-Mapper Anmerkungen im Java Source Code, die zur Laufzeit des Programms ausgewertet werden können. Annotations sind seit Java 5 Bestandteil von Java. Als geistigen Vater dieser Annotations kann man das Open Source Projekt XDoclet ansehen. XDoclet erlaubte es, auch schon in früheren Java Versionen mit Annotations zu programmieren. Während Pattern oder Entwurfsmuster in der Software-Entwicklung beschreiben, wie man bestimmte Aufgabenstellungen löst, weist ein Anti-Pattern auf Lösungen und die damit verbundenen Probleme hin, die man besser nicht wählen sollte. Die Java Data Objects (JDO) sind eine Spezifikation für ein herstellerunabhängiges Framework zur persistenten Speicherung von Java-Objekten in transaktionalen Datenspeichern, zum Beispiel relationalen Datenbanken (Quelle: [2]). Java 2 Platform, Enterprise Edition ist die Spezifikation einer Standardarchitektur für die Ausführung von J2EE-Applikationen. Hierzu werden in der Spezifikation Softwarekomponenten und Dienste definiert, die primär in der Programmiersprache Java erstellt werden. Die Spezifikation dient dazu, einen allgemein akzeptierten Rahmen zur Verfügung zu haben, um mit modularen Komponenten verteilte, mehrschichtige Anwendungen zu entwickeln. Klar definierte Schnittstellen zwischen den Komponenten und Schichten sollen dafür sorgen, dass Softwarekomponenten unterschiedlicher Hersteller interoperabel sind, wenn sie sich an die Spezifikation halten, und dass die verteilte Anwendung gut skalierbar ist (Quelle: [3]). In jüngerer Zeit hat Sun diesen (und andere) Namen geändert, in dem es die 2 aus dem Namen genommen hat, um etwas versionsunabhängiger zu sein. Object/Rational Mapper werden eingesetzt, um in objektorientierten Programmiersprachen Objekte auf (Datenbank-)Relationen zu mappen. Mit ihnen ist es möglich, diese Objekte in einer relationalen Datenbank abzuspeichern und wieder daraus zu erstellen. Dies geschieht weitestgehend automatisch, so dass sich der Entwickler nicht um die eigentliche Datenbankschnittstelle kümmern muss. 7

8 Datenbanken Titelthema Statistiken unter Oracle 9i Erweiterte Statistiken unter Oracle 9i in der Praxis Hysterie um Histogramme Zur möglichst effizienten Ausführung von SQL-Statements kann bei Oracle der Cost Based Optimizer eingesetzt werden. Dieser erstellt den Ausführungsplan anhand statistischer Informationen, die über die Daten vorliegen. Hierbei spielt die Güte der Statistik offenbar eine große Rolle. Aber auch andere Faktoren sind zu berücksichtigen. Dieser Artikel richtet sich an Oracle Datenbankadministratoren, die sich mit dem Thema Statistikerzeugung und -pflege unter Oracle 9/10 beschäftigen. Es werden Details zu Statistiken angesprochen, die für den kostenbasierenden Optimizer von Oracle wichtig sind. Durch die Analyse von Tabellen etc. kann man sich Performance-Vorteile verschaffen aber auch zunichte machen. Dieser Artikel richtet sich an Oracle Datenbankadministratoren, die sich mit dem Thema Statistikerzeugung und -pflege unter Oracle 9/10 beschäftigen. Der Gleichverteilungsansatz Gegenüber dem Rule Based Optimizer (RBO), der ein starres Regelwerk bei der Erstellung des Ausführungsplans abarbeitet, fließen bei dem Cost Based Optimizer (CBO) auch statistische Daten bei der Entscheidungsfindung ein. Dies kann insbesondere dann von Vorteil sein, wenn die Daten nicht gleich verteilt sind. Mit Hilfe von Statistiken kann eine Aussage zur Selektivität der Daten getroffen werden. Damit hat der CBO ein wichtiges Kriterium für den Ausführungsplan an der Hand. Auf dieser Grundlage trifft der CBO eine Vorhersage für die günstigste Zugriffsart oder die optimale Join Order. Als Beispiel betrachten wir eine einfache Tabelle T1 bei der in der Spalte C1 die Werte 1 bis 20 auftreten. Die absolute Häufigkeit der einzelnen Werte ist in Abbildung 1 dargestellt. Der Wert 5 kommt mit deutlichem Abstand am häufigsten vor, die restlichen Zahlen sind in etwa gleich verteilt. Wird für T1 eine einfache Statistik erzeugt (ANALYZE TABLE oder dbms_stats.gather_table_stats ohne FOR-Klausel) geht Oracle zunächst von einer Gleichverteilung der Datensätze aus. Das be- Häufigkeit Datenverteilung der Tabelle T Wert Abb. 1: Absolute Häufigkeit der Werte der Beispieltabelle. deutet, dass bei einem SELECT wie in Abbildung 2 ein Index-Zugriff stattfindet, da vermeintlich 1/20, also 5 Prozent der Gesamtdaten betroffen sind. Das zeigt auch der zugehörige Ausführungsplan in Abbildung 2. Ein Full Table Scan (FTS) wäre an dieser Stelle effizienter gewesen (siehe Abbildung 3). Deutlich erkennbar ist die Diskrepanz zwischen geschätzten und realen Kosten. Histogramme zur Darstellung von Schieflagen Um dem CBO Informationen über die Verteilung der Daten zur Verfügung zu stellen, müssen erweiterte Statistiken generiert werden. Dies geschieht in Form von Histogrammen, die von ANALYZE TABLE oder dbms_stats. gather_table_stats mit FOR-Klausel erzeugt werden. Dabei kann die Granularität über die Anzahl der zu erzeugenden Intervalle als size-parameter übergeben werden. Bei (großen) Tabellen mit vielen, unterschiedlichen Werten wird ein so genanntes Height Based Histogramm erzeugt. Die Bezeichnung kommt daher, weil die Unterteilung der Daten so erfolgt, dass in jedem Intervall etwa gleich viele Daten liegen. Betrachten wir dazu wieder unser Beispiel von oben. Zur Abschätzung der Zahlenverteilung sollen 10 Intervalle benutzt werden: SQL> exec dbms_stats.gather_table_ stats('rn', 'T1', method_opt => 'for columns c1 size 10'); Um die Intervalle alle auf eine Höhe zu bringen, muss eine Ungleichverteilung vorausgesetzt die Intervallbreite variabel sein. Dabei kann es vorkommen, dass sich ein einzelner Wert über mehrere Intervalle erstreckt. Anders ausgedrückt, haben dann mehrere Intervalle denselben Endpunkt. 8

9 Datenbanken SQL> select * from t1 where c1 = 5; Zeilen ausgewaehlt. Ausfuhrungsplan SELECT STATEMENT Optimizer=CHOOSE (Cost=42 Card=942 Bytes=195936) 1 0 TABLE ACCESS (BY INDEX ROWID) OF 'T1' (Cost=42 Card=942 Bytes=195936) 2 1 INDEX (RANGE SCAN) OF 'T1_C1_IDX' (NON-UNIQUE) (Cost=2 Card=942) Statistiken recursive calls 0 db block gets consistent gets 0 physical reads 0 redo size bytes sent via SQL*Net to client bytes received via SQL*Net from client 887 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) rows processed Abb. 2: Ausführungsplan, nach Ermessen des Cost Based Optimizers. SQL> select /*+ Full(T1) */ * from t1 where c1 = Zeilen ausgewahlt. Ausfuhrungsplan SELECT STATEMENT Optimizer=CHOOSE (Cost=106 Card=942 Bytes=195936) 1 0 TABLE ACCESS (FULL) OF 'T1' (Cost=106 Card=942 Bytes=195936) Statistiken recursive calls 0 db block gets 1546 consistent gets 41 physical reads 0 redo size bytes sent via SQL*Net to client bytes received via SQL*Net from client 887 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) rows processed Abb. 3: Ausführungsplan mit Hinweis auf den Full Table Scan. In der View USER_TAB_HISTOGRAMS (siehe Abbildung 4) kann man sich das Histogramm ansehen: Die Spalte ENDPOINT_NUMBER gibt die Intervallnummer und ENDPOINT_VALUE den Wert der Intervallgrenze an. Kommen Intervallgrenzen mehrfach vor, wird nur die mit der höchsten Intervallnummer ausgegeben. Bei zehn Intervallen repräsentiert dann jedes einzelne ein 10-prozentiges Vorkommen der Werte im Intervall. In unserem Beispiel ist der Wert 5 Endpunkt von sieben Intervallen, woraus auf ein Vorkommen von etwa 70 Prozent geschlossen werden kann. Den restlichen Zahlen bleibt demnach insgesamt nur eine Häufigkeit von 30 Prozent. Dies spiegelt die tatsächlichen Verhältnisse sehr gut wieder. Mit Hilfe dieses Histogramms entscheidet sich der CBO nun auch ohne Hint für einen Full Table Scan, wenn nach der Zahl 5 selektiert wird. In allen anderen Fällen wird weiterhin über den Index gegangen. Ein nicht ganz so präzises, aber in unserem Beispiel völlig ausreichendes Ergebnis hätte man auch mit der Intervallzahl 3 erzielen können: Die 5 ist Endpunkt zweier Intervalle und hat damit eine geschätzte Häufigkeit von 2/3. Hier lohnt sich ein Full Table Scan! 9

10 Datenbanken SQL> select * from user_tab_histograms where table_name = 'T1' order by column_name, endpoint_value TABLE_NAME COLUMN_NAME ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_ACTUAL_VALUE T1 C1 0 1 T1 C1 1 5 T1 C1 2 5 T1 C1 3 5 T1 C1 4 5 T1 C1 5 5 T1 C1 6 5 T1 C1 7 5 T1 C1 8 8 T1 C T1 C Abb. 4: Darstellung des Histogramms in USER_TAB_HISTOGRAMS. Die farblich markierten Zeilen 2-7 werden in der View nicht dargestellt und sind hier nur zum besseren Verständnis eingefügt. SQL> select * from user_tab_histograms where table_name = 'T1' order by column_name, endpoint_value TABLE_NAME COLUMN_NAME ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_ACTUAL_VALUE T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C T1 C Abb. 5: Value Based-Histogramm der Tabelle T1. Value Based, Height Based Ein Sonderfall tritt auf, wenn die Intervallanzahl größer oder gleich der Anzahl der unterschiedlichen Werte der betreffenden Spalte ist (ist der Spalte NUM_DISTINCT in der Standard-View USER_ TAB_COLUMNS zu entnehmen). Dann kann jeder Wert in ein eigenes Intervall fallen und es wird ein Histogramm im klassischen Sinne erzeugt. Im Gegensatz zum zuvor beschriebenen wird es auch als Value Based bezeichnet. In diesem Fall muss die Spalte ENDPOINT_NUMBER anders interpretiert werden, nämlich als kumulierte Histogrammhöhe. Das heißt, in diesem Fall kann man die tatsächliche Häufi gkeit eines Wertes berechnen, indem man von seiner ENDPOINT_NUMBER die des Vorgängers abzieht. Ab Oracle 10g ist die Art des Histogramms in der View USER_TAB_COLUMNS in der Spalte HISTOGRAM hinterlegt. Mögliche Werte sind none, frequency (value based) und height balances (height based). Leider ist diese Spalte in Oracle 9i noch nicht verfügbar. Trotzdem ist eine Unterscheidung möglich. Generell kann nur bei einem Height Based-Histogramm in der Spalte ENDPOINT_NUMBER ei- 10

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger Grundlegendes Oracle9i PostgreSQL Prevayler Memory mywms bietet umfangreiche Konfigurationsmöglichkeiten um die Daten dauerhaft zu speichern.

Mehr

Tutorial Grundlagen der Softwareverteilung

Tutorial Grundlagen der Softwareverteilung Tutorial Grundlagen der Softwareverteilung Inhaltsverzeichnis 1. Einführung... 3 2. Clientsysteme einrichten... 3 2.1 Den SDI Agent verteilen... 3 2.2 Grundeinstellungen festlegen... 4 3. Softwareverteiler...

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

Software Engineering in

Software Engineering in Software Engineering in der Werkzeuge für optimierte LabVIEW-Entwicklung Folie 1 Best Practices Requirements Engineering Softwaretest Versionsmanagement Build- Automatisierung Folie 2 Arbeiten Sie im Team?

Mehr

Systemvoraussetzungen für ConSol*CM Version 6.10.2 Architektur Überblick

Systemvoraussetzungen für ConSol*CM Version 6.10.2 Architektur Überblick Systemvoraussetzungen für ConSol*CM Version 6.10.2 Architektur Überblick ConSol*CM basiert auf einer Java EE Web-Architektur, bestehend aus den folgenden Kern-Komponenten: JEE Application Server für die

Mehr

4 Planung von Anwendungsund

4 Planung von Anwendungsund Einführung 4 Planung von Anwendungsund Datenbereitstellung Prüfungsanforderungen von Microsoft: Planning Application and Data Provisioning o Provision applications o Provision data Lernziele: Anwendungen

Mehr

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133.

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133. Page 1 of 7 Betrifft: Java oder PL/SQL? Art der Info: Technische Background Info Autor: Guido Schmutz (guido.schmutz@trivadis.com) Quelle: Aus unserer Schulungs- und Beratungstätigkeit Mit Oracle8.1 besteht

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen WEITER BLICKEN. MEHR ERKENNEN. BESSER ENTSCHEIDEN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN VERSION 1.0 OPTIMIERUNG VON ABFRAGEN IN MS SQL

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

PL/SQL Web-Services mit Oracle 11g

PL/SQL Web-Services mit Oracle 11g DOAG 2008 Konferenz 01. - 03.12.2008 Nürnberg Markus Fiegler ORDIX AG, Paderborn mf@ordix.de www.ordix.de Agenda SOA und Web-Services im Überblick Datenbank als Web-Services Provider - Alternative mit

Mehr

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS)

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS) Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Automatisierung, Betrieb, Middleware Einleitung Der Oracle Fusion Middleware Stack beinhaltet eine leistungsstarke

Mehr

Komponentenbasierte Softwareentwicklung mit PHP. Oliver Schlicht - bitexpert

Komponentenbasierte Softwareentwicklung mit PHP. Oliver Schlicht - bitexpert Komponentenbasierte Softwareentwicklung mit PHP Oliver Schlicht - bitexpert Überblick 1. Was ist eine Komponente? 2. Entwicklung eines Beispieldesigns 3. Dependency Injection 4. DI Container Garden 5.

Mehr

PowerBridge MSSQL Beta

PowerBridge MSSQL Beta SoftENGINE PowerBridge MSSQL Beta Dokumentation Thomas Jakob 17.04.2011 Inhalt Einrichtung der SQL Umgebung... 3 SQL-Server Installieren... 3 BüroWARE Installieren... 3 PowerBridge-SQL Modus einrichten...

Mehr

Tutorial Windows XP SP2 verteilen

Tutorial Windows XP SP2 verteilen Tutorial Windows XP SP2 verteilen Inhaltsverzeichnis 1. Einführung... 3 2. Windows XP SP2 bereitstellen... 3 3. Softwarepaket erstellen... 4 3.1 Installation definieren... 4 3.2 Installationsabschluss

Mehr

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher 729631 745097 736477 745011 741297 Inhalt Schlussbewertung... 3 Bewertung

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Hivemind Ein leichtgewichteter Container

Hivemind Ein leichtgewichteter Container Hivemind Ein leichtgewichteter Container Manfred Wolff, wolff@manfred-wolff.de, www.manfred-wolff.de Container sind Laufzeitumgebungen für Objekte. Der mächtigste Container im Java-Umfeld der EJB Container

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

17.2 MS-Access Projekte

17.2 MS-Access Projekte 964 Von MS-Access 2000 zum SQL-Server 17.2 MS-Access Projekte MS-Access-Projekte, die die Dateiendung adp besitzen, werden als Front-End-Anwendung verwendet. Für die Back-End-Seite gibt es mehrere Möglichkeiten.

Mehr

Microsoft SQL Server 2014 Express & EPLAN Plattform. EPLAN-Product-IT-Support / FOS / 2015 1

Microsoft SQL Server 2014 Express & EPLAN Plattform. EPLAN-Product-IT-Support / FOS / 2015 1 Microsoft SQL Server 2014 Express & EPLAN Plattform 1 Microsoft SQL Server & EPLAN Plattform Übersicht Download - Microsoft SQL Server 2014 Express mit Advances Services Installation - Microsoft SQL Server

Mehr

Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Version: 2014 Orientation 1.0 in Objects GmbH Der Sprecher Erik Bamberg (OIO) 2 1 s Aufgaben des Cachings Datenbank

Mehr

Performance Tuning mit @enterprise

Performance Tuning mit @enterprise @enterprise Kunden-Forum 2005 Performance Tuning mit @enterprise Herbert Groiss Groiss Informatics GmbH, 2005 Inhalt Datenbank RMI JAVA API HTTP Konfiguration Analyse Groiss Informatics GmbH, 2005 2 Datenbank

Mehr

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung Betrifft Optimizer Autor Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Quelle Aus unserer Projekterfahrung und Forschung Einführung Mit jedem Oracle Release nimmt die Anzahl

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Eclipse und EclipseLink

Eclipse und EclipseLink Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1 Gliederung Eclipse als

Mehr

LDAP-Server. Jederzeit und überall auf Adressen von CAS genesisworld zugreifen

LDAP-Server. Jederzeit und überall auf Adressen von CAS genesisworld zugreifen LDAP-Server Jederzeit und überall auf Adressen von CAS genesisworld zugreifen Copyright Die hier enthaltenen Angaben und Daten können ohne vorherige Ankündigung geändert werden. Die in den Beispielen verwendeten

Mehr

Hardware- und Software-Anforderungen IBeeS.ERP

Hardware- und Software-Anforderungen IBeeS.ERP Hardware- und Software-Anforderungen IBeeS.ERP IBeeS GmbH Stand 08.2015 www.ibees.de Seite 1 von 8 Inhalt 1 Hardware-Anforderungen für eine IBeeS.ERP - Applikation... 3 1.1 Server... 3 1.1.1 Allgemeines

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans JPA - JAVA Persistence API Problem In JAVA-programmen arbeitet man mit Hauptspeicherobjekten. Nach Beendigung des Programmes sind diese nicht mehr vorhanden.

Mehr

System Monitoring mit strace. Systemcall tracing

System Monitoring mit strace. Systemcall tracing System Monitoring mit strace Systemcall tracing 1 Gliederung Einleitung: Was ist strace Grundlagen zu strace Kernel Kernelspace vs. Userspace Systemcalls ptrace Simple strace (Demo) strace die wichtigsten

Mehr

Oracle Database 10g Die RAC Evolution

Oracle Database 10g Die RAC Evolution Oracle Database 10g Die RAC Evolution Markus Michalewicz BU Database Technologies ORACLE Deutschland GmbH 2 Page 1 www.decus.de 1 RAC-Revolution, RAC-Evolution & Computing Oracle8i mit OPS Oracle9i Rel.

Mehr

Java Persistence API 2.x. crud + relationships + jp-ql

Java Persistence API 2.x. crud + relationships + jp-ql Java Persistence API 2.x crud + relationships + jp-ql Grundprinzip 10.02.10 2 Problematik Man muss bei der Persistierung immer das Klassenmodell und dessen Umsetzung im Datenmodell (in der DB) berücksichtigen.

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 WebSphere Application Server Teil 4 Leistungsverhalten el0100 copyright W. G. Spruth,

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Benutzerhandbuch. Neukirchen

Benutzerhandbuch. Neukirchen Benutzerhandbuch Neukirchen August 2015 Kontakt: Kai Hübl Lambertsberg 17 D-34626 Neukirchen kai.huebl@asneg.de Contents 1 Einleitung... 5 1.1 Inhalt... 5 1.2 OPC UA Client Stack... 5 1.3 OPC UA Server

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

MIN oder MAX Bildung per B*Tree Index Hint

MIN oder MAX Bildung per B*Tree Index Hint E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich

Mehr

8a. Exkurs.NET. 8a.1.NET Architektur

8a. Exkurs.NET. 8a.1.NET Architektur 8a. Exkurs.NET Inhalt: 8a.1.NET Architektur 8a.2 Kooperation von Anwendungen über ADO -.NET 8a.3 Unterschiede gegenüber gewöhnlicher WIN32- Programmierung 1 8a.1.NET Architektur Bislang wurden die C/C++

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

Oracle GridControl Tuning Pack. best Open Systems Day April 2010. Unterföhring. Marco Kühn best Systeme GmbH marco.kuehn@best.de

Oracle GridControl Tuning Pack. best Open Systems Day April 2010. Unterföhring. Marco Kühn best Systeme GmbH marco.kuehn@best.de Oracle GridControl Tuning Pack best Open Systems Day April 2010 Unterföhring Marco Kühn best Systeme GmbH marco.kuehn@best.de Agenda GridControl Overview Tuning Pack 4/26/10 Seite 2 Overview Grid Control

Mehr

Sage 200 BI Installationsanleitung Cubes & Datawarehouses Manuelle Installation ohne SRSS/Sage Cockpit. Version 2014.0 11.11.2014

Sage 200 BI Installationsanleitung Cubes & Datawarehouses Manuelle Installation ohne SRSS/Sage Cockpit. Version 2014.0 11.11.2014 Sage 200 BI Installationsanleitung Cubes & Datawarehouses Manuelle Installation ohne SRSS/Sage Cockpit Version 2014.0 11.11.2014 Inhaltsverzeichnis Installationsanleitung Cubes & Datawarehouse Inhaltsverzeichnis

Mehr

Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken

Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken Version 2.0 D-28359 Bremen info@indi-systems.de Tel + 49 421-989703-30 Fax + 49 421-989703-39 Inhaltsverzeichnis Was ist die QuickHMI-Schnittstelle

Mehr

IT-Symposium 2008 05.06.2008

IT-Symposium 2008 05.06.2008 Selftuning Database Ein Traum oder Wirklichkeit Ralf Durben Oracle Deutschland GmbH www.hp-user-society.de 1 Die Arbeitswelt des Gestern, heute und morgen Früher Ein für wenige Datenbanken

Mehr

Oracle Warehouse Builder 3i

Oracle Warehouse Builder 3i Betrifft Autoren Art der Info Oracle Warehouse Builder 3i Dani Schnider (daniel.schnider@trivadis.com) Thomas Kriemler (thomas.kriemler@trivadis.com) Technische Info Quelle Aus dem Trivadis Technologie

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server Einsatz von Applikationsservern Untersucht am Beispiel des Sybase Enterprise Application Server Architektur von Datenbanksystemen Client / Server Modell (2 Schichten Modell) Benutzerschnittstelle Präsentationslogik

Mehr

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire Integration von Web Services in J EE Anwendungen mit XFire 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire univativ : = Umsetzung durch Studenten und Young Professionals.

Mehr

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz Oracle 12c: Neuerungen in PL/SQL Roman Pyro DOAG 2014 Konferenz Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz: Burscheid (bei Leverkusen) Beratung,

Mehr

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2

Mehr

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35

Mehr

Datenbankstatistiken im Griff mit DBMS_STATS. DOAG 2012 Konferenz + Ausstellung Nürnberg 21. November 2012

Datenbankstatistiken im Griff mit DBMS_STATS. DOAG 2012 Konferenz + Ausstellung Nürnberg 21. November 2012 Datenbankstatistiken im Griff mit DBMS_STATS DOAG 2012 Konferenz + Ausstellung Nürnberg 21. November 2012 Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz:

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr

Windows Server Update Services (WSUS)

Windows Server Update Services (WSUS) Windows Server Update Services (WSUS) Netzwerkfortbildung, Autor, Datum 1 WSUS in der Windows Was ist WSUS? Patch- und Updatesoftware von Microsoft, bestehend aus einer Server- und einer Clientkomponente

Mehr

IKONIZER II Installation im Netzwerk

IKONIZER II Installation im Netzwerk Der IKONIZER II ist netzwerkfähig in allen bekannten Netzwerken. Da jedoch etwa 95% der Installationen lokal betrieben werden, erfolgt diese grundsätzlich sowohl für das Programm wie auch für den lizenzfreien

Mehr

MaxDB Einführung in die Installation und Nutzung von MaxDB (Version 7.5.0.5)

MaxDB Einführung in die Installation und Nutzung von MaxDB (Version 7.5.0.5) MaxDB Einführung in die Installation und Nutzung von MaxDB (Version 7.5.0.5) Hinweise: Diese Installation bezieht sich auf die Version 7.5.0.5, bei Nachfolgern kann sich einiges ändern Herunter geladen

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

Mehr

Application Frameworks

Application Frameworks Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung

Mehr

COPPER Best Practices

COPPER Best Practices COPPER Best Practices Version 1.0.1 Wann sollte man überhaupt COPPER verwenden? Allgemein genau dann, wenn man von der COPPER Notation oder den COPPER-Features profitieren kann. Ein wesentliches Feature

Mehr

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 In diesem Dokument wird dargelegt, wie das SEPPmail Outlook Add-in funktioniert, und welche Einstellungen vorgenommen werden können. Seite 2 Inhalt

Mehr

Java Frameworks im Vergleich - ADF vs. Grails vs. Spring

Java Frameworks im Vergleich - ADF vs. Grails vs. Spring Java Frameworks im Vergleich - ADF vs. Grails vs. Spring Frank Szilinski esentri software GmbH Karlsruhe Schlüsselworte: ADF, Java, JEE, JSF, Grails, Spring, Open Source, Rapid Application Development

Mehr

Im Kapitel Resourc Manager werden die verschiedenen Möglichkeiten der Überwachung von Messwerten eines Server oder Benutzers erläutert.

Im Kapitel Resourc Manager werden die verschiedenen Möglichkeiten der Überwachung von Messwerten eines Server oder Benutzers erläutert. 4 Resource Manager Erfassung von Messwerten und deren Auswertung. 4.1 Übersicht Themen des Kapitels Resource Manager Themen des Kapitels Einsatz des Resource Managers Installation des Resource Managers

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Inhaltsverzeichnis. Lutz Fröhlich. PostgreSQL 9. Praxisbuch für Administratoren und Entwickler. ISBN (Buch): 978-3-446-42239-1

Inhaltsverzeichnis. Lutz Fröhlich. PostgreSQL 9. Praxisbuch für Administratoren und Entwickler. ISBN (Buch): 978-3-446-42239-1 Inhaltsverzeichnis Lutz Fröhlich PostgreSQL 9 Praxisbuch für Administratoren und Entwickler ISBN (Buch): 978-3-446-42239-1 ISBN (E-Book): 978-3-446-42932-1 Weitere Informationen oder Bestellungen unter

Mehr

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt TimePunch TimePunch Command Benutzerhandbuch 14.08.2013 TimePunch KG, Wormser Str. 37, 68642 Bürstadt Dokumenten Information: Dokumenten-Name Benutzerhandbuch, TimePunch Command Revisions-Nummer 37 Gespeichert

Mehr

Oracle BI Publisher in der Oracle Business Intelligence Enterprise Edition Plus. Eine Mehrwertdiskussion

Oracle BI Publisher in der Oracle Business Intelligence Enterprise Edition Plus. Eine Mehrwertdiskussion Oracle BI Publisher in der Oracle Business Intelligence Enterprise Edition Plus Eine Mehrwertdiskussion Der Oracle BI Publisher als Teil der Oracle BI Suite versus Oracle BI Publisher Standalone Der Oracle

Mehr

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA VIVIT TQA Treffen in Köln am 18. 04. 2013 API- Programmierung und Nutzung bei HP Quality Center / ALM Michael Oestereich IT Consultant QA Agenda Vorstellung der API- Versionen OTA- API SA- API REST- API

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

Mehr

Wie setzt Swisscom Solaris 11 ein

Wie setzt Swisscom Solaris 11 ein Wie setzt Swisscom Solaris 11 ein Fritz Wittwer Swisscom Enterprise Customers Bern / Schweiz Marcel Hofstetter St. Gallen / Schweiz Schlüsselworte Oracle Solaris 11, Virtualisierung, SPARC, T5, LDom, Solaris

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann Einführung in das Microsoft.NET-Framework Programmiersprache C# 02: Visual Studio / Hello World Boris Hülsmann 23.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Marketing Update. Enabler / ENABLER aqua / Maestro II

Marketing Update. Enabler / ENABLER aqua / Maestro II Marketing Update Enabler / ENABLER aqua / Maestro II Quartal 01/2012 1 Kommentar des Herausgebers Liebe Kunden und Partner, dieser Marketing Update gibt Ihnen einen kurzen Überblick über die aktuell verfügbaren

Mehr

Abb. 1: Schematische Architektur WebLogic-Server

Abb. 1: Schematische Architektur WebLogic-Server Forms 11g im Weblogic-Server Vertrautes in neuem Gewand Stephan La Rocca TEAM GmbH Paderborn Schlüsselworte: Oracle Weblogic Server, Forms 11g, Administration, Konfiguration, New Features. Einleitung Mit

Mehr

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 4.Architektur

Mehr

IBM SPSS Modeler Entity Analytics - Erweiterte Konfiguration

IBM SPSS Modeler Entity Analytics - Erweiterte Konfiguration IBM SPSS Entity Analytics - Erweiterte Konfiguration Einführung Die vorgesehene Zielgruppe für dieses Handbuch sind Systemadministratoren, die IBM SPSS Entity Analytics (EA) für die Ausführung in einer

Mehr

Access und OpenOffice.org

Access und OpenOffice.org Access-Datenbanken in OpenOffice.org 1.1 einbinden Herausgegeben durch das OpenOffice.org Germanophone-Projekt Autoren Autoren vorhergehender Versionen Timo Kozlowski Alle in diesem Dokument erwähnten

Mehr

Redwood Cronacle und REALTECH theguard! Integration

Redwood Cronacle und REALTECH theguard! Integration Redwood Cronacle und REALTECH theguard! Integration Einleitung Redwood Software und REALTECH haben gemeinsam eine Lösung entwickelt, die die Systemverfügbarkeit von SAP und mysap Systemen signifikant erhöht.

Mehr

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1 Datenbanksystem System Global Area Hintergrundprozesse Dr. Frank Haney 1 Komponenten des Datenbanksystems System Global Area Program Global Area Hintergrundprozesse Dr. Frank Haney 2 System Global Area

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

White Paper. Konfiguration und Verwendung des Auditlogs. 2012 Winter Release

White Paper. Konfiguration und Verwendung des Auditlogs. 2012 Winter Release White Paper Konfiguration und Verwendung des Auditlogs 2012 Winter Release Copyright Fabasoft R&D GmbH, A-4020 Linz, 2011. Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen

Mehr

15 Bilder und Dateien im SQL Server

15 Bilder und Dateien im SQL Server Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen 15 Bilder und Dateien im SQL Server Eines der großen Probleme von Access-Datenbanken ist der vergleichsweise geringe Speicher platz. Sicher,

Mehr

Performance Monitoring von businesskritischen Anwendungen in einer Multi-Tier-Umgebung

Performance Monitoring von businesskritischen Anwendungen in einer Multi-Tier-Umgebung Performance Monitoring von businesskritischen Anwendungen in einer Multi-Tier-Umgebung vertrieblicher Ansprechpartner: Michael Schoen Tel: (04181) 9092-210 Fax: (04181) 9092-345 email: Michael_Schoen@netcor.de

Mehr

Howto. Konfiguration eines Adobe Document Services

Howto. Konfiguration eines Adobe Document Services Howto Konfiguration eines Adobe Document Services (ADS) Inhaltsverzeichnis: 1 SYSTEMUMGEBUNG... 3 2 TECHNISCHE VERBINDUNGEN ZWISCHEN DEN SYSTEMEN... 3 2.1 PDF BASIERENDE FORMULARE IN DER ABAP UMGEBUNG...

Mehr

Inhalt. Max Lini. ax. inie. Einleitung... VII

Inhalt. Max Lini. ax. inie. Einleitung... VII rst Inhalt Einleitung....................................................... VII 1 Schöne neue Welt: Objektorientierte Programmierung in PHP 5.............. 1 Klassen, Interfaces und Objekte...................................

Mehr

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de Das Build Tool Ant Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation Bei der Übersetzung und Pflege von Software treten viele, gleich bleibende Arbeitsschritte auf. Übersetzen des Codes

Mehr

IBM Informix Tuning und Monitoring

IBM Informix Tuning und Monitoring Seminarunterlage Version: 11.01 Copyright Version 11.01 vom 25. Juli 2012 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

IBM SPSS Data Access Pack Installationsanweisung für Windows

IBM SPSS Data Access Pack Installationsanweisung für Windows IBM SPSS Data Access Pack Installationsanweisung für Windows Inhaltsverzeichnis Kapitel 1. Übersicht.......... 1 Einführung............... 1 Bereitstellen einer Datenzugriffstechnologie.... 1 ODBC-Datenquellen...........

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Tipps & Tricks: März 2011. Parameter der tnsnames.ora im RAC Umfeld. 1. Parameter: Bereich: Erstellung: RAC 03/2011 SH. Letzte Überarbeitung: 11.

Tipps & Tricks: März 2011. Parameter der tnsnames.ora im RAC Umfeld. 1. Parameter: Bereich: Erstellung: RAC 03/2011 SH. Letzte Überarbeitung: 11. Tipps & Tricks: März 2011 Bereich: RAC Erstellung: 03/2011 SH Versionsinfo: 11.2 Letzte Überarbeitung: 03/2011 SH Als PDF Downloaden! Parameter der tnsnames.ora im RAC Umfeld Wird Oracle Real Application

Mehr

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 O/R Mapper O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 Agenda Object-relational impedance mismatch Mapping Session Abfragen No. 2 Object-relational impedance mismatch Object-relational

Mehr