PDA

View Full Version : probleme mit der close anweisung unter java



WPF
02-05-05, 08:28
Hallo,
ich habe ein Problem mit der Close-Anweisung.
ich öffne eine Textedatei im IFS der As400 nach dem Lesen der Zeilen,
wird diese Datei mit close() wieder geschlossen und über den Move-Befehl
in ein save-Verzeichnis abgelegt. Das Programm läuft eigentlich zu 90 % sauber
durch. Allerdings wird bei 10 % der Fälle die Datei nicht sauber geschlossen, so dass
der Movefehl nicht ausgeführt wird.
Hat jemand eine Idee, woran es liegen könnte bzw. wie man den "Fehler" umgehen kann?

Nachtrag: es liegt wohl doch nicht an der close anweisung nach intensiver Analyse habe ich festgestellt, dass die CPU -Auslastung bei 100 % (++++) liegt. in diesem fall bricht die verarbeitung einfach ab, d.h. das auslesen der zeilen sowie das abarbeiten (insert in eine datei) wird einfach abgebrochen. gibt es hierfür ein workaround ?



vorab vielen Dank

Java Version 1.2.2 ; OS V5R1M0
Hier der Auszüge aus dem Quellcode:
import java.io.*;
import java.util.*;
import java.sql.*;
import java.lang.*;
import java.text.*;
import java.math.*;
import java.text.SimpleDateFormat;
import com.ibm.as400.access.*;


CommandCall cmd = new CommandCall(systemas);
try { stmtasbde = connas.prepareStatement(sqlupdbde);
/**/
File dir = new File( bsl+verzas400in+bsl );
if (dir.isDirectory()) {
String[] names = dir.list();
for( i=0; i < names.length; i++ ) {

File f = new File( dir, names[i] );
if ((!f.isDirectory()) && (names[i].substring(0,3).compareToIgnoreCase("A2B")==0)){
System.out.println("dateiname:"+names[i]+" "+names[i].substring(0,3));
fr = new FileReader(f);
br = new BufferedReader(fr);
zeile="";
wert="";
j=1;
while ( zeile != null ) {
zeile=br.readLine();
.....
}
br.close();
cmd.run("STRQSH CMD('mv "+as400root+"/"+verzas400in+"/"+names[i]+" "+as400root+"/"+verzas400in+"/save/"+todate("")+names[i]+"')");

......