יום שישי, 8 באפריל 2011

SBL-EAI-05102: JNDI error in EAI JMS Transport: '%1'.


Applies to: Siebel System Software - Version: 7.8.2 SIA [19213] and later [Release: V7 and later ]
IBM AIX on POWER Systems (64-bit)
Product Release: V7 (Professional)
Version: 7.8.2 [19213]
Database: IBM DB2 8.2
Application Server OS: IBM AIX 5L 5.2
Database Server OS: IBM AIX 5L 5.2

This document was previously published as Siebel SR 38-2519061651.
""""Checked for relevance on 29-OCT-2010""""

Symptoms
When trying to send a message to MQSeries via the EAI JMS Transport the following error was observed:

ObjMgrBusServiceLog Error 1 0 2005-09-23 11:29:54 (javabsvc.cpp (164)) SBL-EAI-05000: Business Service call returned error code JNDI_ERROR and message: Exception: javax.naming.NameNotFoundException: com.ibm.mq.jms.MQQueueConnectionFactory; Message: com.ibm.mq.jms.MQQueueConnectionFactory

ObjMgrBusServiceLog Error 1 0 2005-09-23 11:29:54 (jmsbsvc.cpp (293)) SBL-EAI-05102: JNDI error in EAI JMS Transport: 'Exception: javax.naming.NameNotFoundException: com.ibm.mq.jms.MQQueueConnectionFactory; Message: com.ibm.mq.jms.MQQueueConnectionFactory'.



The following documents were also useful to progress the setup up to this point:
NOTE: 541499.1 JMS Receiver Configuration
NOTE: 505693.1JMS Transport Configuration
NOTE: 508496.1 JMS Receiver - server task


CauseIncorrect connection factory name was provided as input to the EAI JMS Transport.
The exception ‘javax.naming.NameNotFoundException:’ indicates a failure to locate the the ConnectionFactory and/or SendQueue parameters as supplied to the EAI JMS Transport.

In this case, the ConnectionFactory had been set to com.ibm.mq.jms.MQQueueConnectionFactory, instead of the created connection factory name from the JMSAdmin tool provided by IBM

SolutionPlease make sure you provide the correct connection factory name.
It should be the same as defined in the JMSAdmin tool provided by IBM if you are doing JNDI lookups to the .bindings file generated by this tool.
If you are not using JMSAdmin and .bindings, then you must have a JNDI server setup externally to Siebel where you map the JNDI name of the connection factory to the MQ Queue Manager.
You must use the JNDI name that corresponds to the queue manager in this case.
Please check with your JNDI admin.


Note, there are various methods of the EAI JMS Transport (e.g. CheckAll) which can be used to verify and pinpoint problems with the JMS setup.

Support also recommends the following documents to assist in setup and troubleshooting:


NOTE: 850954.1 Basic Troubleshooting Steps for EAI JMS Transport
NOTE: 978645.1 Websphere MQ Supported Versions For Siebel EAI MQ Series Server Transport / EAI JMS Transport
NOTE: 473811.1 Where Can You Install Third Party Software To Use Siebel's MQ and JMS Transports?
NOTE: 845103.1 Does the MQ Queue manager have to be installed on the Siebel Application server or can it use a remote queue manager?
NOTE: 828113.1 How to setup Siebel JMS Transport to work directly with the IBM WebSphere MQ Series Server



ReferencesNOTE:541499.1 - JMS Receiver Configuration -
NOTE:505693.1 - JMS Transport Configuration
NOTE:508496.1 - JMS Receiver - server task
NOTE:850954.1 - Basic Troubleshooting Steps for EAI JMS Transport
NOTE:978645.1 - Websphere MQ Supported Versions For Siebel EAI MQ Series Server Transport / EAI JMS Transport
NOTE:473811.1 - Where Can You Install Third Party Software To Use Siebel's MQ and JMS Transports?
NOTE:845103.1 - Does the MQ Queue manager have to be installed on the Siebel Application server or can it use a remote queue manager?
NOTE:828113.1 - How to setup Siebel JMS Transport to work directly with the IBM WebSphere MQ Series Server




















Applies to: Error Message Area:Application Integration Infrastructure, Enterprise Application Interfaces - EAI
Version:Siebel 7.7

PurposeThis document is intended to provide cause and corrective action information about Siebel Error Message SBL-EAI-05102: JNDI error in EAI JMS Transport: '%1'.

ScopeThis document is informational and intended for any user.

SBL-EAI-05102: JNDI error in EAI JMS Transport: '%1'.ExplanationThe business service was unable to retrieve the administered Java object (factory or queue or topic) via JNDI

Corrective ActionEnsure that both the JNDI provider code and the JMS provider code (.jar files) are included in the CLASSPATH. Also ensure that JNDI service is operational. This can be done with a simple standalone Java program or by calling CheckClasspath, CheckJNDIContext, or CheckJNDIObjects.


























Applies to: Siebel System Software - Version: 7.8.2 SIA [19213] and later [Release: V7 and later ]
z*OBSOLETE: Microsoft Windows Server 2003
Product Release: V7 (Enterprise)
Version: 7.8.2 [19213] Com/Med
Database: Oracle 9.2.0.6
Application Server OS: Microsoft Windows 2003 Server
Database Server OS: IBM AIX 5L 5.2

This document was previously published as Siebel SR 38-2892360841.
***Checked for relevance on 12-JAN-2011***

SymptomsSBL-EAI-05102

Requirement is to call EAI JMS Transport, and implement a fail-over strategy for doing "SendReceives" to JMS queues.

Here is the setup:
- Two JMS Subsystems defined on the Siebel Server: JMSSubSys1, JMSSubSys2
- Two JAVA subsystems defined: Java1, Java2
- Java1 has in its classpath a jndi.properties file that includes bindings for JMS Queue 1 (an MQ Queue Manager)
- Java2 has in its classpath a jndi.properties file that includes bindings for JMS Queue 2 (an MQ Queue Manager)
- JMSSubSys1 uses Java1
- JMSSubSys2 uses Java2

A Workflow Process attempts to send a JMS Message using "Send/Receive" through JMSSubSys1. If this "Send/Receive" fails, then, on the error branch, an attempt is made to send the message again, but this time using JMSSubSys2.

However, the following messages are reported :-

9:39:47.719 AM Thu Feb 9: Invoking method SendReceive
9:39:47.719 AM Thu Feb 9: >ConnectionFactory=JMSConnFactory2
9:39:47.719 AM Thu Feb 9: >ConnectionUsername=
9:39:47.719 AM Thu Feb 9: >ConnectionPassword=*
9:39:47.719 AM Thu Feb 9: >SendQueue=MY.REQUEST
9:39:47.719 AM Thu Feb 9: >SendUsername=
9:39:47.719 AM Thu Feb 9: >SendPassword=*
9:39:47.719 AM Thu Feb 9: >ReceiveQueue=MY.REPLY
9:39:47.719 AM Thu Feb 9: >ReceiveUsername=
9:39:47.719 AM Thu Feb 9: >ReceivePassword=*
9:39:47.719 AM Thu Feb 9: >TopicUsername=
9:39:47.719 AM Thu Feb 9: >TopicPassword=*
9:39:47.719 AM Thu Feb 9: No cached connection found
9:39:47.812 AM Thu Feb 9: SendReceive failed.
9:39:47.812 AM Thu Feb 9: Error invoking SendReceive --

SiebelJMSException errorSubtype=LOOKING_UP_CONNECTION_FACTORY (wrapped exception = javax.naming.NameNotFoundException: JMSConnFactory2)
at com.siebel.eai.jms.b.a(SiebelJNDIContext.java)
at com.siebel.eai.jms.b.getFactory(SiebelJNDIContext.java)
at com.siebel.eai.jms.JMSBusinessService.a(JMSBusinessService.java)



JNDI error in EAI JMS Transport: 'Exception: javax.naming.NameNotFoundException: JMSConnFactory2; Message: JMSConnFactory2'.(SBL-EAI-05102) (0x8319)
[3] Object manager error: ([1] JNDI error in EAI JMS Transport: 'Exception: javax.naming.NameNotFoundException: JMSConnFactory2; Message: JMSConnFactory2'.(SBL-EAI-05102) (0x8319))


CauseCurrently, for a single operating system process (relating to a Siebel object manager or component) only one JVM can be loaded. So from any one Siebel component, the EAI JMS Transport can read only one JVM setting and only one named subsystem of type JVMSubsys. It is not currently possible to load multiple JVM settings with EAI JMS Transport.

As a result, when using two named subsystems of type JVMSubsys with EAI JMS Transport, the second named subsystem is not loaded, so that EAI JMS Transport can’t find the connection factory name defined in the second named subsystem of type JVMSubsys. In that configuration, the above reported error can occur.

There is no documentation is available to explain this behavior. Change request BUG 10506754 has been logged to address this Documentation Enhancement Request.

Also, change request Bug 10571287 has been logged to allow for different parameters to be used in subsequent EAI JMS Transport calls within the same process (and allow it to find a different jndi.properties).

SolutionIf you experience the same behavior, please make configuration change so make sure only one named subsystem of type JVMSubsys and one connection factory is used in a process. For example, invoke a Workflow Process in a cloned wfprocmgr component, with it's own JVMSubsys configuration.


ReferencesBUG:10506754 - [CR#12-1CIFWOW][FR#12-1CIFWSM] PLEASE DOCUMENT ONLY ONE JVMSUBSYS IS SUPPORTED I
















Applies to: Siebel CRM - Version: 8.0.0.1 SIA [20408] and later [Release: V8 and later ]
Information in this document applies to any platform.
""""Checked for relevance on 29-OCT-2010""""

Symptoms
<!--<br>
The customer was installing Siebel 8.1.1 QF1002 for ACR 463: AIA COM 2.4 Order to Active and Order to Bill PIP Enhancements.

The application object manager’s log file showed that the following error occurred executing the workflow ‘SIS OM New Products & Services Process’ at the step Submit Order WS:


/* Font Definitions */<br>

{font-family:"Book Antiqua";<br>

panose-1:2 4 6 2 5 3 5 3 3 4;<br>

mso-font-charset:0;<br>

mso-generic-font-family:roman;<br>

mso-font-pitch:variable;<br>

mso-font-signature:647 0 0 0 159 0;}<br>

{font-family:Tahoma;<br>

panose-1:2 11 6 4 3 5 4 4 2 4;<br>

mso-font-charset:0;<br>

mso-generic-font-family:swiss;<br>

mso-font-pitch:variable;<br>

mso-font-signature:1627421319 -2147483648 8 0 66047 0;}<br>

/* Style Definitions */<br>

p.MsoNormal, li.MsoNormal, div.MsoNormal<br>

{mso-style-parent:"";<br>

margin:0cm;<br>

margin-bottom:.0001pt;<br>

mso-pagination:widow-orphan;<br>

font-size:12.0pt;<br>

font-family:"Times New Roman";<br>

mso-fareast-font-family:"Times New Roman";}<br>

p.ServiceRequest, li.ServiceRequest, div.ServiceRequest<br>

{mso-style-name:"Service Request";<br>

margin:0cm;<br>

margin-bottom:.0001pt;<br>

mso-pagination:widow-orphan;<br>

font-size:12.0pt;<br>

font-family:"Book Antiqua";<br>

mso-fareast-font-family:"Times New Roman";<br>

mso-bidi-font-family:Tahoma;<br>

color:#333399;<br>

mso-ansi-language:EN-GB;<br>

font-weight:bold;}<br>

{size:612.0pt 792.0pt;<br>

margin:72.0pt 90.0pt 72.0pt 90.0pt;<br>

mso-header-margin:36.0pt;<br>

mso-footer-margin:36.0pt;<br>

mso-paper-source:0;}<br>

div.Section1<br>

{page:Section1;}<br>

-->

"JNDI error in EAI JMS Transport: 'Exception: javax.naming.CommunicationException: Can't find SerialContextProvider; Message: Can't find SerialContextProvider'.(SBL-EAI-05102)"

Cause
The “Can't find SerialContextProvider” error occurred because the CLASSPATH specified in the JVM subsystem (JAVA) did not include a complete list of JMS vendor specific jar files.


Solution
The error did not occur after CLASSPATH was set to the following:


.;D:\sba81\siebsrvr\CLASSES\Siebel.jar;D:\sba81\siebsrvr\CLASSES\SiebelJI_enu.jar;D:\jms;D:\jms\oc4j-internal.jar;D:\jms\jazn.jar;D:\jms\jazncore.jar;D:\jms\ojdbc14.jar;D:\jms\javaee.jar;D:\jms\oc4jclient.jar;D:\jms\jta.jar;D:\jms\jms.jar;D:\jms\jndi.jar;D:\jms\optic.jar;D:\jms\adminclient.jar;D:\jms\dms.jar;D:\jms\pcl.jar;D:\jms\bcel.jar;

ReferencesNOTE:850954.1 - Basic Troubleshooting Steps for EAI JMS Transport
















Applies to: Siebel Financial Services CRM - Version: 8.1.1 [21112] - Release: V8
Information in this document applies to any platform.

SymptomsPlatform :- IBM AIX on POWER Systems (32-bit)

Invoking 'Send' method of 'EAI JMS Transport' on siebel version 8.1.1 to connect to an Oracle AQ queue configured on Web logic 10.3 threw the below error :-
---
java.lang.UnsupportedClassVersionError: (oracle/jdbc/pool/OracleOCIConnectionPool) bad major version at offset=6] error :-
---
When standalone java client was made to run with the same JVM and classpath as used by siebel, it also failed with the same error as siebel.

CauseThere were multiple problems in the JMS set up.

Further investigation revealed that this error occurred due to incompatibility of the JVM version with some jars in the CLASSPATH. JVM used for test from Siebel was the one present inside the folder "usr/java5/jre/bin/classic/libjvm.so" of the version:-
---
java version "1.5.0"
IBM J9 VM
---

Java version on Weblogic server :-
---
Sun JDK
Version 1.6.0_14-b0
---


SolutionSo it was suggested to test the JMS connectivity using JVM 1.6 version since the weblogic jars were complied using JRE 1.6. On using JRE 1.6 the 'UnsupportedClassVersionError' error went away.

Note :- Per SRSP documentation (http://download.oracle.com/docs/cd/E11886_01/V8/CORE/SRSP_81/SRSP_81_OtherPlatforms6.html#wp1051674), JRE 1.6 is still not officially supported with siebel 8.1.1.

So Product Management was consulted on this and it was indicated that JVM 1.6 is on the way of being certified and that internally we are using JVM 1.6 for our siebel servers but this *does* warrant specific testing for specific scenarios.

On using JRE 1.6 although the 'UnsupportedClassVersionError' error went away, a new error was reported while invoking the 'Send' method :-
---
java.lang.NoClassDefFoundError: weblogic.rjvm.RJVMFinder (initialization failure)
---

Running 'CheckJNDIContext' for first time gave the following error:
---
java.lang.UnsatisfiedLinkError: net (No such file or directory)
---

and for second and third time 'CheckJNDIContext' gave error as 'java.lang.NoClassDefFoundError: weblogic.rjvm.RJVMFinder'.

Through collaboration with Weblogic Support team, it was learnt that the 'weblogic.jar' contains the class 'weblogic.rjvm.RJVMFinder'. However, when the 'weblogic.jar' was included in the classpath, still the same error was thrown. This is because the 'weblogic.jar' that was included in the 'classpath' did not have the class 'RJVMFinder'. On including a different 'weblogic.jar' taken from another weblogic server installation, the error went away.

Also the DLL parameter of the 'JVMSubsys' was made to point to the '/usr/java6/jre/lib/ppc/j9vm/libjvm.so' (as per documentation on IBM JRE 1.6 on the IBM website). The environment variables LIBPATH and LD_LIBRARY_PATH were set to include the directories:-

------
/u01/siebel/weblogic:/usr/java6/jre/lib/ppc:/usr/java6/jre/lib/ppc/j9vm
-------

where :
/u01/siebel/weblogic - is the directory where the weblogic .jar files are located

With this changes, the JMS connectivity could be successfully established from Siebel 8.1.1 to Weblogic AQ.


ReferencesSBL-EAI-05000
SBL-EAI-05102






Related







Products








Siebel > Customer Relationship Management > CRM - Enterprise Edition > Siebel Financial Services CRM


Keywords






 

JMS; NO SUCH FILE OR DIRECTORY; NOCLASSDEFFOUNDERROR; UNSATISFIEDLINKERROR; CLASSPATH; JAVA.LANG.UNSUPPORTEDCLASSVERSIONERROR; JAVA.LANG.UNSATISFIEDLINKERROR; JAVA.LANG.NOCLASSDEFFOUNDERROR

 



 

אין תגובות:

הוסף רשומת תגובה