JDBC Zugriff auf Oracle-Datenbank scheitert mit I/O-Fehler: Connection reset

Warum komme ich plötzlich nicht mehr an die Datenbank?

Mit einer unserer Java-Anwendungen hatten wir plötzlich ein unerklärliches Zugriffs-Problem auf die darunter liegende Oracle Datenbank. Nach der Installation der Anwendung auf einer neuen Virtuellen Maschine scheiterte jeder JDBC-Zugriff auf die Datenbank mit dem Fehler:

java.sql.SQLRecoverableException: I/O-Fehler: Connection reset

obwohl der Datenbank Server selbst nicht verändert wurde. Wir konnten den Fehler mit einer einfachen Test Klasse repoduzieren und es wurde schnell klar, es liegt weder an der Anwendung, noch am Datenbank-Server.

Weiterlesen

Vaadin und AngularJS – glücklich vereint

Sie haben sicherlich schon viel über xJS Frameworks, allen voran AngularJS, gehört. Als Vaadin Entwickler haben Sie sich vielleicht auch schon die Frage gestellt, wie Sie mit diesen Frameworks umgehen sollen. Ignorieren? Das wäre ein Jammer, denn die Frameworks eröffnen eine Menge großartiger Möglichkeiten. Ein kompletter Wechsel? Wäre auch schade, da Sie dann auf Vaadin verzichten müssten.

Glücklicherweise muss es aber nicht zwingend Vaadin oder AngularJS heißen. Vaadin und AngularJS klingt doch schon viel besser, oder?

Weiterlesen

OptaPlanner hilft bei verteilten Schulstandorten (Teil 4/5)

Die vorigen Teile dieser Serie haben beschrieben, wie das Optimierungsproblem modelliert und das Modell mit Hilfe von OptaPlanner umgesetzt wird. Dieser Teil beschäftigt sich mit dem eigentlichen Lösungsverfahren des Problems.

Ablauf der Optimierung

Der Solver übernimmt die Optimierung des Problems und durchläuft dabei mindestens zwei Phasen. In der ersten Phase wird eine Ausgangslösung erstellt. Diese wird in der oder den darauf folgenden Phase(n) inkrementell optimiert. Für beide Phasen stellt OptaPlanner unterschiedliche Heuristiken zur Verfügung, die je nach Art des Optimierungsproblems auszuwählen sind. OptaPlanner bietet zudem eine Benchmarkingfunktionalität, welche die Evaluation verschiedener Heuristiken durch automatische Läufe und Gegenüberstellung verschiedener Konfigurationen des Solvers mit grafischen Reports zu Performance und Skalierbarkeit unterstützt.

Weiterlesen

Integration von JBake in Maven – Statische Websites

JBake ist ein „Java-basierter, open source Generator für statische Seiten“ (http://jbake.org/, auf github https://github.com/jbake-org/jbake). Bestens geeignet, um statische HTML-Seiten zu erstellen. Das langsame Laden von dynamischen Inhalten entfällt. Ebenso Probleme, die bei der Indexierung und Suchmaschinenoptimierung/SEO auftreten können, wenn die Seite erst beim Laden per JavaScript zusammengesetzt wird. Gleichzeitig bieten verschiedene Template Engines, wie bspw. FreeMarker (http://freemarker.org/) den Vorteil der Modularisierung. Menü und Footer müssen nur einmalig definiert werden und können durch verschiedene Vorlagen automatisch eingefügt werden.

Weiterlesen

OptaPlanner hilft bei verteilten Schulstandorten (Teil 3/5)

Modellierung des Problems

Eine Zuordnung von verfügbaren Schulstunden zu Unterrichtsstunden ist mit dem Datenmodell aus Teil 2 dieser Serie nun prinzipiell möglich. Für eine sinnvolle Optimierung mit Hilfe von (Meta-) Heuristiken fehlen jedoch die Restriktionen des Zuordnungsproblems sowie eine Möglichkeit zur Bewertung verschiedener Lösungen. Umgesetzt werden können diese innerhalb von Optaplanner mit Hilfe der Regelengine Drools Expert oder Java Prozeduren. Der Einsatz einer Regelengine bringt zum einen bewährte Techniken zur Erkennung von Mustern out of the box (z.B. die Verteilung der Berechnungen auf mehrere Kerne). Zum anderen lassen sich die Restriktionen in Form von Drools Regeln leichter sukzessive und granular an veränderte Modelleigenschaften anpassen.
Weiterlesen

OptaPlanner hilft bei verteilten Schulstandorten (Teil 2/5)

Nachdem der erste Teil dieser Blogserie das fachliche Problem beschreibt, folgt hier der erste Teil der Modellierung.

Modellierung des Problems

In unserem Beispiel muss der Stundenplan nicht komplett neu erstellt werden. Wir können von einem bereits erstellten Stundenplan ausgehen und diesen optimieren. Zur Erstellung der Stundenpläne wird am ONG das weit verbreitete Stundenplanprogramm Untis genutzt. Der damit von der Schulleitung erstellte Stundenplan wird den Schülern und Lehrern u.a. über einen HTML-Export zur Verfügung gestellt. Zur Weiterverarbeitung in externen Programmen stellt das Modul Infostundenplan einen sogenannten Datenbank-Export zur Verfügung.
Weiterlesen

OptaPlanner hilft bei verteilten Schulstandorten (Teil 1/5)

Aufgrund von Baumaßnahmen muss der Unterricht an einer Berliner Schule auf zwei Standorte aufgeteilt werden. Die Wechsel zwischen den Standorten führen zu einer zusätzlichen Belastung des Lehrkörpers. Die Software, die für die Erstellung der Stundenpläne eingesetzt wird, kann diese Wechsel leider nicht minimieren. Als wir das hörten, kamen wir schnell auf die Idee, die Java Planning Engine OptaPlanner darauf anzusetzen.

In dieser Blogserie berichten wir davon, welche Schritte notwendig waren, um das Problem mit OptaPlanner angehen zu können und wie wir somit letztendlich eine Verbesserung um 70% erreichen konnten.

Weiterlesen

Impulsabend Web-Anwendungen mit Vaadin

Mit Vaadin lassen sich in „pure Java“ tolle Web-Anwendungen realisieren. Oliver Damm (akquinet) und Ville Ingmann (Vaadin) begeisterten unsere Gäste am 10.09.2013 mit einem Überblick und den Neuigkeiten von Vaadin 7.1.

Die Folien zu unserem Abend finden sich hier:

Die Sourcen des Beispiels liegen auf Github:
https://github.com/akquinet/vaadin-cdi-mvp