Recently, I've been trying configure an MQ adapter that could enqueue data of any structure into specified queue based on the specified JNDI, all passed dynamically at runtime. This post decsribes how you can pass the JNDI Name dynamically to an Adapter.
All you have to do is define a String variable (say myJndiName) that stores your JNDI name (eis/MQ/someThing...already configured on Weblogic) and pass this variable into Invoke Activity properties directly in the .bpel source.
Note that you'll not be able to find this property in the Invoke Activity > Properties tab.
All you have to do is define a String variable (say myJndiName) that stores your JNDI name (eis/MQ/someThing...already configured on Weblogic) and pass this variable into Invoke Activity properties directly in the .bpel source.
Note that you'll not be able to find this property in the Invoke Activity > Properties tab.
And that's it. You can assign different values on the fly to the variable myJndiName and same adapter can enqueue in different JNDI locations. It also works for FTP and JMS adapters too.
Hey Neeraj,
ReplyDeleteThis was a breather for us.
You have provided a very useful information. We were successfully able to dynamically select a JNDI and also dynamically select a queue and post a message to the same.
Thanks a lot!
Regards,
Pavan
Hi Pavan,
DeleteWere you able to pass Queue name also dynamically?
Thanks,
Hi Neeraj,
ReplyDeletethx for useful post,actually I follow the http://shrikworld.blogspot.in/2011/04/change-db-jndi-dynamically-in-soa-11g.html and I use BPEL 2.0 so I set the property as you mention but when I try to change the JNDI in Attribute Properties as mentioned in the above link,it it is not changed and I get the old jndi only,Plz tell where I missed.
Regards
Mani
Hello Neeraj
ReplyDeleteYour example for setting dynamically a JDNI in dbAdapter is great and pointed us in the right direction.
But we have a veri different problem now with dbDapter. We need to set all the connection parameters at runtime (ConnectionURL,password,username) for the dbAdapter. Is that possible with dbAdapter or maybe we should try a different approach or technology.
Regards
Sergio
Hi Sergio,
DeleteI'd suggest creating all the DB connections in the WLS with different JNDIs and then pass the JNDI as input parameter for the desired connection.
Regards,
Neeraj Sehgal
Neeraj,
ReplyDeleteThis was really helpful,I used this property for my AQ Adapter JNDI.Is there any way to send the queue name dynamically for AQ.I saw your post for MQ,but I am not fincing similar property for AQ Adapter.
Thanks,
Hi Neeraj,
ReplyDeleteI done ur post, but I have a doubt,
When I will changing the JNDI name , every time I need to go the code in assign activity to manually mention JNDI name.
Again I need to deploy right.
So where I getting dynamic pass the JNDI.
It's only a static.
Please clarify my question.
Thanks
Siddaiah
7406402288