JMS Adapter connection Error with Tibco [Missing JAR files?]

Hello Experts,

I am trying to connect Data Services with Tibco EMS using the JMS Adapter method. But when I try to run the Operation I receive the below error -

6/15/16 11:19:22 AM JMS adapter error: Error in getting the queue connection factory.: java.lang.NullPointerException: while trying to invoke the method com.acta.adapter.jms.JMSConfigHandler.getQueueConnectionFactory() of a null object loaded from field com.acta.adapter.jms.JMSAdapter.configHandler of an object loaded from local variable ‘this’

  1. I followed the below link as guide-

http://scn.sap.com/community/data-services/blog/2014/04/09/jms-realtime-integration-with-sap-data-services

Attached is the snippet of my JNDI config from DS.

  1. I have added the following TIBCO jars to the DS classpath -
    jms-2.0.jar
    tibjms.jar
    tibcrypt.jar
    tibjmsadmin.jar
    tibjmsapps.jar
    tibrvjms.jar

Additional Notes-

  1. I tried to connect to the tibco ems through a stand alone JMS client program and it is working sucessfully.

  2. My Tibco EMS server is active and i am connected to the destination server. The queues RequestQueue and ResponseQueue are already created. The jndinames QueueConnectionFactory and TopicConnectionFactory already exists.

The java.lang.NullPointerException is usually received when certain JAR files are missing. But I do not know why I am still getting this error. Am i missing something here?

Any help, advices, suggestions or further reading links appreciated.

Regards,
Pradeep
jndi config.PNG


pradeepshenoy (BOB member since 2016-06-15)

make sure you have the Tibco JMS jar that has the initialcontext class and also the QueueConnection and TopicConnection class

for Tibco you will also need to specify the username and password else the queue connection will fail

make sure that the folder where you have copied the JNDI file is also added to the classpath


manoj_d (BOB member since 2009-01-02)

Hi Manoj,

Thank you for your response. :slight_smile:

I have added the tibjms.jar and jms-2.0 jar files in the classpath. Also tried it with username and password but i get the same error.

As per the Tibco side documentation, we do not need a JNDI file (http://blogs.perficient.com/delivery/blog/2014/06/25/jndi-support-differences-between-tibco-ems-and-activemq/), but i have also tried with adding the JNDI file to the classpath. Still i recieve the same error.

6/20/16 1:22:03 PM Attempt number 1 to connect to Access Server ‘localhost:4000’. Error=While sending a message to the socket ‘37d467de[SSL_NULL_WITH_NULL_NULL: Socket[addr=localhost/127.0.0.1,port=4000,localport=59517]]’ caught the exception: Connection reset.
6/20/16 1:22:16 PM [SAX Parser Error] :1:23 : cvc-elt.1: Cannot find the declaration of element ‘AdapterConfiguration’.
6/20/16 1:23:31 PM JMS adapter error: Error in getting the queue connection factory.: java.lang.NullPointerException: while trying to invoke the method com.acta.adapter.jms.JMSConfigHandler.getQueueConnectionFactory() of a null object loaded from field com.acta.adapter.jms.JMSAdapter.configHandler of an object loaded from local variable ‘this’
6/20/16 1:23:31 PM AdapterException error from resource. Will stop operation. See the previous messages for details.

The standalone Java client program that i wrote is successfully able to connect to the server and send/receive messages with the same jar files. I guess there is some config missing in the JMS Adapter on the BODS side.

Any ideas?

[/i]


pradeepshenoy (BOB member since 2016-06-15)

Hi Manoj,

Its finally working. :smiley:

The problem was with the Java version. (I dont know How or Why). I replaced the existing <%LINK_DIR%>/ext/jre with my local jre8 copy and restarted the Job server. Surprisingly the Adapter and the Operation started working.

Just one question. Moving forward, will this change create new problems anywhere else?

Thank you again for your response! :slight_smile:

Regards,
Pradeep


pradeepshenoy (BOB member since 2016-06-15)

no, you can change the %LINK_DIR%\ext\jre to 1.8

this location is used by Adapters other services use the default JVM from Platform Services

you may have to update this again if you apply any patches


manoj_d (BOB member since 2009-01-02)