Author |
Message
|
CuriCAT |
Posted: Tue Feb 20, 2007 12:34 am Post subject: JMSOutput node not able to put the msg, getting error |
|
|
 Voyager
Joined: 26 Sep 2006 Posts: 82
|
I have created a message flow , where I am reading from a MQ queue bye using MQInput node and writting that message into another queue using JMSOutput node.
I have created all the JNDI objects, updated the properties in JMSOutput node, when I run the flow it doesn't write into the output queue,it is giving error, I can see the follwing entry in the even viewer. But with the same configuration I am able to write into the same queue by using JAVA JMS program, Can someone help me please. Thanks in Advance.
( BK_DEM003.default ) WBIMB JMSClient. ''
Broker : BK_DEM003
Execution Group : default
Message Flow : MQToJms
Node : ComIbmJMSClientOutputNode::JMS_Output_LQ_ >
'' There is a configuration problem with the JNDI Administered objects where: Initial Context Factory = ''''. Location of the bindings = ''file://C:/JNDIConfig/JMS_Sample''. ConnectionFactory Name = ''JMS''. JMS destination = ''JMS_OUT_LQ''. The JNDI exception text is : ''Cannot instantiate class: ''.
The node could not obtain a JNDI Administered Object because some of the values specified in the node attributes are incorrect
Check the JNDI Administered configuration for the JMS provider used by the node. Either modify the JNDI Administered objects and rebuild the bindings, or change the node attributes and re-deploy the message flow.
FOLLOWING ARE THE OBJECTS
InitCtx/JMS_Sample> display ctx
Contents of InitCtx/JMS_Sample
.bindings java.io.File
a JMS com.ibm.mq.jms.MQQueueConnectionFactory
a JMS_INPUT_LQ com.ibm.mq.jms.MQQueue
a JMS_OUTPUT_LQ com.ibm.mq.jms.MQQueue
4 Object(s)
0 Context(s)
4 Binding(s), 3 Administered |
|
Back to top |
|
 |
sarat |
Posted: Tue Feb 20, 2007 1:22 am Post subject: |
|
|
 Centurion
Joined: 29 Jun 2005 Posts: 136 Location: India
|
hi,
wat's the value of the property "Initail Context Factory"?
Bcoz u wrote:
Quote: |
'' There is a configuration problem with the JNDI Administered objects where: Initial Context Factory = ''''. Location of the bindings = ''file://C:/JNDIConfig/JMS_Sample''. ConnectionFactory Name = ''JMS''. JMS destination = ''JMS_OUT_LQ''. The JNDI exception text is : ''Cannot instantiate class: ''. |
It's mandatory.
The value by default is "com.sun.jndi.fscontext.RefFSContextFactory" _________________ With Regards,
Sarat. |
|
Back to top |
|
 |
elvis_gn |
Posted: Tue Feb 20, 2007 1:30 am Post subject: Re: JMSOutput node not able to put the msg, getting error |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi CuriCAT,
CuriCAT wrote: |
Initial Context Factory = ''''. |
Have you promoted the properties to one common property in the main flow ? If yes, de-promote it and try.
Regards. |
|
Back to top |
|
 |
CuriCAT |
Posted: Tue Feb 20, 2007 1:49 am Post subject: |
|
|
 Voyager
Joined: 26 Sep 2006 Posts: 82
|
I have already set the property -
Initial Contaxt Factory:com.sun.jndi.fscontext.RefFSContextFactory
but why in error it shows
Code: |
Initial Context Factory = ''''. |
I was really had this question.  |
|
Back to top |
|
 |
dirac |
Posted: Tue Feb 20, 2007 2:13 am Post subject: |
|
|
Novice
Joined: 31 Mar 2005 Posts: 23
|
The Initial Context Factory needs to be set in two places.
1) On the JMSConnection tab of the JMS Output node where
Initial Context Factory = com.sun.jndi.fscontext.RefFSContextFactory
2) When using the JMSAdmin.config file provided with MQ, you should uncomment the relevant line before creating your bindings:
#INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory
INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
#INITIAL_CONTEXT_FACTORY=com.ibm.ejs.ns.jndi.CNInitialContextFactory
#INITIAL_CONTEXT_FACTORY=com.ibm.websphere.naming.WsnInitialContextFactory
Have you done both of these things? |
|
Back to top |
|
 |
CuriCAT |
Posted: Tue Feb 20, 2007 2:33 am Post subject: |
|
|
 Voyager
Joined: 26 Sep 2006 Posts: 82
|
YES, i have done in both the places. |
|
Back to top |
|
 |
elvis_gn |
Posted: Tue Feb 20, 2007 3:24 am Post subject: Re: JMSOutput node not able to put the msg, getting error |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi CuriCAT,
Did you try this:
elvis_gn wrote: |
Have you promoted the properties to one common property in the main flow ? If yes, de-promote it and try. |
Regards. |
|
Back to top |
|
 |
CuriCAT |
Posted: Tue Feb 20, 2007 3:30 am Post subject: |
|
|
 Voyager
Joined: 26 Sep 2006 Posts: 82
|
Hello elvis_gn,
I have not promoted any properties in main flow. all the properties are set only in the node
One more thing:
if I give the following in the Initial Context Factory
"com.sun.jndi.fscontext.RefFSContextFactory"
I am getting this error :
Quote: |
'' There is a configuration problem with the JNDI Administered objects where: Initial Context Factory = ''''. Location of the bindings = ''file://C:/JNDIConfig/JMS_Sample''. ConnectionFactory Name = ''JMS''. JMS destination = ''JMS_OUT_LQ''. The JNDI exception text is : ''Cannot instantiate class: ''. |
If I make it like this com.sun.jndi.fscontext.RefFSContextFactoryxxx:
I am getting this error:
( BK_DEM003.default ) WBIMB JMSClient. ''
Broker : BK_DEM003
Execution Group : default
Message Flow : MQToJms
Node : ComIbmJMSClientOutputNode::JMS_Output_LQ_ >
Quote: |
'' There is a configuration problem with the JNDI Administered objects where: Initial Context Factory = ''com.sun.jndi.fscontext.RefFSContextFactoryxxx''. Location of the bindings = ''file://C:/JNDIConfig/JMS_Sample''. ConnectionFactory Name = ''JMS''. JMS destination = ''JMS_INPUT_LQ''. The JNDI exception text is : ''Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactoryxxx''. |
The node could not obtain a JNDI Administered Object because some of the values specified in the node attributes are incorrect
Check the JNDI Administered configuration for the JMS provider used by the node. Either modify the JNDI Administered objects and rebuild the bindings, or change the node attributes and re-deploy the message flow. |
|
Back to top |
|
 |
JohnSmith |
Posted: Thu May 06, 2010 2:04 am Post subject: |
|
|
Voyager
Joined: 17 Mar 2010 Posts: 86
|
dirac wrote:
Quote: |
The Initial Context Factory needs to be set in two places.
1) On the JMSConnection tab of the JMS Output node where
Initial Context Factory = com.sun.jndi.fscontext.RefFSContextFactory
2) When using the JMSAdmin.config file provided with MQ, you should uncomment the relevant line before creating your bindings:
#INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory
INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
#INITIAL_CONTEXT_FACTORY=com.ibm.ejs.ns.jndi.CNInitialContextFactory
#INITIAL_CONTEXT_FACTORY=com.ibm.websphere.naming.WsnInitialContextFactory
Have you done both of these things? |
I am trying to copy a JNDI file from Windows(DEV) to AIX system(SIT) as MQ objects are same, can I use it like that.
As on both the environment, MQ and Message broker are on same machine and at same version.
Also the Broker Properties for JMS provider is fine we are using MQ JMS provider.
Do I need to do anything else to make it work besides changing the path in JMSINput or JMSOutput Node?
I tried to copy the binding file and then tried to change the path, but getting the below error. what could be the reason?
Quote: |
RecoverableException
File:CHARACTER:JMSClientErrors.java
Line:INTEGER:617
Function:CHARACTER:JMSClientErrors:handleJNDIException()
Type:CHARACTER:
Name:CHARACTER:
Label:CHARACTER:
Catalog:CHARACTER:BIPv610
Severity:INTEGER:0
Number:INTEGER:4640
Text:CHARACTER:Failure to obtain JNDI administered objects
Insert
Type:INTEGER:5
Text:CHARACTER:Broker 'BROKER1; Execution Group 'EG1'; Message Flow xxxxxxx; Node 'Multi Country Processor.PreBuilt Service Processor.SF_MQJMSOutbound.JMSOutput'
Insert
Type:INTEGER:5
Text:CHARACTER:com.sun.jndi.fscontext.RefFSContextFactory
Insert
Type:INTEGER:5
Text:CHARACTER:file://load/dir/home/mbumqm
Insert
Type:INTEGER:5
Text:CHARACTER:qcf1
Insert
Type:INTEGER:5
Text:CHARACTER:
Insert
Type:INTEGER:5
Text:CHARACTER:Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory
Insert
Type:INTEGER:5
Text:CHARACTER: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory |
earlier it seemed something to do with fscontext jar, but then I took the avobe jar and deployed into the execution group but still the same error
Adding further, I didnt modify the JMSADMIN.config in the AIX environment, as its only required during creation of .binding file and it wont affect the functioning of JMS nodes, correct me if I am wrong here.
My JMSADMIN.config in the AIX environment is the sample supplied one and I havent changed anything in it whereas I did change the JMSAdmin.config during bindings creation on Windows server. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu May 06, 2010 2:39 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Does the broker service user have necessary permissions to the bindings file? |
|
Back to top |
|
 |
JohnSmith |
Posted: Thu May 06, 2010 3:09 am Post subject: |
|
|
Voyager
Joined: 17 Mar 2010 Posts: 86
|
Jeff wrote:
.
Quote: |
Does the broker service user have necessary permissions to the bindings file? |
yes jeff, that is the first thing I checked. Can you help me what's the Path I should give in case of AIX for JNDI directory.
My .binding file is present in the directory - /load/dir/home/mbumqm on AIX box and in JMSOutput Node I am passing the value as
file://load/dir/home/mbumqm , I suspect this might not be the correct way |
|
Back to top |
|
 |
JohnSmith |
Posted: Thu May 06, 2010 6:12 am Post subject: |
|
|
Voyager
Joined: 17 Mar 2010 Posts: 86
|
Quote: |
Type:INTEGER:5
Text:CHARACTER:Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory
Insert
Type:INTEGER:5
Text:CHARACTER: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory |
Now I am not getting the above error, after doing some classpath changes on Broker AIX server, I managed to switch to another problem.
Now the error says -
Failure to obtain JNDI administered objects No Initial context
It seems related to my binding file, but not sure what exactly is the problem , is the JNDI directory path is correct as I mentioned in the above post. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu May 06, 2010 7:04 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Your previous error messages pointed to jar files missing on your classpath...
This time around it looks like it cannot load the .bindings file.
Have you verified that you can load the .bindings file and the relevant objects defined in it independently from WMB?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
JohnSmith |
Posted: Thu May 06, 2010 7:15 am Post subject: |
|
|
Voyager
Joined: 17 Mar 2010 Posts: 86
|
Quote: |
Have you verified that you can load the .bindings file and the relevant objects defined in it independently from WMB? |
Hi, how to verify whether the bindings file can be loaded or not. I am using JMSInput and output node in my flow and they are failiing with the below error.
Also note I copied the JNDI file from windows server and it has all the permissions.
I also understand that JMSAdmin.config file is only required to create .bindings so as I have copied the binding file already, I am not making any changes in JMSAdmin and keeping it as it is. Correct me if I am wrong. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu May 06, 2010 7:36 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Well copied from Windows has me queasy. Was it a binary copy?
A simple stand alone java JMS program should tell you if you can retrieve the objects correctly from the context...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|