DB-zugriff

Liebe/-r Experte/-in,

ich habe ein Program in java geschrieben, der einen zugriff auf Oracle DB ermöglicht.
Der Datenbank ist auf meinem Rechner zuhause.
Java-code ist auf meinem Laptop.
wenn ich zuhause bin dann läuft wunderbar(Logisch wegen gleich netzwerk) aber wenn ich draußen bin dann klapt s nicht mehr und bekomme ich Fehlermeldung (Verbindung Fehlgeschlagen). wie kann ich das problem Lösen.
private String url =„jdbc:oracle:thin:@IP:1521:orcl1“;

Danke im Voraus!

mfg
Simo

  1. Account by DynDns.org öä. besogen zB: simo.getmyip.com(Ip Update Programm auf Datenbank PC einrichten)
  2. Datenbank Port 1521 im Router auf Datenbank PC forwarden
  3. ConnectString Extern dbc:oracle:thin:@simo.getmyip.com:1521:orcl1" benutzen.
    (Der geht nur von extern sonst mus der string in die hosts Datei eingetragen werden).
  4. Sich ein wenig Gedanken über Sicherheit machen. Accounts Passwörter Verschlüsselung

MfG
Ingo

Hallo Simo,

also ich habe zwei spontane Vermutungen.

  1. Die Verbindung zum Zielrechner mit DB kommt nicht zu stande… (falsche IP / Firewall usw.)

  2. Die Datenbank ist so konfiguriert, dass sie nur Anfragen aus dem lokalen Netz zulässt.

Beschreib bitte mal etwas genauer, was für eine Fehlermeldung du bekommst und wie du die Verbindung von unterwegs realisiert hast…

mfg
Tim

Hallo Simo,

dein Problem dürfte weniger mit Oracle zusammenhängen als mit der Auflösung der IP-Adresse übers Internet (=draussen?)(Ich vermute ein ping auf die IP wird auch nicht funktionieren).
Villeicht kannst du ein paar mehr Infos über deinen Architektur geben…

Viele Grüße
Wolfgang

Hallo Simo,

dein Problem müsste sein, dass Du zwar deine Anmeldung über den 1521 an Oracle sendet, Oracle aber in der Grundeinstellung einen Port für die Rückantwort aushandelt. Dieser Port ist mit Sicherheit geblockt.

Auf dieser Seite sollte Du die Einstellungen finden http://it.toolbox.com/wiki/index.php/Connect_Oracle_…

Im Grunde musst Du OrCLE SAGEN; DASS DIE db IMMER DEN SELBEN Port in beiden Richtungen für die Kommunikation benutzt.

Grüße Patrick

Hi!

Der Datenbank ist auf meinem Rechner zuhause.
Java-code ist auf meinem Laptop.
wenn ich zuhause bin dann läuft wunderbar(Logisch wegen gleich
netzwerk) aber wenn ich draußen bin dann klapt s nicht mehr
und bekomme ich Fehlermeldung (Verbindung Fehlgeschlagen).

Kannst Du Dich überhaupt von „draußen“ an Deinen Rechner zuhause verbinden??
Was sagt der tnsping?

Grüße,
Tomh

Hallo Simo,

Dein Problem hat nichts mit der Oracle-DB als solches zu tun. Es handelt sich um ein „Netzwerkproblem“. Da Du (Dein Laptop) sich „draußen“ in einem anderen Netzwerk befindet, und das Netwzwerk nichts von deinem Rechner mit der Datenbank weiß, kann es (bzw. Dein Programm) die Datenbank auch nicht finden.

Ich empfehle Dir einen besseren Netzwerkexperten als mich hier zu Fragen mit dem Stichwort „Verbindung/Routing vom öffentlichen Netz in ein privates Netz“, oder „Tunneling“.

Es tut mir leid Dir nicht wirklich weiter geholfen zu haben.

Schöne Grüße
KleinesSQLWunder

Hallo, Simo!

Kannst Du von „draußen“ Deine Datenbank mit dbping erreichen?

Wenn ja, dann versuch mal ein simples conect per sqlplus.

Wenn das alles funktioniert, sollte die Applikation ebenfalls zugreifen können.

Wenn das dbping fehlschlägt, wäre es interessant zu wissen, wie Dein Server im Netz steht. Vielleicht lässt die Firewall oder der Router Dich nicht durch.

lg,

Holger

puuuh … da muss ich erst mal passen.
Mir fallen da ein paar Sachen ein, wie z.B. Firewalls mit Portfilter usw.

Hast du das schon mal gecheckt ?

Gruss
Marco

Hi rachid,
so aus dem Bauch heraus würde ich sagen, dass hier über die Funkverbindung entweder die Firewall oder der Proxy deines Funkproviders nicht mitspielt.
Außerdem musst du deinen Rechner ja dann über deinen Router erreichen. Vieleicht liegt das Problem dort am Routing. Dein Router hat ja wahrscheinlich auch eine wechselnde IP über deine DSL Verbindung.
Die IP musst du dann noch wissen. Oder über DynDNS laufen lassen. Vieleicht versuchst du mal mit Wireshark oder ähnlichem etwas herauszufinden.

Hallo Simo,

da gibt es keine einfache Antwort. Da du nicht mehr im eigenen LAN bist, würde ich ersteinmal schauen, ob du von deinem Rechner von aussen eine Antwort erhältst. Mache einen cmd ping „IP“. Wenn du bis zu deinem Rechner kommst must du die Firewall checken ob der Post 1521 freigeschaltet ist.

Gruß
Hartmut

Hallo Rachid,

vermutlich lässt dein DSL-Router die Verbindung nicht durch.
Oracle SQL-Net läuft üblicherweise auf Port 1521. Wenn dein Java Programm also eine Verbindung über diesen Port herstellt, dann mußt du auf deinem Router dafür ein Port-Forwarding einrichten. Wie das geht steht in der Anleitung deines Routers.

Viele Grüße
Peter

Hallo Simo,

kannst Du denn Deine IP-Adresse von außen denn überhaupt sehen (i.A.: ein ping auf die Adresse absetzen)? Wenn nein, kann entweder Dein Router (vulgo DSL-Anschluß) den Port gesperrt haben oder Du hast keine feste IP-Adresse. Dann solltest Du Dich zum Thma DynDNS schlau machen (z.B. hier http://www.planet-rcs.de/article/dyndns_howto/)

MfG Georg V.

Hallo Rachid
draussen=internet?
wenn ja, hast du eine fixe IP Adresse auf dem Router und dem Oracle Server?
Andernfalls musst versuchen, mit „NAT“ dem Internet die IP Adresse deines Servers beizubringen, gleichzeitig aber nur den Latptop durchzulassen.
Dein Internet Provider sollte mehr dazu wissen.
Es ist kein Oracle Problem, würde ich sagen, vielleicht können dir sonst auch die wer-weiss-was Netzwerker oder auch die Java Programmierer weiterhelfen, Stichwort Proxy.
Hoffe,das hilft, Gruss, Ulrich

Liebe/-r Experte/-in,

wenn ich zuhause bin dann läuft wunderbar(Logisch wegen gleich
netzwerk) aber wenn ich draußen bin dann klapt s nicht mehr
und bekomme ich Fehlermeldung (Verbindung Fehlgeschlagen). wie

Hallo!

Ich bin DB-Experte des Entwurfs & der Implementierung. Bei ORACLE gab (und gibt?) es das eigenständige Netzwerk, dass Daten überträgt. Allerdings habe ich damit keine Erfahrung, da ich immer sozusagen an den „gedeckten Tisch“ mich gesetzt habe: Die Umgebung wurde in den Projekten immer vor meinem Eintreffen installiert & lief soweit, dass ich programmieren konnte. Darum fürchte ich, dass ich dir nicht weiterhelfen werde können.

LG
Sae1962

Du benötigst eine IP Adresse, für deine DB, die auch von außerhalb erreichbar ist. Wie man das am geschiscktesten hinbekommt, kann dir ein Netzwerk Experte sagen

Hallo Simo,

Ihre Frage:

ich habe ein Program in java geschrieben, der einen zugriff
auf Oracle DB ermöglicht.
Der Datenbank ist auf meinem Rechner zuhause.
Java-code ist auf meinem Laptop.
wenn ich zuhause bin dann läuft wunderbar(Logisch wegen gleich
netzwerk) aber wenn ich draußen bin dann klapt s nicht mehr
und bekomme ich Fehlermeldung (Verbindung Fehlgeschlagen). wie
kann ich das problem Lösen.
private String url =„jdbc:oracle:thin:@IP:1521:orcl1“;

Danke im Voraus!

mfg
Simo

es ist ein Netzwerkproblem. Der Connect-String enthält den Netzwerknamen des Rechners, auf dem die Datenbank läuft. In Ihrem Falle ist der Name „IP“. Dieser Name wird in eine IP-Adresse übersetzt, das kann durch einen DSN (Domain Name Server) oder durch das File „hosts“ sein. Das File liegt je nach Betriebssystem woanders. Bei Unix/Linux in /etc, bei Windows XP in c:\windows\systems32\drivers\etc. Die IP-Adresse Ihres Rechners kann von der Umgebung abhängen , in der Sie arbeiten. Wie greifen Sie von „draussen“ mit Ihrem Laptop auf Ihren Rechner zu? Sie müssen die IP-Adresse des Rechners wissen. Diese tragen Sie dann in das hosts-file auf dem Laptop ein und es sollte funktionieren. Sofern alle Firewalls für den Port 1521 freigeschaltet sind (+ weitere Ports, aber das führt hier zu weit).

Eventuell müssen Sie das hosts file wechseln, je nachdem ob Sie mit dem Laptop zuhause oder remote abreiten. Oder NAT (Network adress translation) benutzen

Ich hoffe, das hilft Ihnen weiter. Es gibt sehr viele kostenlose Hilfe zu Oracle im Internet, u.a. auch bei Oracle selbst (forums.oracle.com).

Ich arbeite übrigens als Consultant bei Oracle.

Viele Grüße,
Klaus Gamerdinger

Hallo Rachid,

Du verwendest einen JDBC-Treiber, der zur Identifizierung der Datenbank den von Dir beschriebenen String verwendet.
Der Teil-String hinter dem „@“ muß auf die Umgebung in dem fremden Netz angepaßt werden. Erkundige Dich bei den Administratoren der Oracle-DB nach deren IP, dem Port des Listeners und der SID. Passe die URL an und starte einen neuen Versuch.

Gruß Rolf

hallo rachid,
vermutlich verhindert eine Firewall auf dem DB-Server und/oder deinem DSL-Router den Zugriff auf die Datenbank.
Dies ist prinzipiell richtig und eine sinnvolle Standardeinstellung.

Überprüfe die Firewall-Einstellungen und untersuche die entsprechenden Log-Files auf enprechende Einträge um dies zuverifizieren.

Falls dem so ist, musst Du deimer Firewall eine Regel hinzufügen, dass die ganze Welt auf die DB auf deinem DB-Server zugreifen darf.

Grüße
Frau Bratbecker