在IBM i上执行ActiveMQ失败

在IBM i上执行ActiveMQ失败,activemq,ibm-midrange,Activemq,Ibm Midrange,是否有人在IBM i上安装/运行ActiveMQ,并可以帮助我完成此任务 进程未运行或出现ZipException 我从-Unix/Linux/Cygwin bundle下载了ActiveMQ 5.16.2 用于在IBMiV7R3上安装,并遵循“Unix安装过程”一节中提到的正式安装步骤 这类似于在IBMi上安装,如所述- 在运行命令/bin/activemq start时,进程开始,但结束时没有实际运行activemq。 它在控制台上显示以下错误- ./bin/activemq: 001-00

是否有人在IBM i上安装/运行ActiveMQ,并可以帮助我完成此任务
进程未运行或出现ZipException

我从-Unix/Linux/Cygwin bundle下载了ActiveMQ 5.16.2 用于在IBMiV7R3上安装,并遵循“Unix安装过程”一节中提到的正式安装步骤

这类似于在IBMi上安装,如所述-

在运行命令/bin/activemq start时,进程开始,但结束时没有实际运行activemq。 它在控制台上显示以下错误-

./bin/activemq: 001-0019 Error found searching for command whoami. No such path or directory.                                                             

另外,命令/bin/activemq status返回activemq not running

运行命令/bin/activemq console时,进程启动,但给出相同的whoami错误,并以ZipException结束

在Windows上,我已经能够成功安装并运行


是否有人在IBMi上安装了ActiveMQ并可以帮助我完成此操作?

您缺少该命令

whoami
这不是内置的shell,因此需要将该包添加到安装中

h/t到@nfgl,用于指向IBM OSS rpm repo的指针。如果您检查他们的src.rpm,您将看到他们修补了activemq脚本。值得回顾

SRC RPM调用此依赖项:coreutils gnu

bin/activemq的IBM iSeries修补程序:

    $ more activemq-activemq.patch 
--- a/bin/activemq  2020-03-30 18:50:50.000000000 +0000
+++ b/bin/activemq  2020-03-30 18:57:03.000000000 +0000
@@ -336,10 +336,14 @@
               -Dactivemq.data=\"${ACTIVEMQ_DATA}\" \
               $ACTIVEMQ_CYGWIN \
               -jar \"${ACTIVEMQ_HOME}/bin/activemq.jar\" $COMMANDLINE_ARGS >> $ACTIVEMQ_OUT 2>&1 &
-              RET=\"\$?\"; APID=\"\$!\";
-              echo \$APID > "${PIDFILE}";
-              echo \"INFO: pidfile created : '${PIDFILE}' (pid '\$APID')\";exit \$RET" $DOIT_POSTFIX
-      RET="$?"
+              exit \"\$?\"" $DOIT_POSTFIX
+              RET="$?"
+              sleep 5
+              OS400_PID=`ps | grep -iE 'java|jFromPASE|jvmStartPase|qp0zspwp' | grep -v '\spgm-' | grep -vE '^\s+1\s' | tail -n 1 | awk '{print $1}'`
+              rm -f $PIDFILE
+              qsh -c "/usr/bin/touch -C 1208 $PIDFILE"
+              echo $OS400_PID > $PIDFILE
+              echo "INFO: pidfile created : '$PIDFILE' (pid '$OS400_PID')"
    elif [ -n "$TASK_TODO" ] && [ "$TASK_TODO" = "stop" ];then
           SPID="`cat "${PIDFILE}"`"
           $EXEC_OPTION $DOIT_PREFIX "\"$JAVACMD\" $ACTIVEMQ_OPTS $ACTIVEMQ_DEBUG_OPTS \
@@ -384,7 +388,7 @@
         return 2
        fi
        ACTIVEMQ_PID="`cat ${ACTIVEMQ_PIDFILE}`"
-       RET="`ps -p "${ACTIVEMQ_PID}"|grep java`"
+       RET=`/QOpenSys/usr/bin/ps -p ${ACTIVEMQ_PID}|grep -iE 'java|jFromPASE|jvmStartPase'`
        if [ -n "$RET" ];then
          return 0;
        else
@@ -403,7 +407,7 @@
         return 2
        fi
        THEPID=`cat ${PID_STOP}`
-       RET=`ps -p $THEPID|grep java`
+       RET=`/QOpenSys/usr/bin/ps -p ${ACTIVEMQ_PID}|grep -iE 'java|jFromPASE|jvmStartPase'`
        if [ -n "$RET" ];then
          return 0;
        else

IBM i OSS提供activemq 5.15.12作为带有eventuel依赖项的rpm,请参阅。只需将其安装在chroot环境中,就可以运行activemq启动|停止|状态|控制台而不会出错