Search in sources :

Example 1 with AS400JPing

use of com.ibm.as400.access.AS400JPing in project IBMiProgTool by vzupka.

the class WrkSplF method selectSpooledFiles.

/**
 * Select spooled files according to path string from the node selected from the right tree and to criteria given in
 * parameters;
 * The path string is a file of type .OUTQ or library QSYS.LIB; Information from the spooled files is written to array lists.
 *
 * @param namePar
 * @param numberPar
 * @param pagesPar
 * @param jobPar
 * @param userPar
 * @param jobNumberPar
 * @param datePar
 * @param timePar
 * @return
 */
protected SpooledFile selectSpooledFiles(String namePar, String numberPar, String pagesPar, String jobPar, String userPar, String jobNumberPar, String datePar, String timePar) {
    this.namePar = namePar;
    this.numberPar = numberPar;
    this.pagesPar = pagesPar;
    this.jobPar = jobPar;
    this.userPar = userPar;
    this.jobNumberPar = jobNumberPar;
    this.datePar = datePar;
    this.timePar = timePar;
    nbrOfRows = 0;
    // Check connection to PRINT service before creating a spooled file list.
    // ======================================================================
    pingObject = new AS400JPing(properties.getProperty("HOST"));
    // pingObject.setTimeout(1000);
    ping_PRINT = pingObject.ping(AS400.PRINT);
    boolean isPingOk = ping_PRINT;
    while (!isPingOk) {
        row = "Error: Ping to server  " + properties.getProperty("HOST") + "  failed. Reconnecting PRINT service.";
        mainWindow.msgVector.add(row);
        mainWindow.showMessages(noNodes);
        try {
            ping_PRINT = pingObject.ping(AS400.PRINT);
            isPingOk = ping_PRINT;
            System.out.println("pingOk: " + isPingOk);
            Thread.sleep(2000);
        } catch (Exception exc) {
            row = "Error: Ping: " + exc.toString();
            System.out.println("Error: Ping: " + exc.toString());
            mainWindow.msgVector.add(row);
            mainWindow.showMessages(noNodes);
            exc.printStackTrace();
        }
    }
    try {
        remoteServer.connectService(AS400.PRINT);
    } catch (Exception exc) {
        row = "Error: Getting connection to PRINT service: " + exc.toString();
        mainWindow.msgVector.add(row);
        mainWindow.showMessages(noNodes);
        exc.printStackTrace();
    }
    // Create object representing spooled files
    SpooledFileList splfList = new SpooledFileList(remoteServer);
    try {
        // Parameter for selection all users for the first time or a specific user if not empty
        if (rightPathString.equals("/QSYS.LIB")) {
            row = "Wait: Retrieving list of all spooled files . . .";
            mainWindow.msgVector.add(row);
            mainWindow.showMessages(noNodes);
            mainWindow.scrollMessagePane.getVerticalScrollBar().removeAdjustmentListener(mainWindow.messageScrollPaneAdjustmentListenerMax);
            splfList.setUserFilter("*ALL");
            splfList.setQueueFilter("/QSYS.LIB/%ALL%.LIB/%ALL%.OUTQ");
            // Remove message scroll listener (cancel scrolling to the last message)
            mainWindow.scrollMessagePane.getVerticalScrollBar().removeAdjustmentListener(mainWindow.messageScrollPaneAdjustmentListenerMax);
        } else if (currentUser) {
            // Spooled files for current user will be selected
            splfList.setUserFilter("*CURRENT");
        } else {
            // Spooled files will be selected only from the output queue /QSYS.LIB/xxx.LIB/yyy.OUTQ
            // (right path string from the right file tree)
            splfList.setUserFilter("*ALL");
            splfList.setQueueFilter(rightPathString);
        }
        // Selection of spooled files is asynchronous
        splfList.openAsynchronously();
        // Wait for completion
        splfList.waitForListToComplete();
        // Get list of all spooled files
        Enumeration<SpooledFile> spooledFiles = splfList.getObjects();
        // Clear array lists containing characteristics of spooled files
        // that will be placed in table columns
        nameArrList = new ArrayList<>();
        numberArrList = new ArrayList<>();
        pagesArrList = new ArrayList<>();
        jobArrList = new ArrayList<>();
        userArrList = new ArrayList<>();
        spoolUsers = new ArrayList<>();
        jobNumberArrList = new ArrayList<>();
        dateArrList = new ArrayList<>();
        timeArrList = new ArrayList<>();
        queueArrList = new ArrayList<>();
        splfArrList = new ArrayList<>();
        // Select spooled files according to selection parameters
        while (spooledFiles.hasMoreElements()) {
            // Get next spooled file
            splf = (SpooledFile) spooledFiles.nextElement();
            if (splf != null) {
                String splfFileNumberChar = String.valueOf(splf.getNumber());
                String splfFilePagesChar = String.valueOf(splf.getIntegerAttribute(SpooledFile.ATTR_PAGES));
                // to the array lists for the table
                if (splf.getName().contains(namePar) && splfFileNumberChar.contains(numberPar) && splfFilePagesChar.contains(pagesPar) && splf.getJobName().contains(jobPar) && splf.getJobUser().contains(userPar) && splf.getJobNumber().contains(jobNumberPar) && splf.getCreateDate().contains(datePar) && splf.getCreateTime().contains(timePar)) {
                    // System.out.println("namePar 2: " + namePar);
                    // System.out.println("splf.getName() 2: " + splf.getName());
                    // System.out.print("File name selectSpoolFiles2: " + splf.getName());
                    // System.out.print(" \tFile number: " + splfFileNumberChar);
                    // System.out.print(" \tJob name: " + splf.getJobName());
                    // System.out.print(" \tUser name: " + splf.getJobUser());
                    // System.out.print(" \tJob number: " + splf.getJobNumber());
                    // System.out.print(" \tDate: " + splf.getCreateDate());
                    // System.out.print(" \tTime: " + splf.getCreateTime());
                    // System.out.println();
                    nameArrList.add(splf.getName());
                    numberArrList.add(splfFileNumberChar);
                    pagesArrList.add(splfFilePagesChar);
                    jobArrList.add(splf.getJobName());
                    userArrList.add(splf.getJobUser());
                    spoolUsers.add(splf.getJobUser());
                    jobNumberArrList.add(splf.getJobNumber());
                    dateArrList.add(splf.getCreateDate());
                    timeArrList.add(splf.getCreateTime());
                    // Qualified name of output queue, e.g. QGPL/QPRINT
                    queueArrList.add(getQualifiedQueueNameFromIfsPath(splf.getStringAttribute(SpooledFile.ATTR_OUTPUT_QUEUE)));
                    splfArrList.add(splf);
                    nameArrListWork.add(splf.getName());
                    numberArrListWork.add(splfFileNumberChar);
                    pagesArrListWork.add(splfFilePagesChar);
                    jobArrListWork.add(splf.getJobName());
                    userArrListWork.add(splf.getJobUser());
                    jobNumberArrListWork.add(splf.getJobNumber());
                    dateArrListWork.add(splf.getCreateDate());
                    timeArrListWork.add(splf.getCreateTime());
                    // Qualified name of output queue, e.g. QGPL/QPRINT
                    queueArrListWork.add(getQualifiedQueueNameFromIfsPath(splf.getStringAttribute(SpooledFile.ATTR_OUTPUT_QUEUE)));
                    splfArrListWork.add(splf);
                    nbrOfRows++;
                }
            }
        }
        // Ensure uniqueness of user names in array list (over linked hash set)
        Set<String> linkedHashSet = new LinkedHashSet<>();
        linkedHashSet.addAll(spoolUsers);
        spoolUsers.clear();
        spoolUsers.addAll(linkedHashSet);
        // Last spooled file selected
        return splf;
    } catch (Exception exc) {
        System.out.println("Error: " + exc.toString());
        exc.printStackTrace();
        return null;
    }
}
Also used : LinkedHashSet(java.util.LinkedHashSet) AS400JPing(com.ibm.as400.access.AS400JPing) SpooledFileList(com.ibm.as400.access.SpooledFileList) SpooledFile(com.ibm.as400.access.SpooledFile) UnsupportedCharsetException(java.nio.charset.UnsupportedCharsetException) IllegalCharsetNameException(java.nio.charset.IllegalCharsetNameException)

Aggregations

AS400JPing (com.ibm.as400.access.AS400JPing)1 SpooledFile (com.ibm.as400.access.SpooledFile)1 SpooledFileList (com.ibm.as400.access.SpooledFileList)1 IllegalCharsetNameException (java.nio.charset.IllegalCharsetNameException)1 UnsupportedCharsetException (java.nio.charset.UnsupportedCharsetException)1 LinkedHashSet (java.util.LinkedHashSet)1