PDA

View Full Version : JavaZugriff auf AS/400 gesperrt?



LoCal
20-10-03, 13:36
Hei :)

Ich habe hier ein kleines Problem.
Vor einigen wochen habe ich ein kleines TestProgramm geschrieben, dass auf eine AS/400 zugreift, dort ein programm ausführt und sich dann beendet.

Das ganze lief bestens.... nun nach ein paar wochen läuft das unveränderte Programm nicht mehr. Ich habe nun das gefühl, dass der JavaZugriff gesperrt wurde.
"Normal" anmelden (also ClientAccess) klappt mit den benutzerdaten ohne problem nur via Java nicht :(

Kann ich das auf der AS/400 irgendwie rausfinden? Also warum abgelehnt wurde, gibt es da logs oder so?

Vielen Dank schonmal.

Peace,

LoCal

torsten
20-10-03, 14:04
falls der connect nicht klappt, sollte im StackTrace sowas auftauchen:

java.sql.SQLException: The application server rejected the connection.(Password is incorrect.)


Gruss

Torsten

LoCal
20-10-03, 14:09
Hmm... was kommt ist folgendes:


com.ibm.as400.access.ExtendedIllegalStateException : command: Property is not set.
at com.ibm.as400.access.CommandCall.isStayOnThread(Un known Source)
at MsgTest.as400(MsgTest.java:27)
at MsgTest.<init>(MsgTest.java:15)
at MsgTest.main(MsgTest.java:51)


ich hab es sowohl mit den konstruktor AS400() aufgerufen und dann die werte für server, user, passwd in das fenster eingegeben und dann auch noch mit AS400(server, user, pwd)

torsten
20-10-03, 14:18
poste doch mal den Code, oder ist das aus urherberrechtlichen Gründen nicht möglich ?

LoCal
20-10-03, 14:22
Das ist alles... wie gesagt.. war nur ein test... mehr nicht.. ich teste code teile immer so bevor ich sie in andere programme einfliessen lasse...



private void as400() {
try {
AS400 system = new AS400();
CommandCall cc = new CommandCall(system);
System.out.println("Hey Ho Let's go ->"+ system.isConnected());
cc.run("call pgm(GEISPGM/GB136AUT) parm('1')");
System.out.println("Job: " +
cc.getJob().toString() +"
isStayOnThread: " +
cc.isStayOnThread());
System.out.println("Ende des Ramones-Auftritts, warten aus Christkind... ähmm.. auf die Message");
AS400Message[] ml = cc.getMessageList();
for (int i=0; i<ml.length; i++) {
System.out.println(ml[i].getText()); }
System.out.println("Fäääääääääääääääääärrrrrrrrrrrtt tttttttttttttiiiiiiiiiisch");
} catch (Exception e) {
e.printStackTrace();
}
System.exit(0);
}

torsten
20-10-03, 15:30
was bringt denn isConnected() in der hey ho Zeile zurück ?

LoCal
20-10-03, 15:33
da wird false zurück gemeldet.. das ist mein problem.. nur sehe ich gerade... dass nun die befehle ausgeführt werden..
hatte das vorher als bedingung, also nur wenn isConnected() true zurückt gibt sollen befehle ausgeführt werden.

BenderD
03-11-03, 08:57
Hallo,

ich verwende zwar diesen ganzen Spielkram der Toolbox nicht, aber:
<snip>
AS400 system = new AS400();
</snip>
das kann nicht funktionieren, Du musst ihm zumindest sagen wohin er connecten soll, da ist zumindest eine url als Parameter gefordert, schau doch mal in der JavaDoc der Toolbox nach, wie der Constructor für das AS400 Object bedient wird.

Dieter Bender