How to run batch programs on a Linux server and compile and debug them from the IDE

Question ID : 311
Created on 2020-05-08 at 3:20 AM
Author : Veryant Support [support@veryant.com]

Online URL : http://support.veryant.com/support/phpkb/question.php?ID=311



NOTE:
These instructions are only for customers using version 2020R2 or earlier. In 2021R1, Veryant added remote server capabilities to the IDE, making it much easier to compile to and run from a remote server from within the IDE.
Please see KB article #331 (https://support.veryant.com/support/phpkb/question.php?ID=331) for more information about the remote server.

For many customers, the possibility of performing most of the development and testing tasks from a central point, the isCOBOL IDE, is highly desirable, even when the object classes are to be located and run from batch scripts on a Linux server.

First, it is possible to open an SSH terminal connection to the Linux server directly from the IDE, doing the following.

  • Show the terminal view: Window > Show view > Other > Terminal > Terminal
  • Configure the SSH settings in order to connect to the Linux Server using the [Open Terminal] Icon located near to the Terminal View
  • Select the SSH Terminal type of terminal and enter the host settings, IP address, user and password. You may leave the rest of the setting with the defaults provided. Click OK.
  • On the Linux Side enable a folder to be shared over the network. Your system administrator may help you to do that.
  • On the Windows side, where the IDE is located, create a mapped network drive pointing to the Linux shared folder. For this example, it will be the L: drive.
  • In the IDE, open the project that will perform the remote debugging and create a new output folder: File > New > Folder. And link it to a specific folder on the network drive.
  • Change the -od compiler option to point to that folder: lnxoutput Project > Properties > isCOBOL Settings > Compile/Runtime options Click [Apply and Close].
  • Create a new Debug configuration
  • Click in the New Launch Configuration button under the isCOBOL Remote Application and enter the Host IP Address of the Linux Server and the debug port (this is the same debug port that will be configured on the Linux side as explained on a later step). Click [Apply].
  • On the Linux side create a run.properties text file with the following contents:
  •    iscobol.rundebug=2
       iscobol.debug.port=10999
    
       iscobol.code_prefix=/path/to/the/remotedebug/output/classes
    
       iscobol.tracelevel=1
       iscobol.logfile=./linux_is_log.log
    

  • Compile the program in the IDE (that will place the output class in the lnxoutput folder, which is a folder on the Linux server, the one included in the iscobol.code_prefix property)
  • Using the terminal view run the program on the Linux server, using the script you have, which will contain a main command like the following
  •    iscrun -c run.properties MYTEST1
    
    That will show a message similar to the following:
       Using ISCOBOL=/home/esosagt/isCOBOL2020R1
       Using ISCOBOL_JRE_ROOT=/home/esosagt/jdk1.8.0_201
       Using LD_LIBRARY_PATH=/home/esosagt/isCOBOL2020R1/native/lib
       Configuration: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=fc0b62d72cf0d3445cce23779aacd9ab9a739369, not stripped
       Debugger listening on port 10999 ...
    

  • On the IDE start the REMOTE01 debug session (which will attach the program running on the Linux server)
  • When you finish debugging you will notice the program has successfully run on the Linux side. For the example shown here it generate a log file with the results of the multiply operations as shown in the Terminal view.


  • Back to Original Question