Oracle hat im JDBC Treiber (und dem eigenen Connection Pool) jede Menge Funktionen eingebaut, die über das Verhalten von JDBC hinausgehen. Oftmals wird dies mit Performance-Vorteilen begründet.
Man sollte diese Feature (nicht nur aus Kompatibilitätsgründen) nicht ungeprüft übernehmen, zum Beispiel hat JBoss AS einen OracleValidConnectionChecker, der mittels Relfection die Oracle Spezialfunktion
Die Prüfung ob eine DB connection noch funktioniert (entweder regelmässig im Hintergrund oder bei jedem ausleihen aus dem Pool) ist recht wichtig für einen stabilen Systembetrieb - aber auch sehr Performancerelevant. Mit pingDatabase würde man so vorgehen:
Wenn man aber die Implementierung analysiert, so stellt man schnell fest, dass die aktuelle Version des Treibers hier nicht sonderlich effizient implementiert ist. Es wird das SQL Statement
Es wird kein prepared statement eingesetzt, dass heisst der Datenbank Server muss bei jedem Aufruf das Statement mühsam parsen. Wenn ein Timeout angegeben wurde, so startet der JDBC Treiber bei jedem Ping einen neuen Thread. Auf die timeout Funktion sollte also auf jeden Fall verzichtet werden (Oracle hat diese Variante auch deprecated).
Man sollte diese Feature (nicht nur aus Kompatibilitätsgründen) nicht ungeprüft übernehmen, zum Beispiel hat JBoss AS einen OracleValidConnectionChecker, der mittels Relfection die Oracle Spezialfunktion
pingDatabase() verwendet. Alternativ gibt es eine generische Implementierung, die einfach ein Statement absetzt.Die Prüfung ob eine DB connection noch funktioniert (entweder regelmässig im Hintergrund oder bei jedem ausleihen aus dem Pool) ist recht wichtig für einen stabilen Systembetrieb - aber auch sehr Performancerelevant. Mit pingDatabase würde man so vorgehen:
Wenn man aber die Implementierung analysiert, so stellt man schnell fest, dass die aktuelle Version des Treibers hier nicht sonderlich effizient implementiert ist. Es wird das SQL Statement
"SELECT 'X' FROM DUAL" abgesetzt. (Immerhin wird dazu vorher der Rückgabetyp deklariert: ((OracleStatement)stmt).defineColumnType (1, Types.CHAR, 1);)Es wird kein prepared statement eingesetzt, dass heisst der Datenbank Server muss bei jedem Aufruf das Statement mühsam parsen. Wenn ein Timeout angegeben wurde, so startet der JDBC Treiber bei jedem Ping einen neuen Thread. Auf die timeout Funktion sollte also auf jeden Fall verzichtet werden (Oracle hat diese Variante auch deprecated).
Geschrieben von Bernd Eckenfels
in Datenbanken, Java Programming
| Kommentare (0)
| Trackbacks (0)
Oracle hat im JDBC Treiber (und dem eigenen Connection Pool) jede Menge Funktionen eingebaut, die über das Verhalten von JDBC hinausgehen. Oftmals wird dies mit Performance-Vorteilen begründet. Man sollte diese Feature (nicht nur aus Kompatibilitätsgründen) nicht ungeprüft übernehmen, zum Beispiel hat JBoss AS einen OracleValidConnectionChecker, der mittels Relfection die Oracle Spezialfunktion pingDatabase() verwendet. Alternativ gibt es eine generische Implementierung, die einfach ein Statement absetzt. Die Prüfung ob eine DB connection noch funktioniert (entweder regelmässig im Hintergrund oder bei jedem ausleihen aus dem Pool) ist recht wichtig für einen stabilen Systembetrieb - aber auch sehr Performancerelevant. Mit pingDatabase würde man so vorgehen: if (connection instanceof OracleConnection) { OracleConnection oraCon = (OracleConnection)connection; if (oraCon.pingDatabase() != OracleConnection.DATABASE_OK) throw new SQLException(\"The ph
Leider macht es Oracle recht schwer die Archive für den Datenbank Install aus dem Oracle Technology Network ohne (grafischen) Web Browser herunterzuladen: Man muss angemeldet sein und den Lizenzbedingungen zustimmen. Dabei wird nicht nur JavaScript eingesetzt sondern auch ein Session Cookie verwendet. Das macht die Verwendung von wget - auch wenn man die download URL kennt - leider nicht möglich. Neben dem Herunterladen auf ein internes System mit grafischem Browser ist es stattdessen möglich entweder auf dem Zielserver einen Command-Line Browser zu verwenden der auch Cookies (und SSL) unterstützt oder eben wget auf dem Zielserver und vorher die Cookies mittels Command Line browser ermitteln.
Aktuell teste ich Software auf den HP/UX Servern im HP Partnerprogramm PVP. Diese Server sind recht minimalistisch ausgestattet. Um dort einen SSL fähigen Command-Line Browser zu erhalten benutze ich das Links Paket. Es benötigt Perl und OpenSSL als Abhängigkeiten und wird im Software Depot des HP Porting Centers angeboten (Dort gibt es zwar auch ein Lynx Paket mit weniger Dependencies, das ist allerdings ohne SSL Unterstützung). Einfacherweise installiert man sich zuerst den depothelper vom Porting Center. Dieser übernimmt den restlichen Download, das Auspacken und Installieren des Paketes und aller Abhängigkeiten:
Wenn auf dem Server kein Links (mit Perl installiert werden soll, so gibt es auch Tipps wie man den Login auf OTN mit einem Lynx Browser auf einem Testsystem absolvieren kann und die dabei erhaltenen gültigen Cookies per File dann an wget auf dem Zielserver weiterreichen kann. Dies ist hier näher beschrieben.
Aktuell teste ich Software auf den HP/UX Servern im HP Partnerprogramm PVP. Diese Server sind recht minimalistisch ausgestattet. Um dort einen SSL fähigen Command-Line Browser zu erhalten benutze ich das Links Paket. Es benötigt Perl und OpenSSL als Abhängigkeiten und wird im Software Depot des HP Porting Centers angeboten (Dort gibt es zwar auch ein Lynx Paket mit weniger Dependencies, das ist allerdings ohne SSL Unterstützung). Einfacherweise installiert man sich zuerst den depothelper vom Porting Center. Dieser übernimmt den restlichen Download, das Auspacken und Installieren des Paketes und aller Abhängigkeiten:
# uname -a
HP-UX server B.11.31 U ia64 3663751510 unlimited-user license
# cd /var/tmp
# ftp hpux.connect.org.uk
User: ftp
Pass: root@
ftp> cd /hpux/Sysadmin/depothelper-2.00/
ftp> get depothelper-2.00-ia64-11.31.depot.gz
ftp> quit
# /usr/contrib/bin/gunzip depothelper-2.00-ia64-11.31.depot.gz
the next command requires an absolute path
# swinstall -s /var/tmp/depothelper-2.00-ia64-11.31.depot depothelper
now you can use depothelper to install a package with dependencies
# /usr/local/bin/depothelper links
================================================
Package-version Comment Download Install
================================================
ia64-11.31 Package list OK OK
db-5.0.26 Dependency (01/07) OK OK (+ deleted depot)
expat-2.0.1 Dependency (02/07) OK OK (+ deleted depot)
gdbm-1.8.3 Dependency (03/07) OK OK (+ deleted depot)
gettext-0.18 Dependency (04/07) OK OK (+ deleted depot)
libiconv-1.13.1 Dependency (05/07) OK OK (+ deleted depot)
openssl-1.0.0a Dependency (06/07) OK OK (+ deleted depot)
perl-5.10.1 Dependency (07/07) OK OK (+ deleted depot)
links-1.00pre23 Requested OK OK (+ deleted depot)
================================================
Wenn auf dem Server kein Links (mit Perl installiert werden soll, so gibt es auch Tipps wie man den Login auf OTN mit einem Lynx Browser auf einem Testsystem absolvieren kann und die dabei erhaltenen gültigen Cookies per File dann an wget auf dem Zielserver weiterreichen kann. Dies ist hier näher beschrieben.
Geschrieben von Bernd Eckenfels
in Datenbanken
| Kommentare (0)
| Trackbacks (0)
Leider macht es Oracle recht schwer die Archive für den Datenbank Install aus dem Oracle Technology Network ohne (grafischen) Web Browser herunterzuladen: Man muss angemeldet sein und den Lizenzbedingungen zustimmen. Dabei wird nicht nur JavaScript eingesetzt sondern auch ein Session Cookie verwendet. Das macht die Verwendung von wget - auch wenn man die download URL kennt - leider nicht möglich. Neben dem Herunterladen auf ein internes System mit grafischem Browser ist es stattdessen möglich entweder auf dem Zielserver einen Command-Line Browser zu verwenden der auch Cookies (und SSL) unterstützt oder eben wget auf dem Zielserver und vorher die Cookies mittels Command Line browser ermitteln. Aktuell teste ich Software auf den HP/UX Servern im HP Partnerprogramm PVP. Diese Server sind recht minimalistisch ausgestattet. Um dort einen SSL fähigen Command-Line Browser zu erhalten benutze ich das Links Paket. Es benötigt Perl und OpenSSL als Abhängigkeiten und wird im Software De
Der Oracle University Newsletter zum Ende des Jahres hat mich zum Schmunzeln gebracht, deswegen will ich Ihnen dieses YouTube Video (gefunden auf Irregular Enterprise Blog auf ZDNet) nicht vorenthalten.
Oracle und Amazon arbeiten zusammen um Oracle Anwendungen im Amazon Grid anzubieten. Es gibt jetzt einige Images die von Oracle kostenlos bereitgestellt werden. Oracle erlaubt sogar den Betrieb von Produktiven lizenzierten Anwendungen im EC2 Grid. Die Konfiguration ist sogar für offiziellen Support zertifiziert.
Besonders interessant sind aber auch die Möglichkeiten die vorinstallierten Anwendungen wie Application Express oder Enterprise Manager Grid einfach mal ausprobieren zu können.
Besonders interessant sind aber auch die Möglichkeiten die vorinstallierten Anwendungen wie Application Express oder Enterprise Manager Grid einfach mal ausprobieren zu können.
Geschrieben von Bernd Eckenfels
in Cloud, Datenbanken, Infrastruktur, Vernetzung
| Kommentare (0)
| Trackbacks (0)
Oracle und Amazon arbeiten zusammen um Oracle Anwendungen im Amazon Grid anzubieten. Es gibt jetzt einige Images die von Oracle kostenlos bereitgestellt werden. Oracle erlaubt sogar den Betrieb von Produktiven lizenzierten Anwendungen im EC2 Grid. Die Konfiguration ist sogar für offiziellen Support zertifiziert. Besonders interessant sind aber auch die Möglichkeiten die vorinstallierten Anwendungen wie Application Express oder Enterprise Manager Grid einfach mal ausprobieren zu können. Amazon/Oracle Partner News Oracle Cloud Computing Center
Ein nettes Feature beim Oracle SQL Developer ist die Möglichkeit einfachere oder komplexere SQL Statements als Reports zu hinterlegen und dann laufen zu lassen. Visualisierung in Form von Tabellen oder Grafiken mit inbegriffen.
In lockerer Folge möchte ich einige der Reports vorstellen die ich so einsetze. Heute der "Segment Size" Report, der eine Liste aller Segmente (eines Owners) erstellen kann, und diese nach Platzbedarf sortiert. Dabei werden für die Typen TABLE, INDEX und LOB* Details ausgegeben (also insbesondere zu welcher Tabelle das LOB oder Index Segment gehört, und welche Spalten es abdeckt).
Beim Start des Reports kann man den Owner (Schema User) angeben, für den man sich interessiert. Es wird hier ein substring vergleich verwendet, also bei der Eingabe von SYS (wie im Screenshot) werden die Ausgaben gruppiert nach mehreren Ownern gemacht.
Hier als Beispiel, der Index der im SYS Schema den meisten Raum belegt hat den Segment Namen "I_WRI$_OPTSTAT_H_OBJ#_ICOL#_ST" und er ist auf der Tabelle "WRI$_OPTSTAT_HISTGRM_HISTORY" im Tablespace SYSAUX angelegt. Der Index hat 3 Spalten, im Report wird nur die erste und letzte ausgegeben: "3: INTCOL#,SYS_NC00013$". Dies ist eine Einschränkung, weil es keine portable String Aggregationsfunktion gibt. Eventuell will sich jemand die Mühe machen dies auf mehr Spalten auszubauen?
Die Größenangabe des Segments (in Extends und Megabytes) basiert auf den Spalten bytes und extends aus dem DBA_SEGMENTS view. Entspricht also dem Platzverbrauch aber nicht dem Füllstand. Ausgelassen werden Recylce Objekte.
Der Report sollte mit allen Oracle Database Versionen lauffähig sein, das Export File ist im SQL Developer 1.5 Format. eckes-sqldeveloper.xml
In lockerer Folge möchte ich einige der Reports vorstellen die ich so einsetze. Heute der "Segment Size" Report, der eine Liste aller Segmente (eines Owners) erstellen kann, und diese nach Platzbedarf sortiert. Dabei werden für die Typen TABLE, INDEX und LOB* Details ausgegeben (also insbesondere zu welcher Tabelle das LOB oder Index Segment gehört, und welche Spalten es abdeckt).
Beim Start des Reports kann man den Owner (Schema User) angeben, für den man sich interessiert. Es wird hier ein substring vergleich verwendet, also bei der Eingabe von SYS (wie im Screenshot) werden die Ausgaben gruppiert nach mehreren Ownern gemacht.
Hier als Beispiel, der Index der im SYS Schema den meisten Raum belegt hat den Segment Namen "I_WRI$_OPTSTAT_H_OBJ#_ICOL#_ST" und er ist auf der Tabelle "WRI$_OPTSTAT_HISTGRM_HISTORY" im Tablespace SYSAUX angelegt. Der Index hat 3 Spalten, im Report wird nur die erste und letzte ausgegeben: "3: INTCOL#,SYS_NC00013$". Dies ist eine Einschränkung, weil es keine portable String Aggregationsfunktion gibt. Eventuell will sich jemand die Mühe machen dies auf mehr Spalten auszubauen?
Die Größenangabe des Segments (in Extends und Megabytes) basiert auf den Spalten bytes und extends aus dem DBA_SEGMENTS view. Entspricht also dem Platzverbrauch aber nicht dem Füllstand. Ausgelassen werden Recylce Objekte.
Der Report sollte mit allen Oracle Database Versionen lauffähig sein, das Export File ist im SQL Developer 1.5 Format. eckes-sqldeveloper.xml
Geschrieben von Bernd Eckenfels
in Datenbanken, SW Entwicklung
| Kommentare (0)
| Trackbacks (0)
Ein nettes Feature beim Oracle SQL Developer ist die Möglichkeit einfachere oder komplexere SQL Statements als Reports zu hinterlegen und dann laufen zu lassen. Visualisierung in Form von Tabellen oder Grafiken mit inbegriffen. Report: Usage Segment SizeIn lockerer Folge möchte ich einige der Reports vorstellen die ich so einsetze. Heute der \"Segment Size\" Report, der eine Liste aller Segmente (eines Owners) erstellen kann, und diese nach Platzbedarf sortiert. Dabei werden für die Typen TABLE, INDEX und LOB* Details ausgegeben (also insbesondere zu welcher Tabelle das LOB oder Index Segment gehört, und welche Spalten es abdeckt). Beim Start des Reports kann man den Owner (Schema User) angeben, für den man sich interessiert. Es wird hier ein substring vergleich verwendet, also bei der Eingabe von SYS (wie im Screenshot) werden die Ausgaben gruppiert nach mehreren Ownern gemacht. Hier als Beispiel, der Index der im SYS Schema den meisten Raum belegt hat den Segment Namen
Selten liest man über ZFS wirklich negatives. Das neue Filesystem von Solaris ist noch recht Jung, aber abgesehen von Tuning Problemen bei Datenbankservern waren mir noch keine echten Probleme bekannt. Bisher.
Dafür wundert mich ein wenig, dass nach der Schwemme an Tuningtips 2006 bisher nicht wirklich neue (und vor allem offizielle) Oracle/ZFS Info zu bekommen sind. Oder?
Dafür wundert mich ein wenig, dass nach der Schwemme an Tuningtips 2006 bisher nicht wirklich neue (und vor allem offizielle) Oracle/ZFS Info zu bekommen sind. Oder?
Geschrieben von Bernd Eckenfels
in Datenbanken, Infrastruktur
| Kommentare (0)
| Trackbacks (0)
Selten liest man über ZFS wirklich negatives. Das neue Filesystem von Solaris ist noch recht Jung, aber abgesehen von Tuning Problemen bei Datenbankservern waren mir noch keine echten Probleme bekannt. Bisher. Dafür wundert mich ein wenig, dass nach der Schwemme an Tuningtips 2006 bisher nicht wirklich neue (und vor allem offizielle) Oracle/ZFS Info zu bekommen sind. Oder?
Drüben im virtuellen Blog des fiktiven EDV Leiters Frank Bremer menschelt es. Intrigen und Aus-dem-Bauch Entscheidungen bestimmen den Alltag (das ist allzu realistisch .). Gerade ging es in einem Artikel darum, den CFO von seiner Anti-SOA Meinung (die er durch einen polarisierenden Artikel gefasst hat) durch den Google Zeitgeist abzubringen: wie groß ist der SOA Hype?
Dieser Blog Post hat mich motiviert selbst einmal einige Zeitgeist Trends gegenüberzustellen. Und bin dabei auf ein sehr interessantes (unerwartetes) Ergebnis gestoßen:

Danach gibt es um Größenordnungen mehr Anfragen zum Thema SQL als zum Thema SOA, dafür berichtet die Schreibende Zunft deutlich stärker über den Hype.
Es ist wohl unstrittig, dass SQL (Netzwerk) Datenbanken zu einem Paradigmenwechsel in der IT geführt haben. Und der Fieberkurve nach zu urteilen auch sehr nachhaltig. Das muß an dem hohen integrativen Potential von offenen Datenschnittstellen liegen. Nicht umsonst nennt man SOA das SQL des neuen Jahrhunderts. Mal sehen ob das EA Modell dem auch gerecht werden kann.
Aber gut, im Vergleich zu anderen Schlagwörtern ist SOA schon Alltag*:

* Ich fühle mich Unwohl dem Google Zeitgeist zu viel Bedeutung zuzumessen, aber wenn das Herr Müller Dreist überzeugt, sollte es auch meine Leser täuschen können :)
Dieser Blog Post hat mich motiviert selbst einmal einige Zeitgeist Trends gegenüberzustellen. Und bin dabei auf ein sehr interessantes (unerwartetes) Ergebnis gestoßen:

Danach gibt es um Größenordnungen mehr Anfragen zum Thema SQL als zum Thema SOA, dafür berichtet die Schreibende Zunft deutlich stärker über den Hype.
Es ist wohl unstrittig, dass SQL (Netzwerk) Datenbanken zu einem Paradigmenwechsel in der IT geführt haben. Und der Fieberkurve nach zu urteilen auch sehr nachhaltig. Das muß an dem hohen integrativen Potential von offenen Datenschnittstellen liegen. Nicht umsonst nennt man SOA das SQL des neuen Jahrhunderts. Mal sehen ob das EA Modell dem auch gerecht werden kann.
Aber gut, im Vergleich zu anderen Schlagwörtern ist SOA schon Alltag*:

* Ich fühle mich Unwohl dem Google Zeitgeist zu viel Bedeutung zuzumessen, aber wenn das Herr Müller Dreist überzeugt, sollte es auch meine Leser täuschen können :)
Geschrieben von Bernd Eckenfels
in Blogging, Datenbanken, Infrastruktur, Marketing, SOA
| Kommentare (2)
| Trackbacks (0)
Drüben im virtuellen Blog des fiktiven EDV Leiters Frank Bremer menschelt es. Intrigen und Aus-dem-Bauch Entscheidungen bestimmen den Alltag (das ist allzu realistisch .). Gerade ging es in einem Artikel darum, den CFO von seiner Anti-SOA Meinung (die er durch einen polarisierenden Artikel gefasst hat) durch den Google Zeitgeist abzubringen: wie groß ist der SOA Hype? Dieser Blog Post hat mich motiviert selbst einmal einige Zeitgeist Trends gegenüberzustellen. Und bin dabei auf ein sehr interessantes (unerwartetes) Ergebnis gestoßen: Danach gibt es um Größenordnungen mehr Anfragen zum Thema SQL als zum Thema SOA, dafür berichtet die Schreibende Zunft deutlich stärker über den Hype. Es ist wohl unstrittig, dass SQL (Netzwerk) Datenbanken zu einem Paradigmenwechsel in der IT geführt haben. Und der Fieberkurve nach zu urteilen auch sehr nachhaltig. Das muß an dem hohen integrativen Potential von offenen Datenschnittstellen liegen. Nicht umsonst nennt man SOA das SQ
Geschrieben von Bernd Eckenfels
in Blogging, Datenbanken
| Kommentare (0)
| Trackbacks (0)
Am Wochenende waren meine Frau und ich im Kino, und konnten uns schön die Vorstellung von Chaos (verursacht durch Dark Phoenix) in den Köpfen eines CGI Gestalters ansehen. Und dann stolpere ich am Abend doch glatt schon wieder im SQLCode Blog über ein halbwegs On-Topic Bild zum Thema Chaos (und Microsoft SQL Server).
Bei Euan Garden (MS SQL Server Team) gibt es einen Rückblick auf die MS SQL Server Entwicklungsgeschichte, mit Fotos der Verpackungen.
Hier ist gut nachzulesen wie Microsoft und Sybase zusammen die dBase Quellen Client/Server fähig gemacht haben. MS zuerst auf OS/2!
Hier ist gut nachzulesen wie Microsoft und Sybase zusammen die dBase Quellen Client/Server fähig gemacht haben. MS zuerst auf OS/2!
Geschrieben von Bernd Eckenfels
in Datenbanken
| Kommentare (0)
| Trackback (1)
SQL Server 1.0 for OS/2Bei Euan Garden (MS SQL Server Team) gibt es einen Rückblick auf die MS SQL Server Entwicklungsgeschichte, mit Fotos der Verpackungen. Hier ist gut nachzulesen wie Microsoft und Sybase zusammen die dBase Quellen Client/Server fähig gemacht haben. MS zuerst auf OS/2!
In der Software Entwicklung von DB verbundenen Systemen hat man immer die Notwendigkeit auch manuell mit der Datenbank Verbindung aufzubauen, SQL Statements abzusetzen oder auch mal in den DB Objekten zu browsen. Oftmals kommen hier Tools zum Einsatz. Im Oracle Umfeld dürfte TOAD hier am bekanntesten sein.
Integrierte Entwicklungsumgebungen wie Eclipse oder Oracle JDeveloper haben eigene Funktionen für den Zugriff auf Datenbanken. Diese sind aber nicht immer sehr effizient und komplett zu nutzen.
Oracle hat den SQL Developer veröffentlicht. Es ist eine Entwicklungsumgebung reduziert auf die Manipulation von SQL insbesondere auch PL/SQL Statements und Packages. Ein Teil der SQL Developer Funktionen wurden auch in den Oracle JDeveloper übernommen.
Integrierte Entwicklungsumgebungen wie Eclipse oder Oracle JDeveloper haben eigene Funktionen für den Zugriff auf Datenbanken. Diese sind aber nicht immer sehr effizient und komplett zu nutzen.
Oracle hat den SQL Developer veröffentlicht. Es ist eine Entwicklungsumgebung reduziert auf die Manipulation von SQL insbesondere auch PL/SQL Statements und Packages. Ein Teil der SQL Developer Funktionen wurden auch in den Oracle JDeveloper übernommen.
"Oracle SQL Developer" vollständig lesen
Geschrieben von Bernd Eckenfels
in Datenbanken, SW Entwicklung
| Kommentar (1)
| Trackbacks (0)
In der Software Entwicklung von DB verbundenen Systemen hat man immer die Notwendigkeit auch manuell mit der Datenbank Verbindung aufzubauen, SQL Statements abzusetzen oder auch mal in den DB Objekten zu browsen. Oftmals kommen hier Tools zum Einsatz. Im Oracle Umfeld dürfte TOAD hier am bekanntesten sein. Oracle SQL Developer Integrierte Entwicklungsumgebungen wie Eclipse oder Oracle JDeveloper haben eigene Funktionen für den Zugriff auf Datenbanken. Diese sind aber nicht immer sehr effizient und komplett zu nutzen. Oracle hat den SQL Developer veröffentlicht. Es ist eine Entwicklungsumgebung reduziert auf die Manipulation von SQL insbesondere auch PL/SQL Statements und Packages. Ein Teil der SQL Developer Funktionen wurden auch in den Oracle JDeveloper übernommen.
(Seite 1 von 2, insgesamt 19 Einträge)
nächste Seite »
Layout Bernd Eckenfels based on by Ricky Wilson | Serendipity Template by Carl Galloway | Login
Impressum
Bernd Eckenfels
Mörscher Str. 8
76185 Karlsruhe
bernd-2013@eckenfels.net
Read More
Suche
Kategorien
Blog abonnieren
IPv6 Check
Sie haben diese Website via IPv4 aufgerufen!

Kommentare