Dynamic configuration of connection JNDI name in adapter service

I have a requirement to connect to multiple E-Business Suite instances and databases based on data in the message. I've created some adapter services, and it seems that the way each adapter service decides which instance to connect with is in the WSDL of that service:
<service name="RaiseEvent">
<port name="RaiseEvent_pt" binding="tns:RaiseEvent_binding">
<jca:address location="eis/Apps/VIS03_LNAX30B"/>
</port>
</service>
That snippet is from an Oracle Apps Adapter service, but there's similar code in the WSDL for database adapter services as well. The "eis/Apps/VIS03_LNAX30B" value is the name of the connection factory set up in my OC4J instance administration, specifying the database/EBS instance to use. Manually changing that value at design-time and redeploy works to connect to a different instance.
Is there any way to make that "jca:address location" attribute be a value that I pass into the adapter service, instead of hardcoding it into the WSDL?
Thanks,
Skip

I have tried to assign values to the OutBoundDBHeaderType to try invoke another JNDI, but does not seem to work.
The setup that I used was
Have 2 databases A and B.
Have the same procedure setup in both the databases.
Have 2 JNDIs setup to point to the databases A and B named as eis/DB/A and eis/DB/B.
Initially created a DB Adapter pointing to JNDI - A.
Created a variable of the OutboundDBHeaderType message type.
Tried to assign the dataSourceName as eis/DB/B in the BPEL process.
This doe not seem to change the JNDI, the calls continue going to A.

Similar Messages

  • Need help to Configure FTPS connection for File Sender Adapter

    Hi,
    I want to Configure, FTPS connection (Secured Connection) for File Sender Adapter. Could anyone please guide me, what Information I require to configure. I just want to know what Information should I request the team inorder the configure FTPS so that it can be deployed properly.
    I have checked with [SAP Help Link|http://help.sap.com/saphelp_nw04/helpdata/EN/e3/94007075cae04f930cc4c034e411e1/content.htm] and while configuring the communication channel found that I need Keystore and the X.509 Certificate and Private Key.  which needs to be deployed on the J2EE server by using the Visual Administrator.
    Is there anything else, I need to configure.
    Any help would be appreciated in this regard.
    Thanks & Regards,
    Varun.K

    The basic things are Certificate/Keys which you already know. Usually it is enough for running a sceanrio.
    However, if you have additional requirements, like FTPS for "Connection Security" for encryption, then you may need additional details like commands. Rest all settings are same as FTP.
    Regards,
    Prateek

  • Problem:obtaing file name using Dynamic configuration of file adapter

    hi all
    I am using Dynamic configuration for getting file name.
    I am getting Dynamic configuration in SXMB_MONI containg file name, but payload is empty unlike file i am sending.

    Hi All,
    Basically my requirement to get Filename in idoc segments in order to validate the posting at month end.
    Its an File to idoc scenario- GL Posting.
    Please check attached UDF and it gives error. Kindly help. Thanks

  • How to externalize JNDI name (setting JNDI name dynamically)

    Hi,
    In adapters such as ftp, database, we have to specify the jndi name. This binds the adapter to a particular jndi name. While this is certainly better than binding the adapter directly to the physical resource, I was wondering if it is possible to have even more flexibililty- setting the jndi name dynamically.
    Basically my requirement is to develop a web service that reads a file from a FTP location. I know I can externalize the filename and directory, but I am wondering how to set the ftp location dynamically.
    http://darwin-it.blogspot.com/2008/03/configuration-of-ftp-synchronous-get.html provides the answer if I wish to set the hostname, portname, user id and password.
    But I want to setup the FTP adapter in AS, and then use that JNDI name in my service. Is it possible...I am using SOA 10.1.3.3
    Regards,
    Amit

    I was able to access the files. Thanks.
    The example shows how to use the header properties in file adapter, and it sets the filename and directory elements dynamically....this I already knew.
    <copy>
    <from variable="inputVariable" part="payload"
    query="/client:PassFilePropertiesDynamicallyProcessRequest/client:FileName"/>
    <to variable="outHeader" part="outboundHeader"
    query="/ns2:OutboundFileHeaderType/ns2:fileName"/>
    </copy>
    <copy>
    <from variable="inputVariable" part="payload"
    query="/client:PassFilePropertiesDynamicallyProcessRequest/client:Location"/>
    <to variable="outHeader" part="outboundHeader"
    query="/ns2:OutboundFileHeaderType/ns2:directory"/>
    </copy>
    What I want to know is, what is the element to be added in the ftpAdapterOutboundHeader.wsdl that denotes the FTP Location (which is different from the directory).
    I guess your next update which would talk about FTP adapter, would clarify things.
    Thanks for your replies,
    Amit

  • Dynamic jndi-name in weblogic-ejb-jar.xml

    Is there a way to create dynamic (i.e. runtime) jndi-names for EJBs instead of
    (or in addition to) "hard coding" them in the weblogic-ejb-jar.xml file? What
    I'm trying to do is have one WebLogic instance (JVM) host multiple environments
    (our Beta and Training environments) and I simply want to deploy the same .ear
    file twice but have each environment (application - .ear) reference a different
    database schema (jdbc connection pool). I have everything working just fine for
    this scenario except when I define jndi-names for our ejbs. The problem is that
    I am really deploying the same ejbs (jndi-names and actually code base) in each
    applicatoin instance and I get an exception when the WebLogic is trying to deploy
    the second application (.ear) because the jndi-names in it have already been deployed
    by the first application instance. I recieve a jndi error stating that the name
    is already deployed.
    Or is there a better path to go down for what I am trying to do to have one WebLogic
    instance support our beta and training environments? Usually (but not always)
    our code base is the for same for both of these environments, I simply need to
    have each environment use a different database schema.
    Thanks

    A little birdie tells me that BEA does this very thing. Looking at the
    descriptors for WebLogic Portal I see:
    <weblogic-enterprise-bean>
    <ejb-name>LoaderEJB</ejb-name>
    <enable-call-by-reference>True</enable-call-by-reference>
    <jndi-name>${APPNAME}.BEA_content.LoaderHome</jndi-name>
    </weblogic-enterprise-bean>
    Yes, the ${APPNAME} token really is expanded into the J2EE application
    name at deployment time!
    Sincerely,
    Daniel Selman
    Bryan Dixon wrote:
    Rewriting our build process isn't really much of an option for me. Our current
    build process is too complex and time consuming right now to convert to Ant (we
    eventually will do this but not for a while). So are there any other ideas that
    aren't build related?
    Thanks
    "Eric Ma" <[email protected]> wrote:
    You don't need run-time dynamism in JDNI names and it can't be done anyways.
    You
    need token substitution in XML configuration files when building the
    app. If
    you are using Ant for building, then it is a breeze. If not, first convert
    your
    build process to use Ant.
    Also, a single WLS instance hosting multiple environments sounds really
    INTRIGUING
    to me.
    Eric Ma
    "Bryan Dixon" <[email protected]> wrote:
    Is there a way to create dynamic (i.e. runtime) jndi-names for EJBsinstead
    of
    (or in addition to) "hard coding" them in the weblogic-ejb-jar.xml file?
    What
    I'm trying to do is have one WebLogic instance (JVM) host multiple environments
    (our Beta and Training environments) and I simply want to deploy the
    same .ear
    file twice but have each environment (application - .ear) referencea
    different
    database schema (jdbc connection pool). I have everything working just
    fine for
    this scenario except when I define jndi-names for our ejbs. The problem
    is that
    I am really deploying the same ejbs (jndi-names and actually code base)
    in each
    applicatoin instance and I get an exception when the WebLogic is trying
    to deploy
    the second application (.ear) because the jndi-names in it have already
    been deployed
    by the first application instance. I recieve a jndi error stating that
    the name
    is already deployed.
    Or is there a better path to go down for what I am trying to do to have
    one WebLogic
    instance support our beta and training environments? Usually (but not
    always)
    our code base is the for same for both of these environments, I simply
    need to
    have each environment use a different database schema.
    Thanks

  • Dynamic configuration bean in JMS Adapter

    Hello Experts,
    My scenario is JMS(Active MQ) to File.Its just Passthrough scenario and no mapping involved.
    Filename will be coming in one of the JMS Property (say businessId) and I need to set this filename to file adapter.
    I have refered the stefan's blog and used the Dynamic configuration bean module in sender JMS adapter.
    getFilename key.1 write http://sap.com/xi/System/JMS DCJMSMessageProperty4
    getFilename value.1 module.filename
    setFilename key.1 read http://sap.com/xi/System/File FileName
    setFilename value.1 module.filename
    But required filename is not populated in the target File.Any other configuration is missing here?

    Hi Karthiga
    Did you set the ASMA properties in both your sender JMS channel and receiver File channel?
    For the JMS adapter, as shown below, you will need to enter the DCJMSMessageProperty4 into the table
    Configuring the Sender JMS Adapter - Configuring the JMS Adapter in the Integration Directory/PCK - SAP Library
    If you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (Maximum of 10).
    In the table, enter the names of the JMS message properties whose values are to be included in the message header of the PI message.
    The technical names of the additional attributes are DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.
    For the File adapter, you need to check the ASMA FileName attribute.
    Once you have this configured, in your message, you should be able to see that the value is in the DynamicConfiguration section of the SOAP header.
    Rgds
    Eng Swee

  • Doubt om Dynamic Configuration of receiver file

    Hello ,
      for Acheiving the Dynamic configuration of receiver file name ,adapter specific message attribute is used...But how to suppress the name of file in the content of the Received file...
    Is my question correct..do we get the file name in content of the receiver file,while using the Adapter specifc message attribute.
    And another question ,in the Variable substitution ...do we get the above problem,then how to tackle the situation to suprress the file name in the payload of receiver file.

    HI,
    You can handle the dynamic file name via Dynamic configuration or with the help of Variable Substitution.
    Please refer
    have a look
    Dynamic File Name using XI 3.0 SP12 Part - I --> Dynamic File Name using XI 3.0 SP12 Part u2013 I
    Dynamic file name(XSLT Mapping with Java Enhancement) using XI 3.0 SP12 Part -II --> Dynamic file name(XSLT Mapping with Java Enhancement) using XI 3.0 SP12 Part -II
    With Variable Substituion, you may need to supress the filename
    Dynamic File Name - Suppress the Substitue varible
    Let me know if you need anymore info.
    Thanks
    Swarup

  • Problem with dynamic configuration in PI 7.0 (SP 21)

    We're trying to set a dynamically configurable parameter (UrlParam in plain http adapter) in a java mapping and when calling,   via proxy, getting the following error returned<br />
    <p />
    <br />
    &lt;?xml version="1.0" encoding="utf-8" ?&gt;<br />
    - &lt;asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"&gt;<br />
    - &lt;asx:values&gt;<br />
      &lt;SYSTEMFAULT href="#o284" /&gt;<br />
      &lt;/asx:values&gt;<br />
    - &lt;asx:heap xmlns:xsd="http://www.w3.org/2001/XMLSchema"<br />
    xmlns:abap="http://www.sap.com/abapxml/types/built-in" <br />
    xmlns:cls="http://www.sap.com/abapxml/classes/global" <br />
    xmlns:dic="http://www.sap.com/abapxml/types/dictionary"&gt;<br />
    <br />
    - &lt;cls:CX_AI_SYSTEM_FAULT id="o284"&gt;<br />
    - &lt;CX_ROOT&gt;<br />
      &lt;TEXTID&gt;F63AFF63DBE4BB4786A7F52CC4167145&lt;/TEXTID&gt;<br />
      &lt;PREVIOUS /&gt;<br />
      &lt;KERNEL_ERRID /&gt;<br />
    - &lt;INTERNAL_SOURCE_POS&gt;<br />
      &lt;PROGID&gt;95&lt;/PROGID&gt;<br />
      &lt;CONTID&gt;3304&lt;/CONTID&gt;<br />
      &lt;/INTERNAL_SOURCE_POS&gt;<br />
      &lt;/CX_ROOT&gt;<br />
      &lt;CX_STATIC_CHECK /&gt;<br />
    - &lt;CX_AI_SYSTEM_FAULT&gt;<br />
      &lt;CODECONTEXT /&gt;<br />
      &lt;CODE&gt;PLAINHTTP_ADAPTER.ATTRIBUTE_MISSING_PARAMS&lt;/CODE&gt;<br />
      &lt;ERRORTEXT /&gt;<br />
      &lt;LANGUAGE /&gt;<br />
      &lt;/CX_AI_SYSTEM_FAULT&gt;<br />
      &lt;/cls:CX_AI_SYSTEM_FAULT&gt;<br />
      &lt;/asx:heap&gt;<br />
      &lt;/asx:abap&gt; <br />
    <p />
    <br />
    The java code in the mapping is as follows:<br />
    <br />
    The java code in the mapping is as follows:<br />
    /*<br />
    Created on 07-Jun-2010<br />
    *<br />
    To change the template for this generated file go to<br />
    Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments<br />
    */<br />
    package uk.gov.communities.finance; <br />
    <br />
            import java.io.InputStream;<br />
    import java.io.OutputStream;<br />
    import java.util.Map;<br />
    <br />
    import com.sap.aii.mapping.api.DynamicConfiguration;<br />
    import com.sap.aii.mapping.api.DynamicConfigurationKey;<br />
    import com.sap.aii.mapping.api.StreamTransformation;<br />
    import com.sap.aii.mapping.api.StreamTransformationException; <br />
    <br />
    /**<br />
    @author Mark<br />
    *<br />
    To change the template for this generated type comment go to<br />
    Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments<br />
    */ <br />
    <br />
    public class PaymentGatewayRequestMap implements StreamTransformation {<br />
            /** This Map parameter is for the Method setParameter() */<br />
            Map param=null;<br />
            /** This method should be used while the Class implements<br />
    StreamTransformation interface<br />
             *<br />
    @param param - A Map object<br />
             */<br />
            public void setParameter(Map param){<br />
                    this.param=param;<br />
            }<br />
    <br />
    /**<br />
    This method will be called by XI to execute Java Mapping. <br />
    @param in - The InputStream which has the source message from CRM <br />
    @param out - The OutputStream which has the target message to ProFinance <br />
    */ <br />
    public  void execute (InputStream in, OutputStream out) throws
    StreamTransformationException { <br />
    String urlParamOne = null; <br />
    try{ <br />
    DynamicConfiguration dynCon = (DynamicConfiguration)param.get("DynamicConfiguration");  <br />
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/HTTP","myValueHere"); <br />
    String response = ""; out.write(response.getBytes()); <br />
    } <br />
    catch(Exception e){<br />
                            throw new RuntimeException(e.getMessage());<br />
                    }<br />
            }<br />
    }<br />
    <p />
    <p />
    <p />
    Looking at the call in SXMB_MONI there's no sign of the dynamic configuration stage anywhere but we are seeing the following in the response message:
    <p />
    <br />
    &lt?xml version="1.0" encoding="UTF-8" standalone="yes" ?&gt;<br />
    -&lt !--  Call Adapter <br />
      --&gt;<br />
    - &lt;SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1"&gt;<br />
    &lt;SAP:Category>XIAdapter&lt;/SAP:Category&gt;<br />
      &lt;SAP:Code area="PLAINHTTP_ADAPTER"&gt;ATTRIBUTE_MISSING_PARAMS&lt;/SAP:Code&gt;<br />
      &lt;SAP:P1 /&gt;<br />
      &lt;SAP:P2 /&gt;<br />
      &lt;SAP:P3 /&gt;<br />
      &lt;SAP:P4 /&gt;<br />
      &lt;SAP:AdditionalText /&gt;<br />
      &lt;SAP:ApplicationFaultMessage namespace="" /&gt;<br />
      &lt;SAP:Stack>Dynamic Header - Missing Message Attributes: Fields/Parameters&lt;/SAP:Stack&gt;<br />
      &lt;SAP:Retry>N&lt;/SAP:Retry&gt;<br />
      &lt;/SAP:Error&gt;<br />
    <p />
    <br />
    Please note, we have set this up on another PI system (7.0 sp 12) and it works as required.
    <p />
    <br />
    Many thanks
    <p />
    <br />
    Andreas

    Hello , let me clarify:
    - There's a graphical mapping which has a user defined function with the following code:
    DynamicConfigurationKey dynKey =DynamicConfigurationKey.create(
    "http://sap.com/xi/XI/System/HTTP",paramName);
    DynamicConfiguration dynCon =(DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    dynCon.put(dynKey, paramValue);
    return paramValue;
    - The above UDF has paramName set to UrlParamOne via a constant and paramValue set a per an element in the incoming structure.
    - Incidentally, a Java mapping is then called (although not relevent) to clear the xml produced from the mapping. This is a requirement for our customer who don't want the HTTP body set. The code is as follows:
    Created on 07-Jun-2010
    To change the template for this generated file go to
    Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
    package uk.gov.communities.finance;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Map;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    @author Mark
    To change the template for this generated type comment go to
    Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
    public class PaymentGatewayRequestMap implements StreamTransformation {
    /** This Map parameter is for the Method setParameter() */
    Map param=null;
    /** This method should be used while the Class implements
    StreamTransformation interface
    @param param - A Map object
    public void setParameter(Map param){
    this.param=param;
    This method will be called by XI to execute Java Mapping.
    @param in - The InputStream which has the source message from CRM
    @param out - The OutputStream which has the target message to ProFinance
    public void execute(InputStream in, OutputStream out) throws StreamTransformationException {
    try{
    String response = "";
    out.write(response.getBytes());
    catch(Exception e){
    throw new RuntimeException(e.getMessage());
    Many thanks
    Andreas

  • Variable Substitution and Dynamic Configuration

    Hi All,
    In Variable Substitution , the name that should be given the the receiver payload should be part of the Source Payload unlike the Dynamic Configuration wherein the file name can be generated dynamically during mapping.
    I have the following questions
    1.Dont we need to write the UDF for the Variable substitution?
    2.Cant we do the Dynamic configuration without writing UDF?If so then how?
    3.In Dynamic Configuration the file name is generated dynamically.But where does the file name come from if it is not the part of the source payload?
    Thanks in advance

    Hi Shwetha,
    1.Dont we need to write the UDF for the Variable substitution?
    No. Here we are accessing the contents of the payload to the target. So no UDF required.
    2.Cant we do the Dynamic configuration without writing UDF?If so then how?
    Yes and No.
    Because we can set only few Dynamic configuration  values without UDF.
    If both source and target are File, then check ASMA on both sender and receiver. Then u can get the source directory name and source file name for target also without any UDF.Also some other parameters.
    3.In Dynamic Configuration the file name is generated dynamically.But where does the file name come from if it is not the part of the source payload?
    The file name comes along with the source in the payload as a attribute in header. U can view this in SXMB_MONI, and Dynamic Configuration.
    In Dynamic Configuration the file name is generated dynamically.
    No the file name is taken as it is from the source, if u want to change dynamically that u have to do in a UDF.
    I hope this will clear all doubts,
    If nt pl post
    Babu

  • XSL mapping with Java enhancment PI 7.1 - Dynamic configuration

    Scenario - IDOC -> File
    XSL Mapping using dynamic configuration to set file name.
    1. Ive included
    xmlns:javamap="java:packageName.DynamicFunctionClass">
    in the XSL header
    2.Ive call this method javamap:transform($input, $output)
    In the Java code.
    1. Package = packageName
    2. Class Name = DynamicFunctionClass
    3. Class Compiles and I have uploaded into the ESR for a particular scenario. (source and class)
    4. extends AbstractTransformation and implements the transform method.
    public class DynamicFunctionClass extends AbstractTransformation{ .....
          public void transform(TransformationInput arg0, TransformationOutput arg1) throws StreamTransformationException {
    ISSUE -
    Essentially it looks as though PI cannot see the class file or is not able to reference it. I have created a static method in the class as well to access and this does not work.
    TRACE -
    Resource not found META-INF/Services/javax.xml.parsers.SAXParserFactory Thrown:
       com.sap.aii.ib.server.mapping.execution.MappingClassNotFoundException:

    Ive stumbled across the fact that JDK 1.5 does not allow for Mapping with Java enchanment it is a feature only in SAPXMLTOOL kit, I shall tick the little box in the Operational mapping ...

  • Problem of JNDI name

    In JBuilder7,the default JNDI Name of a entity bean(Authors) is
    AuthorsRemote (in the webogic-ejb-jar.xml). I configed a Tx DATA source
    configuration using this JNDI name.When I deployed the entity bean , the
    WLS7.0 reported errors like this:
    unable to deploy EJB: Authors from mymod2.jar:
    weblogic.ejb20.WLDeploymentException: Unable to bind EJB Home Interface to
    the JNDI name: AuthorsRemote. The error was:
    javax.naming.NameAlreadyBoundException: AuthorsRemote is already bound;
    remaining name ''
    If I configed the Tx Data Source with a different JNDI name MyJNDI3 and
    deloyed ,I got errors like this:
    javax.naming.NameNotFoundException: Unable to resolve 'AuthorsRemote'
    Resolved: '' Unresolved:'AuthorsRemote' ; remaining name 'AuthorsRemote'
    at
    weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.
    java:109)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
    :262)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
    :229)-- Failed initializing bean access.

    Hi,
    If say, the EJB deploys without error with the jndi name 'AuthorsRemote'
    what do you expect when doing a ctx.lookup("AuthorsRemote")
    A ejb instance or a datasource instance??
    I think the above would validate the error that is thrown.
    Vimala
    paul wrote:
    In JBuilder7,the default JNDI Name of a entity bean(Authors) is
    AuthorsRemote (in the webogic-ejb-jar.xml). I configed a Tx DATA source
    configuration using this JNDI name.When I deployed the entity bean , the
    WLS7.0 reported errors like this:
    unable to deploy EJB: Authors from mymod2.jar:
    weblogic.ejb20.WLDeploymentException: Unable to bind EJB Home Interface to
    the JNDI name: AuthorsRemote. The error was:
    javax.naming.NameAlreadyBoundException: AuthorsRemote is already bound;
    remaining name ''
    If I configed the Tx Data Source with a different JNDI name MyJNDI3 and
    deloyed ,I got errors like this:
    javax.naming.NameNotFoundException: Unable to resolve 'AuthorsRemote'
    Resolved: '' Unresolved:'AuthorsRemote' ; remaining name 'AuthorsRemote'
    at
    weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.
    java:109)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
    :262)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
    :229)-- Failed initializing bean access.

  • JNDI name for a JMB is not replicatet to other servers in the cluster

    Hi,
              wl6.1sp7, two server cluster
              When I look at the JNDI Tree for a server I can't find JNDI names of JMB's from the other server in the cluster.
              I get an exception when trying to send to a destinaton on the other server. (Unable to resolve 'xlink.jms.service.report.biztalk-lab.Report' Resolved: 'xlink.jms.service.report' Unresolved:'biztalk-lab')
              Setting are same as explained in this thread...
              http://forums.bea.com/bea/thread.jspa?threadID=600003492&tstart=0
              And JNDINameReplicated is set to true....
              Why is the JNDI names not replicated?
              <JMSQueue JNDIName="xlink.jms.service.report.biztalk-lab.Report"
              JNDINameReplicated="true" Name="Report" StoreEnabled="default"/>
              This is the DD of a JMB:
              <weblogic-ejb-jar>
              <weblogic-enterprise-bean>
              <ejb-name>xlink.jms.service.report.biztalk-lab.Report</ejb-name>
              <message-driven-descriptor>
              <pool>
              <max-beans-in-free-pool>3</max-beans-in-free-pool>
              <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
              </pool>
              <destination-jndi-name>xlink.jms.service.report.biztalk-lab.Report</destination-jndi-name>
              <connection-factory-jndi-name>xlink.jms.factory.commerceFactory</connection-factory-jndi-name>
              </message-driven-descriptor>
              <jndi-name>xlink.jms.service.report.biztalk-lab.Report</jndi-name>
              </weblogic-enterprise-bean>
              </weblogic-ejb-jar>
              ~b

    1. yes
              <JMSConnectionFactory AllowCloseInOnMessage="false"
              DefaultDeliveryMode="Persistent" DefaultPriority="4"
              DefaultTimeToLive="0"
              JNDIName="xlink.jms.factory.commerceFactory"
              MessagesMaximum="10" Name="xlink.jms.factory.commerceFactory"
              OverrunPolicy="KeepOld" Targets="bluej,biztalk-lab,devtestCluster"/>
              2. No I am just using the jndi name of the queue.
              This is an example of how I send a message:
                   Context ctx = new InitialContext();
              QueueConnectionFactory qconFactory;
              QueueConnection qcon;
              QueueSession qsession;
              QueueSender qsender;
              Queue queue;
              ObjectMessage msg;
              qconFactory = (QueueConnectionFactory) ctx.lookup("xlink.jms.factory.commerceFactory");
              qcon = qconFactory.createQueueConnection();
              qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
              queue = (Queue) ctx.lookup("xlink.jms.queue.biztalk-lab.OrdrspImport");
              qsender = qsession.createSender(queue);
              msg = qsession.createObjectMessage(reportExecutorContainer);
              qcon.start();
              qsender.send(msg);
              qsender.close();
              qsession.close();
              qcon.close();
              3. I don't know those setting (wl 6.1sp7)

  • 2.3 RC1: PersistenceManagerFactory JNDI name

    After deploying kodo.rar from Kodo 2.3 RC1 in JBoss 3.0, my session
    bean cannot find the PMF under the name
    "java:comp/env/jdo/PersistenceManagerFactory", which I expected from
    looking at the sample com.solarmetric.kodo.ee.JDOBean and the JDO
    specification, but under the proprietary name "java:/kodo" (which is
    to be expected from the entry <attribute
    name="JndiName">kodo</attribute> in kodo-service.xml).
    Now who is right? Should the JNDI name in kodo-service.xml be changed
    or is the sample code wrong?

    Jakob-
    The idea is that the java:comp/env/jdo/PersistenceManagerFactory will be
    mapped in your appserver's ejb-specific xml file to the absolute
    deployed JNDI name of java:/kodo. This is so your EJB can refer to an
    abstract name in the code, and if you want to use another PMF bound
    somewhere else, all you would need to do is change the resource mapping.
    This is done in the fashion of your application server.
    Note that there is nothing preventing you from hard-wiring the JNDI name
    "java:/kodo" in your EJB code, but it is considered to be against EJB
    best practices.
    Finally, the default name of "java:/kodo" is not a very good one, since
    it probably shouldn't be top-level, however some application servers
    don't support binding into a node level that does not yet exist. Thus,
    we needed to shoot for the lowest common denominator when deciding what
    name to give it.
    In article <[email protected]>, Jakob Spies wrote:
    After deploying kodo.rar from Kodo 2.3 RC1 in JBoss 3.0, my session
    bean cannot find the PMF under the name
    "java:comp/env/jdo/PersistenceManagerFactory", which I expected from
    looking at the sample com.solarmetric.kodo.ee.JDOBean and the JDO
    specification, but under the proprietary name "java:/kodo" (which is
    to be expected from the entry <attribute
    name="JndiName">kodo</attribute> in kodo-service.xml).
    Now who is right? Should the JNDI name in kodo-service.xml be changed
    or is the sample code wrong?
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com
    Kodo Java Data Objects Full featured JDO: eliminate the SQL from your code

  • Dynamic JNDI name for database adapter in BPEL

    Hi All,
    I am having some major issues trying to make the JNDI location for the database adapter dynamic (10.1.3.4). I already went through the followin link, but that didnt work for me: http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html
    The below example works, but only the first run. Second time around the first runs JNDI value gets retained and connects to that database.
    This is what worked atleast the first time.
    I parameterized the JNDI with a variable defined in the partnerlink definition in the bpel.xml
    In Bpel. xml
    <partnerLinkBinding name="updatetbl">
    <property name="wsdlLocation">updatetbl.wsdl</property>
    <property name="CONN">eis/DB/na</property>
    <property name="retryInterval">60</property>
    </partnerLinkBinding>
    In the updatetbl.wsdl file
    <service name="updatetbl">
    <port name="updatetbl_pt" binding="tns:updatetbl_binding">
    <jca:address location="$CONN"/>
    </port>
    </service>
    At run time I change the partnerlink CONN variable in embedded Java.
    try
    Element targetAdapterElement =(Element)getVariableData("Invoke_getFromTbl_OutputVariable","getFromTblOutputCollection","/ns2:getFromTblOutputCollection/ns2:getFromTblOutput/ns2:SRC_JNDI");
    getLocator().lookupProcess("JndiIssueTest").getDescriptor().getPartnerLinkBindings().getPartnerLinkBinding ("updatetbl").setPropertyValue ("CONN",targetAdapterElement.getTextContent());
    ("updatetbl").getPropertyValue ("CONN"));
    catch(Exception ex)
    addAuditTrailEntry("Error is " + ex);
    This works fine the first time, but the second time I run it to look at a different CONN value, it somehow still connects using the first runs value!
    If I redeploy or clear the WSDL cache, it works. But we plan to run it multiple times from several environment so manually or programatically clearing WSDL is not the right solution.
    Can someone tell me what is the standard process of doing this so it works everytime?
    Thanks,
    Shaf

    Shaf,
    Please refer the mail thread for details. If you want I can send you(send me your email id) the sample BPEL process which uses Dynamic JNDI.
    Re: How to externalize JNDI name (setting JNDI name dynamically)
    Thanks,
    Sen

  • Dynamic JNDI in FTP Adapter | jca.jndi property not picked by Adapter

    Hi,
    I am trying to pass jndi dynamically to FTP adapter using the steps mentioned in http://blogs.oracle.com/adapters/entry/changing_the_connection_factory_jndi_dynamically_in_ftp_adapter.
    I have configured FTP jndi(eis/Ftp/SoaFtpAdapter) at app server.
    And included the following property in the invoke activity that calls the FTP adapter
    <bpelx:inputProperty name="jca.jndi" variable="jndiLocation"/>
    Invoke activity definition looks as following
        <invoke name="Invoke1"
                partnerLink="FTPFileListAdap" portType="ns3:FileListing_ptt"
                operation="FileListing"
                inputVariable="Invoke1_FileListing_InputVariable"
                outputVariable="Invoke1_FileListing_OutputVariable"
                bpelx:invokeAsDetail="no">
          <bpelx:inputProperty name="jca.jndi" variable="jndiLocation"/>
          <bpelx:toProperties>
            <bpelx:toProperty name="jca.ftp.Directory" variable="directoryName"/>
          </bpelx:toProperties>   
        </invoke>FTP Adapter jca configuration is as following
    <adapter-config name="FTPFileListAdap" adapter="FTP Adapter" wsdlLocation="FTPFileListAdap.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
      <connection-factory location="eis/Ftp/SoaFtpAdapter12" UIincludeWildcard="*.txt"/>
      <endpoint-interaction portType="FileListing_ptt" operation="FileListing">
        <interaction-spec className="oracle.tip.adapter.ftp.outbound.FTPListInteractionSpec">
          <property name="PhysicalDirectory" value="/in/dev"/>
          <property name="Recursive" value="true"/>
          <property name="IncludeFiles" value=".*\.txt"/>
        </interaction-spec>
      </endpoint-interaction>
    </adapter-config>While calling the BPEL i am passing two parameters
    jndiLocation = eis/Ftp/SoaFtpAdapter
    and
    directoryName = /in/dev
    Following is the fault that I am getting while executing the BPEL.
    <fault>
    <bpelFault>
    <faultType>0</faultType>
    <bindingFault>
    <part  name="summary">
    <summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'FileListing' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. RunTimeConfigFTP:FTPFileListAdap [ FileListing_ptt::FileListing(Empty,filelist) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/Ftp/SoaFtpAdapter12'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/Ftp/SoaFtpAdapter12. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server Please make sure that the JCA connection factory and any dependent connection factories have been configured with a sufficient limit for max connections. Please also make sure that the physical connection to the backend EIS is available and the backend itself is accepting connections. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary>
    </part>
    <part  name="detail">
    <detail>JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/Ftp/SoaFtpAdapter12'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/Ftp/SoaFtpAdapter12. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server </detail>
    </part>
    <part  name="code">
    <code>12510</code>
    </part>
    </bindingFault>
    </bpelFault>
    </fault>It seems that FTP Adapter is not picking up the value from jca.jndi property.
    How to handle this situation.
    Thanks
    Ajay

    Hi,
    Since I am working on BPEL 2.0
    Following changes solved my problem.
    In the invoke activity, I replaced the following xml tag
          <bpelx:inputProperty name="jca.jndi" variable="jndiLocation"/>with following
          <bpelx:toProperties>
            <bpelx:toProperty name="jca.jndi" variable="jndiLocation"/>
          </bpelx:toProperties> And now my invoke activity looks as follow.
        <invoke name="Invoke1"
                partnerLink="FTPFileListAdap" portType="ns3:FileListing_ptt"
                operation="FileListing"
                inputVariable="Invoke1_FileListing_InputVariable"
                outputVariable="Invoke1_FileListing_OutputVariable"
                bpelx:invokeAsDetail="no">
          <bpelx:toProperties>
            <bpelx:toProperty name="jca.ftp.Directory" variable="directoryName"/>
          </bpelx:toProperties>   
          <bpelx:toProperties>
            <bpelx:toProperty name="jca.jndi" variable="jndiLocation"/>
          </bpelx:toProperties>      
        </invoke>Thanks
    Ajay

Maybe you are looking for