Skip to Content
avatar image
Former Member

How to connect SAP PI 7.0 to Apache ActiveMQ?

Hi there,

I am working on getting an JMS-adapter connected and sending messages to an Apache ActiveMQ JMS-provider.

I use the JNDI-protocol with the following parameters:

JNDI lookup name of QueueConnectionFactory= ConnectionFactory

JNDI lookup name of JMS Queue= dynamicQueues/BusinessPartner

Name of JNDI initial Context Factory = org.apache.activemq.jndi.ActiveMQInitialContextFactory

JNDI server address = xxx.xx.xxx.xx:61616

I know I have to deploy a driver/client JAR-file containing a.o. the path and Java Class for 'ActiveMQInitialContextFactory', right?

Furthermore, on an ActiveMQ-site about connecting using JNDI (http://activemq.apache.org/jndi-support.html) it is mentioned to also deploy activemq- .jar and spring-1.x.jar.

What do they add and where can I get the; also at the Provider?

Actually, I do not know If I shoud JNDI at all. Has anybody experience with PI and ActiveMQ?

Thank you all,

reg., Walter.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

5 Answers

  • avatar image
    Former Member
    Dec 09, 2009 at 07:43 PM
    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Dec 10, 2009 at 11:28 AM

    Hi Marco,

    Thank you, but I already checked them before. Actually, these were the only links and threads I could find on the internet and SDN, before posting this topic.

    These links cover the connection from the Apache's point of view, but I need some guiding on configuring the SAP PI 7.0 side. I will investigate the files mentioned some more (activemq-<version>.jar and spring-1.x.jar).

    I have also asked our ActiveMQ Implementation partner.

    Thank you so far, I will keep this thread updated.

    Reg., Walter.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jan 13, 2010 at 03:51 PM

    Well, it's not solved yet, but I think we are close to it.

    This is what happend so far:

    From the Apache site, I downloaded the ActiveMQ 5.2.0 version, as this is the version the Receiving party is using to create the JMS queue. The download contained a 'activemq-all-5.2.0.jar', which I asked the Technical Administration to deploy, according 'How To Install external drivers for JDBC and JMS adapter.pdf'.

    The first test resulted in an error: "UnsupportedClassVersionError: (org/apache/activemq/jndi/ActiveMQInitialContextFactory) bad major version at offset=6 at .....". This indicated that our 1.4.2 Java version on the XI-server, can not handle the 1.5 Java Jar file, which seems obviious.

    So I downloaded ActiveMQ 4.2.0 and asked to deploy 'apache-activemq-4.1.2.jar', hoping that this Java classes can put a file on a JMS queue from a higher Java version.

    Now the Error changed to: "UnsupportedClassVersionError: (javax/jms/Queue) bad major version at offset=6".

    Then I remembered to remove the standard JMS classes from javax/jms, as described in: http://help.sap.com/saphelp_nw70ehp1/helpdata/en/33/e6fb40f17af66fe10000000a1550b0/content.htm.

    So I did, and asked to deploy the new Jar-file again. That's what I am waiting for...

    to be continued..

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jan 13, 2010 at 08:44 PM

    ..So...

    Now the Comm.Channel log says: "Successfully connected to destination '..<queuename>..' So connection can be established.

    However when sending a message, the message ends up in an error, on the Adapter Engine, which says:

    "Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Object not found in lookup of XIJMSService.: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of XIJMSService."

    I already searched and tried, but no luck so far.

    Anyone got any ideas..????

    Thank you, Walter.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jan 18, 2010 at 10:32 AM

    Hi all,

    Issue is solved. Apparently the Java-version on our XI-server (1.4.2) could not handle the Vendor's JMS-driver we installed (ActiveMQ 4.1.2.jar) so we tried using the ActiveMQ 4.1.0.jar as the JMS-driver. Now it is OK and message are put on the destination queue.

    Walter.

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hi,all,

      I need to configure a JMS receiver adpter for a RFC-JMS scenario. My PI version is 7.0.2 and the target

      JMS server is Apache ActiveMQ 5.4.2.

      Since I test the scenario I got the following error messageļ¼›

      http://sap.com/xi/XI/Message/30"

      xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

      <SAP:Category>XIAdapterFramework</SAP:Category>

      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>

      <SAP:P1 />

      <SAP:P2 />

      <SAP:P3 />

      <SAP:P4 />

      <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: No transition found from state: ERROR,

      on event: process_commence for DFA:

      FI_TAX_RECEIVER_CC:fbb5050eb2353a138fc3218171e93394</SAP:AdditionalText>

      <SAP:ApplicationFaultMessage namespace="" />

      <SAP:Stack />

      <SAP:Retry>M</SAP:Retry>

      </SAP:Error>

      I have searched the problem but without exactly answers. Now I guess whether PI 7.0 with JDK 1.4 support

      Apache ActiveMQ 5.4.2 or not.

      Bythe way,the basis has already deployed the driver for ActiveMQ.