ich glaub nicht das es an der Performance vom Prozessor oder der JVM liegt.

Was richtig Zeit kosten kann, ist z.B. wenn man AS400 Verbindung nicht mit *CURRENT anmeldet sondern einen festen User eingibt. Das kann auch der gleich User sein unter dem der JOB läuft und schon kann man für ein as400.validateSignon(); doppelt so lange warten.

Nachfolgend das Beispiel:

Code:
import java.util.Date;

import com.ibm.as400.access.AS400;
public class AS400ConnectionTest {
    public static void main(String[] args) {
        Date date = new Date();
        long start = date.getTime();
        System.out.println("Start: " + date);
        if (args.length != 3){
            System.out.println("3 Parameter werden benötigt");
            System.out.println("server user passwort");
            System.out.println("localhost *CURRENT *CURRENT");
            System.exit(1);
        }
        System.out.println("Anmelden mit User: " + args[1]);
        try{
            AS400 as400 = new AS400(args[0], args[1], args[2]);
            as400.validateSignon();
            as400.disconnectAllServices();
        }catch(Exception e){
            e.printStackTrace();
        }
        date = new Date();
        System.out.println("Ende: " + date);
        System.out.println("Benötigte Zeit in Sekunden: " + ((float)(date.getTime() - start) / 1000));
        System.exit(0);
    }
}
Aufruf: java -cp jt400.jar AS400ConnectionTest 192.168.178.222 myuser mypass
(AS400ConnectionTest.class habe ich in die jt400.jar kopiert)

Auf den PC: Benötigte Zeit in Sekunden: 0
Auf der AS400: Benötigte Zeit in Sekunden: 33

Aufruf: java -cp jt400.jar AS400ConnectionTest localhost *CURRENT *CURRENT
Auf der AS400: Benötigte Zeit in Sekunden: 17

Das ganze liegt an der Zeile as400.validateSignon(); . Ohne diese ist das Programm auch schnell durch.

Aber auch wenn man das as400.validateSignon(); ersetzt z.B. durch
Code:
IFSJavaFile file = new IFSJavaFile(as400, "/TMP/test.txt");
IFSFileOutputStream out = new IFSFileOutputStream(file);
out.write("das ist ein test".getBytes());
out.close();
hat man erstmal lange Zeit zu warten. Da aber auch auf der PC Seite, da der erste IFS-Zugriff lange dauert.

Gruß
TR