You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Scope

  • The libsosperlscript.so library is included with the JobScheduler setup and acts as an interface to a local Perl installation should Perl API Jobs be used.

    • This library is used exclusively used for job scripts of type <script language="perlscript">, i.e. for jobs that make use of the JobScheduler API. 
    • This library is not required for Perl scripts that can be executed from the command line independently of a JobScheduler instance.
  • This article explains how to build the libsosperlscript.so library for Unix environments.

Prerequisites

  • The JobScheduler sources have to be downloaded from the SOS Git repositories. The sources are available from https://github.com/sos-berlin
  • Additional tools have to be downloaded and configured following the below order.

Git

  • You can find the Git download and documentation here.
  • SOS uses Git 1.7.1. You can download the latest release from here.

Java JDK

  • The path to your Java JDK is required for the compilation
  • SOS uses the path /usr/java/jdk1.8.0_31

Perl
  • Version: Perl 5.10 or above
  • You can find the downloads here.
  • No further configuration is required for Perl. 

 

C++ Compiler

  • Set up a development environment for Unix. The following packages are required:
    • gcc - GNU Compiler, starting with version 4.1.3
    • zlib-devel
    • binutils (version corresponding to gcc)
  • SOS uses gcc 4.4.6

Download from the Repositories

Prepare a folder in your file system where to clone the repositories to.

Repository for the JobScheduler Engine

Execute the following command in your Git Shell:

git clone https://github.com/sos-berlin/scheduler-engine

to download the project "scheduler-engine".

Compile the Library

Once the folder scheduler-engine is created (from cloning the repositories), change the working directory to scheduler-engine/engine-kernelcpp and create a folder LINKS:

cd scheduler-engine/engine-kernelcpp
mkdir LINKS

Switch to the folder LINKS and create a symbolic link to your Perl installation as follows:

cd LINKS
ln -s /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi perl

If you are not using multithreading for Perl (or the multithreading links to another folder) you might have to use a shorter path, something like /usr/lib64/perl5

In order to compile the last step is to call the makefile make-libsosperlscript:

JAVA_HOME=<path_to_java_jdk> make/make-libsosperlscript

Support 

Commercial License

If you purchased a Commercial License with the Service Request Support Option, then the build process will be assisted by our Support Team should you face any problems. The applicable service level is the same as for severity level "minor", see Product Maintenance.

Open Source License

If you use the Open Source License then the build process will be supported by using our Community Resources. A forum for build issues is available at SourceForge, see https://sourceforge.net/p/jobscheduler/discussion/bp/

Note: no service levels are guaranteed including response times and resolution times.

Troubleshooting

Error: "z_com.h:10:17: error: jni.h: No such file or directory"

This error occurs when the path in the variable JAVA_HOME used for the compilation of the library does not match the path to your Java JDK. SOS uses the path:

usr/java/jdk1.8.0_31

Error: "make: *** No rule to make target '.../LINKS/perl/CORE/EXTERN.h', needed by `perl.o'.  Stop."

This error occurs when a the symbolic link in the folder LINKS is not set correctly. If you are not using multithreading for Perl (or the multithreading links to a different folder) you might have to use a shorter path, something like /usr/lib64/perl5

 

Installation

  • Copy the libsosperlscript.so into the ./lib directory of the JobScheduler installation.
  • Create a symlink in the ./lib directory which points to the libperl.so of the Perl installation

    ln -s /usr/lib64/perl5/<Perl version>/x86_64-linux-thread-multi/CORE/libperl.so libperl.so

    See also How to program the JobScheduler API in Perl

  • Set the PERL5LIB environment variable if you get the following error in the Perl API job

    COM-80020009  DISP_E_EXCEPTION [begin] [] [PERL-2   [[perl_parse()  Can't locate strict.pm in @INC (you may need to install the strict module)

    The article How to program the JobScheduler API in Perl describes how to set the PERL5LIB environment variable. A JobScheduler restart is required.

  • Please delete the files
    • ./lib/libstdc++.so.6.0.8
    • ./lib/libstdc++.so.6
    • ./lib/libgcc_s.so.1
    • ./lib/libgcc_s.so

    in the JobScheduler installation if you get the following error in the Perl API job

    dlopen("libsosperlscript.so"): /opt/sos-berlin.com/jobscheduler/jobscheduler.1.10_4110/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found

    See also JS-980 - Getting issue details... STATUS

 

 

 

 

  • No labels