Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1377 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Soucis de connexion Oracle 9.1 avec Weblogic 6.1

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Soucis de connexion Oracle 9.1 avec Weblogic 6.1

n°197752
mahu le ma​lin
Posté le 20-08-2002 à 10:23:09  profilanswer
 

Yello !!  :hello:  
 
J'ai un petit soucis que je n'avais pas entre Weblo 5.1 et Oracle 8.1 !!!
 
c'est assez space !  :pt1cable:  
 
voila le code de ma servlet
 

Code :
  1. public class OracleServlet extends HttpServlet {
  2. public void doGet(HttpServletRequest request, HttpServletResponse response)
  3.   throws ServletException, IOException {
  4.         PrintWriter out = new PrintWriter(response.getOutputStream());
  5.         try {
  6.             Class.forName("oracle.jdbc.driver.OracleDriver" );
  7.             out.println("oracle.jdbc.driver.OracleDriver" );
  8.             StringBuffer sbUrl = new StringBuffer("jdbc:oracle:thin:@" );
  9.             sbUrl.append("host" );
  10.             sbUrl.append(":" );
  11.             sbUrl.append("port" );
  12.             sbUrl.append(":" );
  13.             sbUrl.append("sid" );
  14.             out.println(sbUrl.toString());
  15.             Connection conn = DriverManager.getConnection(sbUrl.toString(), "user", "pass" );
  16.             String qry = "SELECT DOCid FROM documents";
  17.             out.println(qry);
  18.             PreparedStatement ps = conn.prepareStatement(qry);
  19.             ResultSet rs = ps.executeQuery();
  20.             while (rs.next()) {
  21.                 out.println("> "+rs.getString("DOCid" ));
  22.             }
  23.             qry = "SELECT DOCid, DOCname FROM documents";
  24.             out.println(qry);
  25.             ps = conn.prepareStatement(qry);
  26.             rs = ps.executeQuery();
  27.             while (rs.next()) {
  28.                 out.println("> "+rs.getString("DOCid" ));
  29.             }
  30.             out.println("!!!fini!!!" );
  31.         } catch (Exception e) {
  32.             e.printStackTrace(out);
  33.         }
  34.         out.flush();
  35.     }
  36. }


 
et en voici la réponse  :sol:  
 

oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@host:port:sid
SELECT DOCid FROM documents
> 13
> 14
> 15
> 16
> 12
SELECT DOCid, DOCname FROM documents
java.sql.SQLException: ORA-00600: code erreur interne, arguments : [ttcgcshnd-1], [0], [], [], [], [], [], []
 
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
 at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
 at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
 at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
 at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:889)
 at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:1681)
 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1870)
 at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:363)
 at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:314)
 at test.servlet.OracleServlet.doGet(OracleServlet.java:44)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:263)
 at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
 at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2390)
 at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1959)
 at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
 at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)


 
en gros je ne peux pas faire un select de plusieurs champs...
 :sweat:  
 
si quelqu'un a une idée de se qu'il se passe
 
merci d'avance


---------------
JeuxVideo.Records.Mame
mood
Publicité
Posté le 20-08-2002 à 10:23:09  profilanswer
 

n°197755
darklord
You're welcome
Posté le 20-08-2002 à 10:25:59  profilanswer
 

tu n'as pas fermé ton statement entre les deux requetes


---------------
Just because you feel good does not make you right
n°197764
mahu le ma​lin
Posté le 20-08-2002 à 10:36:40  profilanswer
 

oui je sais mais la n'est pas le probleme
le but de l'exemple est :
avec "SELECT DOCid FROM documents" ca marche et autant de fois que je veux,
alors qu'avec "SELECT DOCid, DOCname FROM documents" ou meme "SELECT * FROM documents" ca ne marche jamais et met cette erreur incomprehensible :

java.sql.SQLException: ORA-00600: code erreur interne, arguments : [ttcgcshnd-1], [0], [], [], [], [], [], []


---------------
JeuxVideo.Records.Mame
n°197765
mahu le ma​lin
Posté le 20-08-2002 à 10:37:40  profilanswer
 

ah oui, au fait !
depuis un tomcat 3.x je n'ai pas ce probleme  [:jofusion]  :pt1cable:


---------------
JeuxVideo.Records.Mame
n°197768
darklord
You're welcome
Posté le 20-08-2002 à 10:39:10  profilanswer
 

mahU le malin a écrit a écrit :

oui je sais mais la n'est pas le probleme




 
bin ferme le avant dire que c'est pas ca le problème. De toutes façons c'est mauvais de faire ce que tu fais, erreur directe ou pas.


---------------
Just because you feel good does not make you right
n°197774
mahu le ma​lin
Posté le 20-08-2002 à 10:43:16  profilanswer
 

DarkLord a écrit a écrit :

 
bin ferme le avant dire que c'est pas ca le problème. De toutes façons c'est mauvais de faire ce que tu fais, erreur directe ou pas.




 
et le nommage des variables il est bon ?


---------------
JeuxVideo.Records.Mame
n°197775
darklord
You're welcome
Posté le 20-08-2002 à 10:44:06  profilanswer
 

oui. Ceci dit  c'est ou que tu fais con.close()?


Message édité par darklord le 20-08-2002 à 10:44:27

---------------
Just because you feel good does not make you right
n°197777
mahu le ma​lin
Posté le 20-08-2002 à 10:47:55  profilanswer
 

:pt1cable:  
a mon avis c'est le gc qui fonctionne mal  :D  
 
mis à part les débats sur est-ce que tu as fermé tel ou tel objet, pas d'idée  :cry:  
 
j'aurais du envoyer le nom du package avec :  

Code :
  1. package test


---------------
JeuxVideo.Records.Mame
n°197780
darklord
You're welcome
Posté le 20-08-2002 à 10:52:16  profilanswer
 

ferme ta connection à la fin, ferme ton statement avant de faire ta deuxième requete et après ta deuxième requete et si ca marche toujours pas bin on en reparlera ...


Message édité par darklord le 20-08-2002 à 10:53:15

---------------
Just because you feel good does not make you right
n°197781
darklord
You're welcome
Posté le 20-08-2002 à 10:52:56  profilanswer
 

mahU le malin a écrit a écrit :

mis à part les débats sur est-ce que tu as fermé tel ou tel objet, pas d'idée  :cry:  




 
c'est pas un débat. Y a qqch que tu dois faire et que tu ne fais pas. Donc si en plus ca plante corrige au lieu de polémiquer :)


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le 20-08-2002 à 10:52:56  profilanswer
 

n°197782
--greg--
Posté le 20-08-2002 à 10:55:34  profilanswer
 

DarkLord a écrit a écrit :

ferme ta connection à la fin, ferme ton statement avant de faire ta deuxième requete et après ta deuxième requete et si ca marche toujours pas bin on en reparlera ...



:ange:

n°197787
darklord
You're welcome
Posté le 20-08-2002 à 10:59:36  profilanswer
 

--greg-- a écrit a écrit :

 :ange:  




 
je précise puisque -greg-- le fait si bien remarquer que j'ai fait ce genre d'erreurs dernièrement. Ca faisait un bail que j'avais plus toucher à JDBC et c'est ca brave ami qui m'a remis dans le droit chemin  
 
donc [:prosterne] greg [:prosterne2]


Message édité par darklord le 20-08-2002 à 11:04:22

---------------
Just because you feel good does not make you right
n°197790
--greg--
Posté le 20-08-2002 à 11:01:29  profilanswer
 

c'est [: prosterne ] et [: prosterne2 ] :D


Message édité par --greg-- le 20-08-2002 à 11:03:27
n°197792
darklord
You're welcome
Posté le 20-08-2002 à 11:03:29  profilanswer
 

--greg-- a écrit a écrit :

c'est [: prosterne ] et [: prosterne2 ] :D
 
edit: uh!  :ouch:




 
marche pu
 
taiste [:prosterne]
 
edit: ah si :)


Message édité par darklord le 20-08-2002 à 11:04:38

---------------
Just because you feel good does not make you right
n°197794
--greg--
Posté le 20-08-2002 à 11:04:46  profilanswer
 

voila qui est mieux [:dawa]

n°197795
darklord
You're welcome
Posté le 20-08-2002 à 11:05:18  profilanswer
 

:cry:


---------------
Just because you feel good does not make you right
n°197816
El_gringo
Posté le 20-08-2002 à 11:20:32  profilanswer
 

mahU le malin a écrit a écrit :

oui je sais mais la n'est pas le probleme
le but de l'exemple est :
avec "SELECT DOCid FROM documents" ca marche et autant de fois que je veux,
alors qu'avec "SELECT DOCid, DOCname FROM documents" ou meme "SELECT * FROM documents" ca ne marche jamais et met cette erreur incomprehensible :

java.sql.SQLException: ORA-00600: code erreur interne, arguments : [ttcgcshnd-1], [0], [], [], [], [], [], []






 
Tu apprendras qu'une erreur Oracle est rarement compréhensible jeune padawan !
Google sera la encore ton ami.
Voila de la lecture :
http://www.google.fr/search?q=ORA- [...] ogle&meta=

n°197818
darklord
You're welcome
Posté le 20-08-2002 à 11:21:59  profilanswer
 

en bref et en  clair, il semble que tu utilises les drivers d'oracle 8 sur une base Oracle 9


---------------
Just because you feel good does not make you right
n°197822
mahu le ma​lin
Posté le 20-08-2002 à 11:23:30  profilanswer
 

Voila j'ai tout refait comme demandé ;-)
 
voici le code pour affichage console :
 

Code :
  1. package test;
  2. import java.sql.*;
  3. public class Oracle  {
  4.     public static String dbHost = "x";
  5.     public static String dbPort = "1585";
  6.     public static String dbSid = "PORTST";
  7.     public static String dbUser = "admportail";
  8.     public static String dbPass = "oracle";
  9. public static void main (String[] args) {
  10.         try {
  11.             Class.forName("oracle.jdbc.driver.OracleDriver" );
  12.             StringBuffer sbUrl = new StringBuffer("jdbc:oracle:thin:@" );
  13.             sbUrl.append(dbHost);
  14.             sbUrl.append(":" );
  15.             sbUrl.append(dbPort);
  16.             sbUrl.append(":" );
  17.             sbUrl.append(dbSid);
  18.             Connection conn = DriverManager.getConnection(sbUrl.toString(), dbUser, dbPass);
  19.             String qry = "SELECT DOCid FROM documents";
  20.             System.out.println(qry);
  21.             PreparedStatement ps = conn.prepareStatement(qry);
  22.             ResultSet rs = ps.executeQuery();
  23.             while (rs.next()) {
  24.                 System.out.println("> "+rs.getString("DOCid" ));
  25.             }
  26.             ps.close();
  27.             qry = "SELECT DOCid, DOCname FROM documents";
  28.             System.out.println(qry);
  29.             ps = conn.prepareStatement(qry);
  30.             rs = ps.executeQuery();
  31.             while (rs.next()) {
  32.                 System.out.println("> "+rs.getString("DOCid" ));
  33.             }
  34.             System.out.println("!!!fini!!!" );
  35.             conn.close();
  36.         } catch (Exception e) {
  37.             e.printStackTrace();
  38.         }
  39.     }
  40. }


 
avec la sortie console :
 

SELECT DOCid FROM documents
> 13
> 14
> 15
> 16
> 12
SELECT DOCid, DOCname FROM documents
> 13
> 14
> 15
> 16
> 12
!!!fini!!!


 
on peut en conclure que saturne rond !
 
maintenant le code de servlet dans weblo
 

Code :
  1. package test.servlet;
  2. import javax.servlet.*;
  3. import javax.servlet.http.*;
  4. import java.sql.*;
  5. import java.io.*;
  6. public class OracleServlet extends HttpServlet {
  7.     public static String dbHost = "x";
  8.     public static String dbPort = "1585";
  9.     public static String dbSid = "PORTST";
  10.     public static String dbUser = "admportail";
  11.     public static String dbPass = "oracle";
  12. public void doGet(HttpServletRequest request, HttpServletResponse response)
  13.   throws ServletException, IOException {
  14.         PrintWriter out = new PrintWriter(response.getOutputStream());
  15.         try {
  16.             Class.forName("oracle.jdbc.driver.OracleDriver" );
  17.             StringBuffer sbUrl = new StringBuffer("jdbc:oracle:thin:@" );
  18.             sbUrl.append(dbHost);
  19.             sbUrl.append(":" );
  20.             sbUrl.append(dbPort);
  21.             sbUrl.append(":" );
  22.             sbUrl.append(dbSid);
  23.             Connection conn = DriverManager.getConnection(sbUrl.toString(), dbUser, dbPass);
  24.             String qry = "SELECT DOCid FROM documents";
  25.             out.println(qry);
  26.             PreparedStatement ps = conn.prepareStatement(qry);
  27.             ResultSet rs = ps.executeQuery();
  28.             while (rs.next()) {
  29.                 out.println("> "+rs.getString("DOCid" ));
  30.             }
  31.             ps.close();
  32.             qry = "SELECT DOCid, DOCname FROM documents";
  33.             out.println(qry);
  34.             ps = conn.prepareStatement(qry);
  35.             rs = ps.executeQuery();
  36.             while (rs.next()) {
  37.                 out.println("> "+rs.getString(1)+" - "+rs.getString(2));
  38.             }
  39.             out.println("!!!fini!!!" );
  40.             conn.close();
  41.         } catch (Exception e) {
  42.             e.printStackTrace(out);
  43.         }
  44.         out.flush();
  45.     }
  46. }


 
qui génère la même réponse que taleur
 

SELECT DOCid FROM documents
> 13
> 14
> 15
> 16
> 12
SELECT DOCid, DOCname FROM documents
java.sql.SQLException: ORA-00600: code erreur interne, arguments : [ttcgcshnd-1], [0], [], [], [], [], [], []
 
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
 at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
 at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
 at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
 at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:889)
 at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:1681)
 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1870)
 at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:363)
 at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:314)
 at test.servlet.OracleServlet.doGet(OracleServlet.java:48)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:263)
 at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
 at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2390)
 at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1959)
 at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
 at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)


---------------
JeuxVideo.Records.Mame
n°197831
darklord
You're welcome
Posté le 20-08-2002 à 11:27:38  profilanswer
 

ton résultset faut le fermer aussi


---------------
Just because you feel good does not make you right
n°197837
El_gringo
Posté le 20-08-2002 à 11:30:07  profilanswer
 

DarkLord a écrit a écrit :

ton résultset faut le fermer aussi




 
S'il utilise pas de pool, quand il ferme une connection, les statments qui y sont attachés sont fermés.
Quand on ferme un Statement,  les ResultSet qui y sont attachés sont fermés.
Non !?

n°197841
--greg--
Posté le 20-08-2002 à 11:32:52  profilanswer
 

El_Gringo a écrit a écrit :

 
 
S'il utilise pas de pool, quand il ferme une connection, les statments qui y sont attachés sont fermés.
Quand on ferme un Statement,  les ResultSet qui y sont attachés sont fermés.
Non !?



si
mais bon
c pas une raison :D

n°197842
darklord
You're welcome
Posté le 20-08-2002 à 11:33:11  profilanswer
 

je préfère éviter les "si". De toutes façons ca doit etre fermé donc autant le faire explicitement.


---------------
Just because you feel good does not make you right
n°197845
mahu le ma​lin
Posté le 20-08-2002 à 11:34:51  profilanswer
 

il ne reste plus qu'a trouvé les drivers thin d'oracle 9
car les drivers oci c'est plutot :-/


---------------
JeuxVideo.Records.Mame
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Soucis de connexion Oracle 9.1 avec Weblogic 6.1

 

Sujets relatifs
[java] "partager" un singleton ... euh...[java] dessiner une image ailleurs que dans paint()
[JAVA] convertir an bd acces97 en jds[java] probleme de Date
Comment faire pour imprimer une image de l'applet(JAVA) sans plugin???Quel est le meilleur éditeur pour Java, s.v.p. ?
[Java + WebObject] Suppression d'une ligne d'une bd (Resolu)[Java] ResultSet et Date (résolu)
[Java]classe abstraite pour un projet BookmarksUtiliser l'Applet Java et Socket pour imprimer: Comment??????
Plus de sujets relatifs à : [Java] Soucis de connexion Oracle 9.1 avec Weblogic 6.1


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR