Recent Blog Entries

Tuesday, 10 July 2012

Verifying connectivity from Siebel EAI JMS to AIA 2.5 / OC4J 10.1.3 using a generic JMS Test Client

The integration of Siebel, BRM and OSM using AIA 2.5 makes use of the JMS client built in Siebel EAI. To verify if you have connectivity and the correct parameters on Siebel side, there is a very helpful JMS Test Client available in My Oracle Support – see MOS Note “Basic Troubleshooting Steps for EAI JMS Transport [ID 850954.1]”.

However this note is very generic. For being able to instantly run this in an AIA 2.5 environment I am including this TestJMSClient here as a JDeveloper 10.1.3.5 project. It is tested using JDBC 11.2.0.3 and OC4J 10.1.3.5.2.

Setting up and running the project is very easy: just copy the libraries needed from a SOA 10.1.3.5.2 installation  to a directory where the client runs. See here for a screenshot of the required libs:

clip_image002

Then adapt the jndi properties used in the class to your environment and run TestJMSClient.java.
The standard behaviour of the TestJMSClient is to send a new JMS TextMessage every 5 seconds (100 in total).

A successful execution should produce this output:

Lookup Queue Connection Factory : java:comp/resource/COMMS_SUBMITORDER_PRODUCER/XAQueueConnectionFactories/AIA_Queue
OK
Lookup Queue java:comp/resource/COMMS_SUBMITORDER_PRODUCER/Queues/AIA_SALESORDERJMSQUEUE
OK
Creating Queue Connection...
OK
Creating Queue Session...
OK
Creating Sender...
OK
Creating Text Message...
OK
Sending message...
OK
Sent message: Testing: Tue Jul 10 16:21:02 CEST 2012 - ID:C47B70A81A140F5AE0436538A8C0198C

You might run into several connectivity issues:

Issue 1:

oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER
WARNING: Exception returned by remote server: {0}
java.lang.NoClassDefFoundError: oracle/classloader/PolicyClassLoader

Solution: include pcl.jar in the list of project libraries

Issue 2:

Creating Queue Connection...
Exception occurred: oracle.jms.AQjmsException: IO Error: The Network Adapter could not establish the connection

Solution:  One possible cuase may be that the host name of the database is not known on client side (missing entry in file /etc/hosts or \Windows\system32\drivers\etc\hosts)

Issue 3:

Creating Queue Connection...
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/bcel/generic/Instruction

Solution:  bcel.jar is missing in the list of project libraries

Issue 4:

oracle.j2ee.clustering.ClusteringMessages warningInOpmnGetServers
WARNING: Error in obtaining server list from OPMN on host node1.aiaperf.com:6003. Please verify that OPMN is running.
Lookup Queue Connection Factory : java:comp/resource/COMMS_SUBMITORDER_PRODUCER/XAQueueConnectionFactories/AIA_Queue
JNDI lookup failed: javax.naming.NameNotFoundException: java:comp/resource/COMMS_SUBMITORDER_PRODUCER/XAQueueConnectionFactories/AIA_Queue not found

Solution:  OC4J is not running or the Connection Factory JNDI name is wrong

Issue 5:

If you receive class version / serial id mismatch exceptions, this is likely a difference in the classes used in the aqapi.jar on client and on OC4J server side.

Solution:  Be sure that you are using the same aqapi.jar and ojdbc5.jar on client side and server side.

More on adopting the JMS Test Client for AIA 11.x soon!

No comments:

Post a Comment