Execute CommandCall/ProgramCall by JT400 with Disabled user profile

549 views Asked by At

Our problem is as follows:

We have to connect to an ISeries with the JT400 and run some commands/Programs. The requirement is: Job is running in the QBatch with DISABLED user profile (because of security reasons). We are able to make the JDBC connection, but getting the exception when executing the CommandCall/ProgramCall run() method. Our code is the following:

// This way we are able to create the JDBC connection without supplying a username/password
Class.forName("com.ibm.db2.jdbc.app.DB2Driver");
Connection connection = DriverManager.getConnection("jdbc:db2:*local;translate binary=true;prompt=false;naming=sql;libraries=MyLib");

// This way we are trying to connect to the Iseries and to execute CommandCall
AS400 as400 = new AS400(); 
CommandCall commandCall = new CommandCall(as400, "ADDLIBLE LIB(MyCmdLib)");

//Similarly executing ProgramCall as 
ProgramCall programCall = new ProgramCall(as400, "/QSYS.LIB/OBJLIB.LIB/MYPGM.PGM", paramlist);
programCall.run();

and the exception is

com.ibm.as400.access.AS400SecurityException: User ID is disabled.:NONACTUSR at com.ibm.as400.access.AS400ImplRemote.returnSecurityException(AS400ImplRemote.java:2889) at com.ibm.as400.access.CurrentUser.getUserInfo(CurrentUser.java:87) at com.ibm.as400.access.AS400ImplRemote.getPassword(AS400ImplRemote.java:1585) at com.ibm.as400.access.AS400ImplRemote.signon(AS400ImplRemote.java:3188) at com.ibm.as400.access.AS400.sendSignonRequest(AS400.java:3465) at com.ibm.as400.access.AS400.promptSignon(AS400.java:3043) at com.ibm.as400.access.AS400.signon(AS400.java:4375) at com.ibm.as400.access.CommandCall.chooseImpl(CommandCall.java:279) at com.ibm.as400.access.CommandCall.run(CommandCall.java:713)

We searched on the internet but couldnĀ“t find anyone with the same problem.

Thank you for reading our question.

2

There are 2 answers

0
Charles On

You can't connect to the server with a disabled user.

Period. No exceptions.

It'd be a very insecure server if that was allowed.

1
jiarong On

You can create a User ID with password but set the Initial menu to *SIGNOFF for security reasons.

https://www.ibm.com/docs/en/i/7.2?topic=fields-initial-menu