Skip to Content
Technical Articles

Setup HermesJMS to browse JMS queues/topics on SAP Netweaver systems

The SAP Netweaver product releases supports JMS messaging appropriate the JEE specification. Custom implementation can use JMS queues and topics to publish and consume message via an enterprise messaging system between application and part of applications (see details for NW 7.40 and NW 7.50)

But at the moment there is no tooling inside NWA to browse JMS messages inside of the JMS message server on SAP Netweaver systems. This is the place where a 3rd-party tool named HermesJMS would be help.

In this blog you will learn how to setup HermesJMS and connect it to a JMS server on SAP Netweaver systems.

Prerequisite

Download and install HermesJMS via install setup of SoapUI (soapUI Download).

Hint: SoapUI open source version (not the Pro version) for Win64 bit would be full enough.

Important: Don’t forget to select HermesJMS during the install wizard.

The install wizard creates an installation folder under e.g. C:\Program Files\SmartBear\SoapUI-<version>

Inside of this folder a sub directory with name HermesJMS will be located.

There are two options to open HermesJMS:

  1. Via SoupUI itselfStart SoapUI and choose Tools -> HermesJMS

    Hint: A little bit circumstantial to open SoapUI before opening HermesJMS.

  2. Directly via batch fileFor this copy hermes.bat inside C:\Program Files\SmartBear\SoapUI-5.3.0\hermesJMS\bin (new name hermes_Custom.bat).
    Inside of hermes_Custom.bat replace the last line

    start "HermesJMS" "%JAVA_HOME%\bin\javaw" -XX:NewSize=256m -Xmx1024m -Dhermes.home="%HERMES_HOME%" %HERMES_OPTS% -Dlog4j.configuration="file:%HERMES_HOME%\bin\log4j.props" -Dsun.java2d.noddraw=true -Dhermes="%HERMES_CONFIG%\hermes-config.xml" -Dhermes.libs="%HERMES_LIBS%" hermes.browser.HermesBrowser​

    to

    start "HermesJMS" "C:\Program Files\SmartBear\SoapUI-5.3.0\jre\bin\javaw" -XX:NewSize=256m -Xmx1024m -Dhermes.home="%HERMES_HOME%" %HERMES_OPTS% -Dlog4j.configuration="file:%HERMES_HOME%\bin\log4j.props" -Dsun.java2d.noddraw=true -Dhermes="%HERMES_CONFIG%\hermes-config.xml" -Dhermes.libs="%HERMES_LIBS%" hermes.browser.HermesBrowser

    Hint: SoapUI brings his own Java JRE that can be used to execute HermesJMS.

    For hermes_Custom.bat can create a shortcut that can be place to the desktop in example to start HermesJMS faster. Now HermesJMS can be directly started without executing SoapUI.

Configuration

Create the ClassPathGroup
  • Goto Options -> Configurations -> Tab: Providers -> right click on the grey area and click Add Group
  • Enter a ClassPath name, for example SAP_NW_740
  • Add the following jar to the ClassPath group SAP_NW_74: 

    C:\Program Files\SmartBear\SoapUI-5.3.0\hermesJMS\SAPJMSjars\jms.jar
    C:\Program Files\SmartBear\SoapUI-5.3.0\hermesJMS\SAPJMSjars\jmsclient.jar
    C:\Program Files\SmartBear\SoapUI-5.3.0\hermesJMS\SAPJMSjars\sap.com~tc~bl~pj_jmx~Impl.jar
    C:\Program Files\SmartBear\SoapUI-5.3.0\hermesJMS\SAPJMSjars\sap.com~tc~exception~impl.jar
    C:\Program Files\SmartBear\SoapUI-5.3.0\hermesJMS\SAPJMSjars\sap.com~tc~je~clientlib~impl.jar
    C:\Program Files\SmartBear\SoapUI-5.3.0\hermesJMS\SAPJMSjars\sap.com~tc~logging~java~impl.jarHint: The Jar files must be the one from your corresponding Netweaver release. Jar files for NW 7.40 can produces issues to connect to NW 7.50 and vice versa.These files must be downloaded and be available on your local system where HermesJMS will be executed.

    The files can be found on your Netweaver system under:

    <SID>\<instance>\j2ee\cluster\bin\ext\tc~jmx\lib\private\sap.com~tc~bl~pj_jmx~Impl.jar
    <SID>\<instance>\j2ee\j2eeclient\sap.com~tc~exception~impl.jar
    <SID>\<instance>\j2ee\j2eeclient\sap.com~tc~je~clientlib~impl.jar
    <SID>\<instance>\j2ee\j2eeclient\sap.com~tc~logging~java~impl.jar
    <SID>\<instance>\j2ee\cluster\bin\ext\jms\lib\private\jmsclient.jar
    <SID>\<instance>\j2ee\cluster\bin\ext\jms_api\lib\jms.jar

  • Apply and press OK button to save changes
Create new session
  • Right click sessions -> New -> New session…
  • In the dialog enter a name for the session, e.g. <system name>_<NW version>_<virtual providename>
  • Don’t select the check box for Use Consumer, in case of selection HermesJMS itself is the consumer of JMS messages
  • For loader select the provider that was created under 1.
  • Inside class drop down select hermes.JNDIQueueConnectionFactory
  • For property insert the following list of properties
    binding <ConnectionFactoryName>, e.g. jmsfactory/aBPM_VP/abpm/jms/ArchivingQueueConnectionFactory
    initialContextFactory com.sap.engine.services.jndi.InitialContextFactoryImpl
    providerURL <hostname>:5<SystemNo.>04, e.g. 50004
    securityCredentials <Password>
    securityPrincipal <Username>
  • For destinations right click the gray area and choose Add… and fill in the dialog the name, shortname, domain (Queue or Topic), username and password for the destinationHint: Inside aBPM Framework exists the following JMS Queue for virtual provider aBPM_VP.
    jmsqueues/aBPM_VP/abpm/jms/ArchivingTriggerQueue ArchivingTriggerQueue QUEUE
    jmsqueues/aBPM_VP/abpm/jms/ArchivingResponseQueue ArchivingResponseQueue QUEUE
    jmsqueues/aBPM_VP/abpm/jms/ArchivingErrorQueue ArchivingErrorQueue QUEUE
    jmsqueues/aBPM_VP/abpm/jms/ABPMProcessUpdateErrorQueue ABPMProcessUpdateErrorQueue QUEUE
    jmsqueues/aBPM_VP/abpm/jms/ABPMProcessUpdateQueue ABPMProcessUpdateQueue QUEUE

    Hint: The user that you will use for connecting needs Administrator privileges or specially privileges to your JMS destination (via UME Role and assigned JMS action for your virtual provider and/or JMS type (queue or topic))

    At the end it looks like as follows:

  • Apply and press OK button to save changes

    Hint: HermesJMS has sometimes a bug to take inserts into input field. Be sure to press Enter after insert values into input fields. Otherwise the step must be repeated. Also press Apply and OK of the dialog at the end of filling the input field.
Queue overview
  • After creating the destination configuration a list of the session and queue will be shown in the view

Open queue
  • After double-click on the queue name HermesJMS opens the destinations and load the JMS message into the browser perspective

Addition

In case your try to delete JMS message from a dead queue/error queue and you get an exception that the virtual provider default cannot be found, you can use a workaround in the session configuration. Select the checkbox Use Consumer, in that case HermesJMS will to get to be itself to a consumer of these JMS messages. That means HermesJMS download the message and these message disappears from the server. If you close the window these message are lost forever. Before closing the message view save the JMS message to a folder an your hard drive to have these messages furthermore available.

Be the first to leave a comment
You must be Logged on to comment or reply to a post.