MQ

 View Only
  • 1.  MQ Console on i Series and Java version

    IBM Champion
    Posted Tue May 11, 2021 04:19 PM
    Good evening,
    I sometimes feel like one of the few people working on MQ / iSeries, and in particular on MQ Console.
    My problem from last year was solved via FixPack 9.1.0.3, but at another customer now have a different problem.
    When I try to start the mqweb server, I get in the error logs :

    ¬ERROR | CWWKE0701E: FrameworkEvent ERROR Bundle:com.ibm.mq.rest.auth.osauth.v1(id=129) org.osgi.framework.BundleException: Error starting module
    Caused by: java.lang.UnsupportedClassVersionError: JVMCFRE003 incorrect major version; class=com/ibm/mq/rest/auth/osauth/v1/Activator, decalage=6

    In QSH session, a java -version gives :

    java version "1.7.0
    Java(TM) SE Runtime Environment (build pap3270_27sr4fp70-20200714_01(SR4 FP70
    ))
    IBM J9 VM (build 2.7, JRE 1.7.0 OS/400 ppc-32 jvmap3270_27sr4fp70-20200714_01
    (JIT enabled, AOT enabled)
    J9VM - R27_Java727_SR4_20200625_1746_B450087
    JIT - tr.r13.java_20200625_450087
    GC - R27_Java727_SR4_20200625_1746_B450087
    J9CL - 20200625_450087)
    JCL - 20200706_01 based on Oracle jdk7u271-b10

    I looked in the KC if there are specific variables to declare, there is very little on MQ Console, and even less on an iSeries.
    If anyone has any ideas, I'm interested.
    Also, if anyone has an idea to automatically start mqweb at iSeries startup, I'll take it, the solutions I've found are not easy to industrialize (QSTRUP that runs a QSH script that exports variables then does the strmqweb)

    Thanks.

    ------------------------------
    Luc-Michel Demey
    DEMEY CONSULTING
    lmd@demey-consulting.fr
    ------------------------------


  • 2.  RE: MQ Console on i Series and Java version

    Posted Wed May 12, 2021 03:55 AM
    Hi Luc-Michel,

    This is a prereq problem. This page: https://www.ibm.com/docs/en/ibm-mq/9.1?topic=i-mq-components shows that you need Java 8 for the MQ Console. You are using Java 7. If you use the correct JVM then you should be fine.

    Regards, Matt.

    Matt Leming
    STSM, IBM MQ for z/OS

    Email: lemingma@uk.ibm.com
     
     





  • 3.  RE: MQ Console on i Series and Java version

    IBM Champion
    Posted Wed May 12, 2021 04:07 AM
    Thanks Mattew, I feel less alone!
    Java 8 (5770JV1 Java SE 8) is installed on this iSeries (V7R2), and Java 7 too.
    It is possible that Liberty is not selecting the right Java version, but I don't know how to change that.
    Do I have to export something in QSH before running commands?

    ------------------------------
    Luc-Michel Demey
    DEMEY CONSULTING
    lmd@demey-consulting.fr
    ------------------------------



  • 4.  RE: MQ Console on i Series and Java version

    Posted Wed May 12, 2021 04:30 AM
    Hi Luc-Michel,

    Well we definitely don't want you to feel alone!

    Liberty picks up the JVM via the standard JAVA_HOME environment variable. If you start the mqweb server via strmqweb then that gets set for you via os400chk, which specifically select a Java 8 JVM.
    How is the mqweb server being started?

    Regards, Matt.

    Matt Leming
    STSM, IBM MQ for z/OS

    Email: lemingma@uk.ibm.com
     
     





  • 5.  RE: MQ Console on i Series and Java version

    IBM Champion
    Posted Wed May 12, 2021 09:45 AM
    Edited by Luc-Michel Demey Wed May 12, 2021 09:52 AM
    Hi Matthew,

    The situation is a little more complicated than that.
    To set up MQ Console on an iSeries, I use generally (on other installations) the following commands:
    Under QSECOFR :
    strqsh
    LANG=/QSYS.LIB/FR_FR.LOCALE
    cp /QIBM/ProdData/mqm/web/mq/samp/configuration/local_os_registry.xml /QIBM/UserData/mqm/web/installations/Installation1/servers/mqweb/mqwebuser.xml
    Answer :
    $
     
    cd /QIBM/ProdData/mqm/bin
    setmqweb properties -k httpHost -v hostname

    Answer :
    $
    MQWB1100I: La commande 'setmqweb' a abouti.

    Then, under a non-QSECOFR profile:
    strqsh
    LANG=/QSYS.LIB/FR_FR.LOCALE
    cd /QIBM/ProdData/mqm/bin
    strmqweb
    Answer :
    Démarrage du serveur mqweb.
    Le serveur mqweb a démarré avec l'ID de processus 6739.

    At this point everything is OK..


    On this iSeries, the result is different:
    Under QSECOFR :
    strqsh
    LANG=/QSYS.LIB/FR_FR.LOCALE
    cp /QIBM/ProdData/mqm/web/mq/samp/configuration/local_os_registry.xml /QIBM/UserData/mqm/web/installations/Installation1/servers/mqweb/mqwebuser.xml
    Answer :
    $

    ok
    Then :
    cd /QIBM/ProdData/mqm/bin
    setmqweb properties -k httpHost -v hostname

    Answer :
    $

    --> No confirmation, no error message.

    Then, under a non-QSECOFR profile:
    cd /QIBM/ProdData/mqm/bin
    strmqweb
    Answer :
    $

    --> No confirmation, no error message.


    If I try :
    > echo $JAVA_HOME

    $
    the variable is empty.
     
    If I try :
    java -version
    java version "1.7.0"
    Java(TM) SE Runtime Environment (build pap3270_27sr4fp70-20200714_01(SR4 FP70
    ))
    IBM J9 VM (build 2.7, JRE 1.7.0 OS/400 ppc-32 jvmap3270_27sr4fp70-20200714_01
    (JIT enabled, AOT enabled)
    J9VM - R27_Java727_SR4_20200625_1746_B450087
    JIT - tr.r13.java_20200625_450087
    GC - R27_Java727_SR4_20200625_1746_B450087
    J9CL - 20200625_450087)
    JCL - 20200706_01 based on Oracle jdk7u271-b10
    $

    If I look in /QIBM/UserData/mqm/web/installations/Installation1/servers/mqweb, I can see that mqwebuser have not been updated by setmqweb.
    There is nothing, zéro files in /UserData/mqm/web/installations/Installation1/servers/mqweb/logs

    Now, if I try to start mqweb using Liberty commands, I got logs :

    Opt Name          Size
        console.log  16K
        ffdc         *DIR
        state        *DIR
        messages.log 64K


    Header of messages.log states :

    ********************************************************************************
    product = WebSphere Application Server 18.0.0.1 (wlp-1.0.20.cl180120180309-2209)
    wlp.install.dir = /QIBM/ProdData/mqm/web/
    server.config.dir = /QIBM/UserData/mqm/web/installations/Installation1/servers/m
    java.home = /QOpenSys/QIBM/ProdData/JavaVM/jdk71/32bit/jre
    java.version = 1.7.0
    java.runtime = Java(TM) SE Runtime Environment (jvmap3270_27sr4fp70-20200714_012
    os = OS/400 (V7R2M0; ppc) (fr_FR)

    Then

    ********************************************************************************
    ¬11/05/21 15:55:25:406 CEST| 00000001 com.ibm.ws.kernel.launch.internal.FrameworkManager A CWWKE0001I: Le serveur mqweb a {t{ lanc{.
    ¬11/05/21 15:55:28:831 CEST| 00000022 com.ibm.ws.config.xml.internal.XMLConfigParser A CWWKG0028A: Traitement de la ressource de configuration incluse : /QIBM/ProdData/mqm/web/mq/etc/mqweb.xml
    ¬11/05/21 15:55:28:915 CEST| 00000022 com.ibm.ws.config.xml.internal.XMLConfigParser A CWWKG0028A: Traitement de la ressource de configuration incluse : /QIBM/UserData/mqm/web/installations/Installation1/servers/mqweb/mqwebu
    ¬11/05/21 15:55:30:699 CEST| 00000001 com.ibm.ws.kernel.launch.internal.FrameworkManager I CWWKE0002I: Noyau d{marr{ apr}s 6,057 secondes
    ¬11/05/21 15:55:31:031 CEST| 0000002b com.ibm.ws.kernel.feature.internal.FeatureManager I CWWKF0007I: Mise @ jour de fonction d{marr{e.
    ¬11/05/21 15:55:37:481 CEST| 00000022 com.ibm.ws.security.ready.internal.SecurityReadyServiceImpl I CWWKS0007I: Le service de s{curit{ d{marre..
    ¬11/05/21 15:55:37:844 CEST| 00000026 com.ibm.ws.ssl.config.WSKeyStore I CWPKI0802I: Cr{ation du certificat SSL. Cela peut prendre quelques secondes.
    ¬11/05/21 15:55:39:456 CEST| 0000003e com.ibm.ws.security.token.ltpa.internal.LTPAKeyInfoManager I CWWKS4103I: Cr{ation des cl{s LTPA. Cela peut prendre quelques secondes.
    ¬11/05/21 15:55:39:507 CEST| 00000022 ibm.ws.security.authentication.internal.jaas.JAASServiceImpl I CWWKS1123I: Le plug-in d'authentification de collectivit{ avec le nom de classe NullCollectiveAuthenticationPlugin a {t{ activ{.

    ¬11/05/21 15:55:39:977 CEST| 0000001d LogService-129-com.ibm.mq.rest.auth.osauth.v1 E CWWKE0701E: FrameworkEvent ERROR Bundle:com.ibm.mq.rest.auth.osauth.v1(id=129) org.osgi.framework.BundleException: Error starting module.
    at org.eclipse.osgi.container.Module.doStart(Module.java:590)
    at org.eclipse.osgi.container.Module.start(Module.java:449)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
    Caused by: java.lang.UnsupportedClassVersionError: JVMCFRE003 version majeure incorrecte; classe=com/ibm/mq/rest/auth/osauth/v1/Activator, d{calage=6


    I agree that there is a problem with the Java version. Maybe starting mqweb with something other than strmqweb causes this problem?
    But using strmqweb produces NO log. This is my main issue.
    Note that /QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit is present.

    The same problem is present on two different iSeries (Dev & Prod)
    On other iSeries (with lower fixpack versions) I don't have the problem.

    Thnaks in advance for your help.

    ------------------------------
    Luc-Michel Demey
    DEMEY CONSULTING
    lmd@demey-consulting.fr
    ------------------------------



  • 6.  RE: MQ Console on i Series and Java version

    Posted Thu May 13, 2021 03:38 AM
    Hi,

    If you use the Liberty server command to start the mqweb server you need to provide all the relevant variables including JAVA_HOME. So if you set JAVA_HOME to point to a Java 8 JVM before running the command you would get further. I.e:
    export JAVA_HOME=/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit

    However I wouldn't recommend that approach as you need to set up a number of other things too. So we need to understand why the setmqweb / strmqweb commands aren't working for you.

    I would start by comparing the setmqweb between the two environments to make sure it's not been corrupted in any way. Then I normally make a copy of the script and stick echoes in it to try and figure out what's going on.

    Regards, Matt.

    Matt Leming
    STSM, IBM MQ for z/OS

    Email: lemingma@uk.ibm.com
     
     





  • 7.  RE: MQ Console on i Series and Java version

    IBM Champion
    Posted Tue May 18, 2021 05:07 PM
    Hello,

    I think of course that the strmqweb command sets a specific environment, which is not present in the Liberty "start server", hence the error on the java path.
    I will try to duplicate the strmqweb script and try to run it with echoes.
    Not necessarily easy because the iSeries shell is different from a standard shell.

    What worries me the most is that at this customer I have two iSeries V7R2 in 9.1.0.7, and both have the same error.
    Last January, with another customer with iSeries in 9.1.0.3, and exactly the same procedure, I had no problem configuring mqweb.
    Same thing last February with iSeries in V7R3 and MQ 9.2.0.1, no problem.

    I'm not far from thinking that the problem is perhaps on the MQ 9.1.0.7 side. It wouldn't be the first time that mqweb has "unexpected" behaviour, especially on iSeries.

    Fixpack 9.1.0.8 is planned this quarter, maybe I'll wait and see if it brings any improvements.

    Thanks for your help.

    ------------------------------
    Luc-Michel Demey
    DEMEY CONSULTING
    lmd@demey-consulting.fr
    ------------------------------