Erreur de process et socket

Erreur de process et socket - Java - Programmation

Marsh Posté le 07-06-2004 à 15:08:25    

Je réalise un programme parcourant un répertoire et insérant ensuite dans une table ORACLE le nom pour chaque fichier, sa taille et le contenu du fichier dans un BLOB
 
Voila mon code  
 
 

Code :
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. /**
  9. * @author user
  10. *
  11. * To change this generated comment edit the template variable "typecomment":
  12. * Window>Preferences>Java>Templates.
  13. * To enable and disable the creation of type comments go to
  14. * Window>Preferences>Java>Code Generation.
  15. */
  16. public class essai
  17. {
  18. public static void listeRepertoire ( File repertoire  ) throws IOException, SQLException
  19.  {
  20.       
  21.  String name;
  22.  long taille;
  23.  java.sql.Date date;
  24.  java.util.Date date2;
  25.  String chaine;
  26.     
  27.  // déclaration des variables  
  28.  Connection conn = null;
  29.  java.sql.PreparedStatement ps2 = null;
  30.  File file = null;
  31.  FileInputStream fis = null;
  32.  long fileLength;
  33.  int j=0;   
  34.  String url = "jdbc:oracle:thin:@stat9007:1521:ADMORA8I";
  35.  String user = "*****";
  36.  String passWord = "******";
  37.     
  38.  if ( repertoire.isDirectory ( ) )
  39.   {
  40.            
  41.   File[] list = repertoire.listFiles();
  42.   for ( int i = 0; i < list.length; i++)
  43.    {
  44.       
  45.    name=list[i].getName();
  46.    taille=list[i].length();
  47.    date= new java.sql.Date(list[i].lastModified());
  48.    date2=new java.util.Date(list[i].lastModified());
  49.    chaine= date.toString();
  50.    chaine =""+chaine.substring(8,10)+"/" + chaine.substring(5,7) +"/" + chaine.substring(0,4)+" " + date2.toString().substring(11,16) +"";
  51.    String fileName =  list[i].getAbsolutePath().replace('\\','/');
  52.          
  53.    try
  54.     {
  55.     Class.forName("oracle.jdbc.driver.OracleDriver" );
  56.     conn = DriverManager.getConnection(url,user,passWord);
  57.     ps2 = conn.prepareStatement("insert into   BASEQ.BQ_STDLIST (  BASEQ.BQ_STDLIST.STD_CODE ,  BASEQ.BQ_STDLIST.STD_TAILLE ,   BASEQ.BQ_STDLIST.STD_DT_INT ,   BASEQ.BQ_STDLIST.STD_DOC)values(   '"+name +"'   ,"+taille +", TO_DATE('"+chaine+"','DD/MM/YYYY HH24:MI'),?) " );
  58.     file = new File(fileName);
  59.     fileLength = file.length();
  60.     fis = new FileInputStream(file);
  61.      
  62.     // définition des variables dans la requete  
  63.     ps2.setBinaryStream(1, fis, (int)fileLength);
  64.        
  65.     // envoi de la requête pré-compilée avec les paramêtres  
  66.     ps2.executeUpdate();
  67.      
  68.     ps2.close();
  69.     fis.close();
  70.     conn.close();
  71.          
  72.     }
  73.               
  74.    catch (Exception e)
  75.     {
  76.     System.out.println(e.getMessage());
  77.     }   
  78.                 try
  79.    {
  80.     ps2.close();
  81.     fis.close();
  82.     conn.close();
  83.    }
  84.    catch (Exception e)
  85.     {
  86.     System.out.println(e.getMessage());
  87.     } 
  88.     
  89.    listeRepertoire( list[i]);
  90.    }
  91.      
  92.   }
  93.   
  94.  }
  95. public static void main(String[] args) throws SQLException, IOException
  96. {
  97. listeRepertoire(new File("C:\\Documents and Settings\\cleclercq\\Bureau\\stdlist" ));
  98. System.out.println("FIN" );
  99. }
  100. }


 
 
 
Et j'ai systematiquement comme erreur

Code :
  1. Exception d'E/S: Software caused connection abort: socket write error
  2. Il n'y a plus de données à lire dans le socket
  3. ORA-00020: maximum number of processes (50) exceeded


 
 
Pour le nombre de processus je comprends le message d'erruer mais je ne vois pas pourquoi j'ai cette erreur car je ferme bien mon statement, ma conncetion.
 
Pour les erreurs sur la socket, je n'y comprens rien. Que signifie cette erreur et comment la résoudre?
 
Si quelqu'un pourrait me donner un petit coup de main.
 
Merci


Message édité par lapartdombre le 07-06-2004 à 15:12:41
Reply

Marsh Posté le 07-06-2004 à 15:08:25   

Reply

Marsh Posté le 07-06-2004 à 15:11:00    

lapartdombre a écrit :


Code :
  1. String user = "xxxx";
  2.  String passWord = "xxxx";


 

sympa de laisser les mots de passe passe par défaut.


Message édité par nraynaud le 07-06-2004 à 15:21:15

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 07-06-2004 à 15:13:25    

ce serait gentil que tu les effacent sur ton message

Reply

Marsh Posté le 07-06-2004 à 15:17:45    

[:ula]


Message édité par the real moins moins le 07-06-2004 à 15:17:55

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 07-06-2004 à 15:18:23    

au moins ca fera rire certaines personnes

Reply

Marsh Posté le 07-06-2004 à 15:22:09    

c'est bon là ?
 
(comme si les pass par défaut d'Orcale étaient pas les plus connus du monde !)


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 07-06-2004 à 15:25:13    

oui c'est bon.
 
Merci beaucoup !!! Mais ca ne m'avance pas sur mon problème

Reply

Marsh Posté le 07-06-2004 à 15:27:35    

va voir ton administrateur Orcale, je pense que c'est le ULIMIT qui chie.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 07-06-2004 à 15:28:22    

Il est absent pour le moment

Reply

Marsh Posté le 07-06-2004 à 15:34:44    

lapartdombre a écrit :

Il est absent pour le moment

change de cat, passe en catégorie BDD, en précisant que c'est plutôt un pb d'administration.
 
sinon, cherche là-dedans :
http://www.google.com/search?q=ORA [...] 8&oe=utf-8


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 07-06-2004 à 15:34:44   

Reply

Marsh Posté le 07-06-2004 à 15:36:06    

j'ai déjà fait les deux mais je n'ai pas trouvé plus de renseignements

Reply

Marsh Posté le 07-06-2004 à 16:52:15    

Euh si tu sortais la partie gerant la connexion a ton SGBD de la boucle parsant les fichiers ? Ca serait *un poil* plus efficace et *un poil* plus rapide  :)


---------------
Light is right
Reply

Marsh Posté le 08-06-2004 à 08:29:05    

c'est un peu plus rapide mais j'ai toujours ces erreurs de lecture de socket et E/S et je ne vois pas de quoi ca provient

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed