Changing the connection factory JNDI dynamically in Ftp Adapter

Posted by [email protected] on Oracle Blogs See other posts from Oracle Blogs or by [email protected]
Published on Tue, 13 Apr 2010 09:08:58 +0000 Indexed on 2010/04/13 10:13 UTC
Read the original article Hit count: 414

Filed under:

Consider a usecase where you need to send the same file over to five different ftp servers. The first thought that might come to mind is to create five FtpAdapter references one for each connection-factory location. However, this is not the most optimal approach and this is exactly where "Dynamic Partner Links" come into play in 11g. 

 

If you're running the adapter in managed mode, it would require you to configure the connection factory JNDI in the appserver console for the FtpAdapter. In the sample below, I have mapped the connection-factory JNDI location "eis/Ftp/FtpAdapter" with the ftp server running on localhost.

     
weblogic-ra.jpg 

 

After you've configured the connection factory on your appserver, you will need to refer to the connection-factory JNDI in the jca artifact of your SCA process. In the example below, I've instructed the FTPOut reference to use the ftp server corresponding to "eis/Ftp/FtpAdapter".

 

jca.jpg

 

The good news is that you can change this connection-factory location dynamically using jca header properties in both BPEL as well as Mediator service engines. In order to do so, the business scenario involving BPEL or Mediator would be required to use a reserved jca header property "jca.jndi" as shown below.

 

bpel.jpg

 

Similarly, for mediator, the mplan would look as shown below.

 

 

med.jpg

 

Things to remember while using dynamic partner links:

1) The connection factories must be pre-configured on the SOA server. In our BPEL example above, both "eis/Ftp/FtpAdater1" and "eis/Ftp/FtpAdater2" must be configured in the weblogic deployment descriptor for the FtpAdapter prior to deploying the scenario.

2) Dynamic Partner Links are applicable to outbound invocations only.

 

 

© Oracle Blogs or respective owner