Announcement

Collapse
No announcement yet.

Verbindungsprobleme im Intranet

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verbindungsprobleme im Intranet

    Hallo da draußen,
    ich habe ein Problem bei der Initialisierung einer JDBC-Verbindung zweier NT-Rechner im Intranet. Konkreter handelt es sich um einen Oracle 8.16 Server und den dazugehörigen Client.
    Aus der Exception SQLException kann ich keine wirklich relevante Inforamtion gewinnen.
    Meine Fragen sind folgende:
    1. Welche Voraussetzungen müssen erfüllt sein, damit überhaupt eine Verbindung zustandekommt ??
    2. Welche Treiber ist geeignet, welcher ist ungeeignet ??
    (ich habe bisher mit oracle:thin und jdbc experimentiert)

    Danke für hilfreiche Tips Henry

  • #2
    Hallo Henry!

    Wenn Du den Thin-Treiber (Typ 4 in JDBC) verwendest, laeuft die
    Verbindung ueber reines TCP/IP ab, und zentrale Voraussetzung
    waere also, ob Dein Server in diesem Sinne erreichbar ist (ping).
    <p>
    Auf dem Client brauchst Du bei diesem Treiber keine Oracle-Clientsoftware installieren (anders beim OCI-Treiber). Lediglich die Treiberklassen muessen der JVM zur Verfuegung stehen.
    <p>
    Aus der Exception koennte man ggf. sehr wohl relevante Informationen
    gewinnen, vielleicht legst Du mal den Stacktrace hier ab.
    <p>
    Herzliche Gruesse aus Hamburg, <br>
    Stefa

    Comment


    • #3
      Hi Henry,

      schau auch mal, ob an der SQLException noch eine sogenannte <i>chaned exception</i> dranhängt.

      <code>SQLException.getNextException()</code>

      c

      Comment


      • #4
        Hallo Stefan,
        danke erstmal für die "Erste Hilfe" !
        Leider ist die Sache noch nicht so ganz am laufen, wie sie sollte.
        Ich habe in der Zwischenzeit einige Untersuchungen angestellt und dabei herausgefunden, daß die Verbindung physikalische Ok ist -->
        Folgender Konstrukt geht positiv aus:
        try
        {
        Socket socket = new Socket("serv.hv.vn",1521);
        PrintStream os = new PrintStream(socket.getOutputStream());
        DataInputStream is = new DataInputStream((socket.getInputStream()));
        System.out.println("Verbunden");
        }
        catch (Exception e)
        {
        System.out.println("Fehler bei der Verbindung");
        }
        D.h. es sollte wahrscheinlich der oracle:thin driver sein.
        Ich glaube mein Schwierigkeiten liegen doch mehr am Connect-String.
        Vielleicht kennt sich ja damit noch jamand aus ??
        Danke im Voraus Henr

        Comment


        • #5
          Hallo Thomas,
          danke für den Tipp. Ich habe gleich mal folgendes abgetestet:
          ################################################## #########
          String url = "jdbcracle:thin:@schul.hv.vn:schul6.gdm";
          try
          {
          Connection con = DriverManager.getConnection(url,"login","pw");
          }
          catch( SQLException connectFailed )
          { // Verbindungsfehler behandeln
          System.out.println("Verbindungsaufbau fehlgeschlagen");
          SQLException next = connectFailed.getNextException();
          if(next == null)
          {
          System.out.println("Keine weiter Exception");
          }
          }
          catch( Exception e)
          {
          System.out.println("Unbekannter Verbindungsfehler");
          }
          ################################################## #############
          Der Konstrukt ergab:
          Verbindungsaufbau fehlgeschlagen
          Keine weiter Exception

          Laßt sich anhand dessen etwas genaueres Erkennen ??
          Henr

          Comment


          • #6
            Hallo Henry!
            <br><br>
            Dein ConnectionString (URL) sollte folgende Form haben: <br>
            jdbcracle:thin:@hostnameortracle-sid <br>
            (Port i.d.R. 1521). Bau in deinen catch-Block mal ein:
            <pre>
            System.out.println(connectFailed.getMessage());
            connectFailed.printStackTrace();
            </pre>
            Vielleicht sehen wir dann, ob Deine URL nicht korrekt geformt ist, die Anmeldung nicht stimmt etc. So wie Du oben vorgehst
            verlierst Du saemtliche Infos, die Dir das Exception-Objekt geben koennte, aus den Augen.
            <br><br>
            Viel Erfolg, Stefa

            Comment


            • #7
              Hallo Stefan und danke für die Hilfe,
              ich habe also die Zeilen verwendet und die Sache beginnt sich informativer zu gestalten.
              Allerdings sieht mir die so entstandene Meldung sehr nach einem Verbindungsproblem aus:
              ############################
              Verbindungsaufbau fehlgeschlagen

              E/A-Exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135286784)(ERR=1 2505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

              java.sql.SQLException: E/A-Exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135286784)(ERR=1 2505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
              ##########################
              ...obwohl ein Ping funktioniert.....
              Henr

              Comment


              • #8
                <P>
                Noch ne Frage, wie bekomme ich die Oracle-sid heraus??
                Henry
                </P&gt

                Comment


                • #9
                  Danke an die beiden hilfreichen Berater !!
                  Ich habe mit Hilfe Eurer Tips den Fehler gefunden und beseitigt.
                  Es funktioniert!

                  Schönes Wochenende Henr

                  Comment


                  • #10
                    Hallo Henry,

                    prima, dass es nun funktioniert.

                    Aber als Mitleser wäre es auch interessant zu lesen, wie Du nun erfolgreich hinbekommen hast.

                    Viele Grüsse
                    Hug

                    Comment


                    • #11
                      Hallo Hugo,
                      ist zwar schon ein paar Tage her, aber wenn es interesse gibt:
                      Im Intranet ist der oracle:thin sehr verbreitet. Diesen habe ich verwendet. Desweiteren ist der HOSTNAME des Servers wichtig. Es läßt sich leicht mit einem PING prüfen, ob man diesbezüglich richtig liegt.
                      Nun ist noch der Datenbankname wichtig. Wenn man sich an der SQL-Konsole anmelden kann, hat man auch diesen. 3.Feld->"Connectstring".
                      Nun setzt man nur noch die gefundenen Stücken wie folgt aneinander:
                      jdbcracle:thin:scott/[email protected]:1527rad
                      --> Protokoll:Treibername:Login/Passwort@HOSTNAME:PORT:Connectstring
                      mfg Henr

                      Comment

                      Working...
                      X