Code:
- /* ==================================================================*/
- /* */
- /* Program . . : RtvNetA.java */
- /* Description : Retrieve Network Attributes */
- /* Author . . : Vengoal Chang */
- /* Published . : AS400ePaper */
- /* Date . . . : May 23, 2014 */
- /* */
- /* ==================================================================*/
-
- package com.free400.vengoal.as400api;
-
- import com.ibm.as400.access.AS400;
- import com.ibm.as400.access.AS400Bin4;
- import com.ibm.as400.access.AS400Exception;
- import com.ibm.as400.access.AS400Text;
- import com.ibm.as400.access.CharConverter;
- import com.ibm.as400.access.ErrorCodeParameter;
- import com.ibm.as400.access.ProgramCall;
- import com.ibm.as400.access.ProgramParameter;
-
- public class RtvNetA {
-
- private AS400 as400;
- private final AS400Bin4 intConverter_ = new AS400Bin4();
-
- public static final String NETATR_ALRBCKFP = "ALRBCKFP";
- public static final String NETATR_ALRCTLD = "ALRCTLD";
- public static final String NETATR_ALRDFTFP = "ALRDFTFP";
- public static final String NETATR_ALRFTR = "ALRFTR";
- public static final String NETATR_ALRHLDCNT = "ALRHLDCNT";
- public static final String NETATR_ALRLOGSTS = "ALRLOGSTS";
- public static final String NETATR_ALRPRIFP = "ALRPRIFP";
- public static final String NETATR_ALRRQSFP = "ALRRQSFP";
- public static final String NETATR_ALRSTS = "ALRSTS";
- public static final String NETATR_ALWADDCLU = "ALWADDCLU";
- public static final String NETATR_ALWANYNET = "ALWANYNET";
- public static final String NETATR_ALWHPRTWR = "ALWHPRTWR";
- public static final String NETATR_ALWVRTAPPN = "ALWVRTAPPN";
- public static final String NETATR_VRTAUTODEV = "VRTAUTODEV";
- public static final String NETATR_DDMACC = "DDMACC";
- public static final String NETATR_DFTCNNLST = "DFTCNNLST";
- public static final String NETATR_DFTMODE = "DFTMODE";
- public static final String NETATR_DFTNETTYPE = "DFTNETTYPE";
- public static final String NETATR_DTACPR = "DTACPR";
- public static final String NETATR_DTACPRINM = "DTACPRINM";
- public static final String NETATR_HPRPTHTMR = "HPRPTHTMR";
- public static final String NETATR_JOBACN = "JOBACN";
- public static final String NETATR_LCLCPNAME = "LCLCPNAME";
- public static final String NETATR_LCLLOCNAME = "LCLLOCNAME";
- public static final String NETATR_LCLNETID = "LCLNETID";
- public static final String NETATR_MAXINTSSN = "MAXINTSSN";
- public static final String NETATR_MAXHOP = "MAXHOP";
- public static final String NETATR_MDMCNTRYID = "MDMCNTRYID";
- public static final String NETATR_MSGQ = "MSGQ";
- public static final String NETATR_NETSERVER = "NETSERVER";
- public static final String NETATR_NODETYPE = "NODETYPE";
- public static final String NETATR_NWSDOMAIN = "NWSDOMAIN";
- public static final String NETATR_OUTQ = "OUTQ";
- public static final String NETATR_PNDSYSNAME = "PNDSYSNAME";
- public static final String NETATR_PCSACC = "PCSACC";
- public static final String NETATR_RAR = "RAR";
- public static final String NETATR_SYSNAME = "SYSNAME";
-
- public RtvNetA(AS400 as400){
- this.as400 = as400;
- }
-
- public String getNetAtr(String attribute) throws Exception{
- String[] atrs = new String[1];
- atrs[0] = attribute;
- String[] rtnAtrs = getNetAtr(atrs);
- return rtnAtrs[0];
- }
-
- public String[] getNetAtr(String[] attributes) throws Exception {
- final CharConverter charConverter = new CharConverter(as400.getCcsid(), as400);
- String[] rtnStr = new String[attributes.length];
-
- ProgramParameter[] parameters = buildProgramParameters(attributes);
- ProgramCall rtvNetAtr = new ProgramCall(as400, "/QSYS.LIB/QWCRNETA.PGM", parameters);
-
- if (rtvNetAtr.run() != true) {
- throw new AS400Exception(rtvNetAtr.getMessageList());
- } else {
- byte[] rcvVar = parameters[0].getOutputData();
- Integer nbrOfAtrRtn = (Integer) intConverter_.toObject(rcvVar, 0);
- int offsetOfNetAtrInfoTable = 0;
- int offset;
- String netAtr, typeOfData, infoStatus;
- int lenOfData;
- Object atrValue = null;
- for (int i = 0; i < nbrOfAtrRtn; i++) {
- offsetOfNetAtrInfoTable += 4;
- offset = intConverter_.toInt(rcvVar, offsetOfNetAtrInfoTable);
- netAtr = charConverter.byteArrayToString(rcvVar, offset, 10);
- offset += 10;
- typeOfData = charConverter.byteArrayToString(rcvVar, offset, 1);
- offset += 1;
- infoStatus = charConverter.byteArrayToString(rcvVar, offset, 1);
- offset += 1;
- lenOfData = intConverter_.toInt(rcvVar, offset);
- offset += 4;
- if (typeOfData.equalsIgnoreCase("C")) {
- atrValue = charConverter.byteArrayToString(rcvVar, offset, lenOfData).trim();
- rtnStr[i] = (String) atrValue;
- } else if (typeOfData.equalsIgnoreCase("B")) {
- atrValue = intConverter_.toInt(rcvVar, offset);
- rtnStr[i] = Integer.toString((Integer) atrValue);
- }
- // System.out.println(netAtr + "=" + atrValue);
- }
- }
- return rtnStr;
- }
-
- private ProgramParameter[] buildProgramParameters(String[] attributes) {
-
- ProgramParameter[] parameterList = new ProgramParameter[5];
- parameterList[0] = new ProgramParameter(2048);
- parameterList[1] = new ProgramParameter(intConverter_.toBytes(2048));
- parameterList[2] = new ProgramParameter(intConverter_.toBytes(attributes.length));
-
- AS400Text text10 = new AS400Text(10, as400);
- byte[] atrNameBytes = new byte[attributes.length * 10];
- int atrNameOffset = 0;
- for (int i = 0; i < attributes.length; i++) {
- byte[] atrName = text10.toBytes(attributes[i]);
- System.arraycopy(atrName, 0, atrNameBytes, atrNameOffset, 10);
- atrNameOffset += 10;
- }
-
- parameterList[3] = new ProgramParameter(atrNameBytes);
- parameterList[4] = new ErrorCodeParameter();
-
- return parameterList;
- }
-
- public static void main(String[] args) {
-
- try {
- AS400 as400 = new AS400("AS400IP", "USER", "PASS");
- RtvNetA rtvNetA = new RtvNetA(as400);
- String[] atrName = { RtvNetA.NETATR_SYSNAME };
- String[] rtnValues = rtvNetA.getNetAtr(atrName);
- for (int i = 0; i < rtnValues.length; i++) {
- System.out.println(atrName[i] + "=" + rtnValues[i]);
- }
-
- atrName[0] = RtvNetA.NETATR_MAXINTSSN;
- rtnValues = rtvNetA.getNetAtr(atrName);
- for (int i = 0; i < rtnValues.length; i++) {
- System.out.println(atrName[i] + "=" + rtnValues[i]);
- }
-
- String[] atrName2 = { RtvNetA.NETATR_DDMACC, RtvNetA.NETATR_MAXHOP };
- rtnValues = rtvNetA.getNetAtr(atrName2);
- for (int i = 0; i < rtnValues.length; i++) {
- System.out.println(atrName2[i] + "=" + rtnValues[i]);
- }
-
- System.out.println(NETATR_LCLNETID+ "=" + rtvNetA.getNetAtr(NETATR_LCLNETID));
- as400.disconnectAllServices();
- System.exit(0);
- } catch (Exception excp) {
- excp.printStackTrace();
- }
- }
- }
|
|