Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

command sdmsh not working

44 views
Skip to first unread message

Vanessa Romero

unread,
Jan 29, 2025, 7:53:06 AMJan 29
to schedulix
Hi,

I´m installing a new server with schedulix 2.11, I have a server with 2.8 working fine but with the upgrade of rhel7 to rhel8 in one of the clients,  versión 2.8 is not working.

In this new server with 2.11 when I try to execute sdmsh command, I received this error:
Could not find or load main class de.independit.scheduler.sdmsh

I don´t understand nothing of java. Can yout tell me please what is wrong with my installation?
Thanks!

Ronald Jeninga

unread,
Jan 30, 2025, 5:28:45 AMJan 30
to schedulix
Hi Vanessa,

actually schedulix 2.8 should work with RHEL8, but since you didn't describe your issues with that combination I can't help there.
And since 2.8 is pretty ancient by now, it is a good idea to upgrade to the latest release 2.11 anyway.

The error message means that the BICsuite.jar file isn't contained in your CLASSPATH.
 
If you've installed schedulix using the rpms, there should be a file /opt/schedulix/etc/SETTINGS
On my computer this looks like

schedulix:~/etc$ cat /opt/schedulix/etc/SETTINGS
BICSUITEHOME=/opt/schedulix/schedulix
PATH=$BICSUITEHOME/bin:$PATH
LD_LIBRARY_PATH=$BICSUITEHOME/lib:$LD_LIBRARY_PATH
BICSUITECONFIG=/opt/schedulix/etc
BICSUITELOGDIR=/opt/schedulix/log
export BICSUITEHOME BICSUITECONFIG BICSUITELOGDIR PATH LD_LIBRARY_PATH

Note that the BICSUITECONFIG environment variable is set here.

Now if you look at the sdmsh script, you'll find

...
if [ -z "$BICSUITECONFIG" ]; then
        BICSUITECONFIG=$BICSUITEHOME/etc
fi

. $BICSUITECONFIG/java.conf || exit 1
. $BICSUITECONFIG/bicsuite.conf || exit 1
...

And in the java.conf file, the variable BICSUITECLASSPATH is set, which again is used by the sdmsh script when it runs something like

java -cp "$BICSUITECLASSPATH" de.independit.scheduler.sdmsh

The -cp flag defines the CLASSPATH for this single invocation of java.

If your SETTINGS file and your java.conf file are correct, things should work.
But as they don't, I think you didn't source the SETTINGS file or don't have one in the first place.
And most likely your BICSUITECONFIG variable isn't set, which isn't recognized in time becaue sdmsh uses $BICSUITEHOME/etc as a default here.
And I think you've copied or renamed the java.conf.template and bicsuite.conf.template files, but didn't edit them.
This then leads to an invalid content of the BICSUITECLASSPATH variable and the error message you've observed.

It might seem to be a very complex setup, but in the end it is easy to handle.
You have a SETTINGS file which sets or amends all environment variables that are used from a user's perspective (PATH, LD_LIBRARY_PATH, BICSUITEHOME, BICSUITECONFIG, BICSUITELOGDIR).
After sourcing this file you can use the system; that sounds pretty easy to me.
An admin will have to edit the conf files in $BICSUITECONFIG/etc, but that's basically a one time action.
And a script then digs its way through the configuration files to gather all the information that specific script needs.
That's our responsibility and doesn't need to bother you. But if you want to develop your own scripts, feel free to copy parts of ours.

I hope with this information you'll be able to find the cause of your issue.
If not, please ask again and tell me more in detail what you are doing.
But if it works, tell me if you are happy now ;-)

Best regards,

Ronald

Vanessa Romero

unread,
Feb 4, 2025, 7:58:22 PMFeb 4
to schedulix
Hi Ronald, 

Thank you for your response.  The problem I had was exactly what you mentioned about BICsuite.jar... I tried to install the schedulex server package with mariadb from the repository but it didn't work, it gave me duplicates in the database and more errors, then I tried to do a clean installation following the procedure on the website, compiling and when starting up it seems that the BICsuite.jar had not been generated.

Finally I have done an installation with the schedulex server package without a database and we have installed a separate MySQL and the sdmsh command now works.

Regarding what you were saying that schedulix server 2.8 should work with RHEL8... we had a machine on RHEL7 that we updated to RHEL8 and schedulix stopped working.  The error we are seeing in the log is the following:

jobserver (server) 2.8 (1.1)
copyright (c) 2002-2017 independit integrative technologies gmbh
all rights reserved
FATAL   [Jobserver]     31-01-2025 10:09:07 +0100 ***ERROR*** (04301271449) Missing '=' in environment:  do
FATAL   [Jobserver]     31-01-2025 10:09:07 +0100 Program aborted
[scrolllog] Waiting for child (2219395) to terminate
[scrolllog] Child exited with state 1
[scrolllog] Try to restart child (child terminated with exit code <> 0)

These are the environment variables that we have on the server.  We can't find what could be wrong so that it doesn't work.

LC_ALL=en_US.UTF-8
LD_LIBRARY_PATH=/opt/oracle/app/oracle/product/12.1.0/client_1/lib:/opt/oracle/app/oracle/product/12.1.0/client_1/network/lib:/usr/lib:/opt/sybase/DataAccess64/ODBC/lib:/opt/sybase/DataAccess/ODBC/lib:/opt/sybase/OCS-15_0/lib:/opt/sybase/OCS-15_0/lib3p64:/opt/sybase/OCS-15_0/lib3p:/opt/iq/IQ-16_0/lib64:/opt/sybase/DataAccess64/ODBC/lib:/opt/sybase/DataAccess/ODBC/lib:/opt/sybase/OCS-15_0/lib:/opt/sybase/OCS-15_0/lib3p64:/opt/sybase/OCS-15_0/lib3p:/opt/iq/IQ-16_0/lib64::/opt/InformaticaODBCDriverforGoogleBigQuery_2.3.3.1005-Linux/SimbaODBCDriverforGoogleBigQuery64_2.3.3.1005/lib
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:
IQTMP16=/tmp
C_ENGINE_QUERY_DIR=/home/informatica/dwh_unificado/querys
ODBCINI=/serveragent/odbc.ini
INCLUDE=/opt/sybase/OCS-15_0/include:/opt/sybase/OCS-15_0/include:
ORACLE_BASE=/opt/oracle/app/oracle
C_ENGINE_LOG=/home/informatica/logs
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
ORACLE_HOME=/opt/oracle/app/oracle/product/12.1.0/client_1
HOSTNAME=dw1pwccloudes
SYBROOT=/opt/iq
GOOGLE_APPLICATION_CREDENTIALS=/home/informatica/dwh_unificado/db/ext-dwh-euskaltel.json
PYTHONIOENCODING=utf8
S_COLORS=auto
which_declare=declare -f
C_ENGINE_PROYECT=/home/informatica/dwh_unificado
C_ENGINE_TMP=/home/informatica/contextual_engine/home/informatica/tmp
USER=informatica
C_ENGINE=/home/informatica/contextual_engine
SAP_JRE7=/opt/iq/shared/SAPJRE-7_1_015_64BIT
C_ENGINE_CLEANING_DIR=/home/informatica/dwh_unificado/cleaning
ODBCINST=/serveragent/odbcinst.ini
SAP_JRE7_32=/opt/iq/shared/SAPJRE-7_1_015_32BIT
SYBASE_OCS=OCS-15_0
PWD=/home/informatica
HOME=/home/informatica
C_ENGINE_CONFIG_FILE=/home/informatica/contextual_engine/environment/cfg/ext-dwh-euskaltel.cfg
SAP_JRE7_64=/opt/iq/shared/SAPJRE-7_1_015_64BIT
ODBCHOME=/serveragent/ODBC7.x/
AGENT=/serveragent
NLS_LANG=SPANISH_SPAIN.WE8ISO8859P15
BICSUITECONFIG=/home/schedulix/etc
LIB=/opt/sybase/OCS-15_0/lib:/opt/sybase/OCS-15_0/lib:
MAIL=/var/spool/mail/informatica
SHELL=/bin/bash
TERM=vt100
IQDIR16=/opt/iq/IQ-16_0
BICSUITEHOME=/home/schedulix/schedulix
HOMES=/opt/sybase/OCS-15_0
TMOUT=7200
SHLVL=1
PYTHONPATH=${PYTHONPATH}:/home/informatica
SYBASE=/opt/sybase
LOGNAME=informatica
PATH=/home/schedulix/schedulix/bin:/opt/sybase/OCS-15_0/bin:/opt/iq/IQ-16_0/bin64:/opt/google-cloud-sdk/bin:/opt/sybase/OCS-15_0/bin:/opt/iq/IQ-16_0/bin64:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/informatica:/serveragent:/serveragent/lib:/serveragent/bin:/opt/iq/jConnect-7_0/classes/jconn4.jar:/serveragent/ext/connectors/thirdparty/jconn4.jar:/opt/oracle/app/oracle/product/12.1.0/client_1/bin:/usr/bin:/bin:/sbin
HISTSIZE=10
JNAJAR=/usr/java/jna/dist/jna.jar
HISTFILESIZE=0
SYBASE_JRE7_64=/opt/iq/shared/SAPJRE-7_1_015_64BIT
LESSOPEN=||/usr/bin/lesspipe.sh %s
BASH_FUNC_which%%=() {  ( alias;
 eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
_=/usr/bin/env


We don't see any that we think are bad.   Can you help us with this?

Best Regards,
Vanessa.

Ronald Jeninga

unread,
Feb 5, 2025, 5:06:48 AMFeb 5
to schedulix
Hi Vanessa,

well, it's a while ago I saw that one.
The issue is the multi-line BASH_FUNC_which%% function.
This breaks our naive assumption that the environment variables have the simple form of KEY '=' VALUE, one entry per line.
In the meantime, that is in 2018, we've corrected this.

A simple workaround for you is to unset that BASH_FUNC_which thing, which probably isn't used by jobs running in the background anyway.
I assume that you effectively use the jobserver-run script to startup your jobserver and that would be a great place to unset the culprit.
(If you don't use that function at all, you could consider to eliminate it from the (probably) /etc/profile, but there is a chance that it'll break some of RedHat's logic).

Best regards,

Ronald

Message has been deleted

Vanessa Romero

unread,
Feb 6, 2025, 9:49:37 AMFeb 6
to schedulix
That was the problem, it works fine now!! We had not removed that variable because in another RHEL8 that we have seen that worked, that variable is set, the difference is that where it works is 8.5 and in this one it is 8.10, I don't know if it has anything to do with it... At this point we can migrate the operating system of a machine that we needed and continue working with schedulex 2.8 and migrate to 2.11 with more time. Thank you so much!!
Reply all
Reply to author
Forward
0 new messages