JCA 1.0 - SPI vs CCI

Hey,
have to use the old specifikation JCA 1.0 to develop a SAP adapter. I'm reading the specification paper, but still couldn't understand the difference between CCI and SPI packages.
The SPI is more for management while CCI establish the connections? Is this correct? Why they didn't just uses one package for these? Are they usable independent of each other?
thanks
chris

Looks like a bug to me. Please contact Support.
          Jim Gish
          Staff Software Engineer
          BEA WebLogic Engineering

Similar Messages

  • JCA CCI examples wanted!

    Hi. I need to execute a local file-system binary from my JSP code. As J2EE specification does not allow to do this, I need to create an adapter for it, using JCA. As I figured out, a need a JCA with Common Client Interface (CCI). Does anyone have any examples or samples of such a JCA CCI adapter, which an be used for my task? Thank you.

              Ni pelota, Hansito!!!
              "Hans Nemarich" <[email protected]> wrote:
              >
              >Hello,
              >
              >I`m currently reading Bea documentation for WLS 7.0. I`ve noticed Weblogic
              >Tuxedo
              >Connector doesn´t support Common Client Interface. It`s seems not be
              >complaint
              >with JCA 1.0 spec.
              >
              >Will Bea provide a JCA/CCI compliant connector for Tuxedo in the next
              >release
              >?
              

  • Custom Adapter Development - Some bugs is the development process

    hi
    I'm working through the steps in the document "BEA WebLogic Integration -
    Developing Adapters" - Chapter 4 Creating a Custom Environment.
    I'm using the version of WLS 8.1.1 on the dev2dev trial CD.
    I've encountered the following errors which I think are bugs and should be
    fixed:
    =========================================================
    1. Incorrect naming of a properties file
    =============================
    Step 2. Rebuild the Tree - when running "ant release" immediately after
    generation, the build fails with the following error:
    Buildfile: build.xml
    packages:
    [echo] Building NICOLSON_SAMPLE_1_0...
    generate_web_descriptors:
    [java] Substituting web descriptor variable: display-name
    [java] Substituting web descriptor variable: version
    [java] Substituting web descriptor variable: extra-jsp-servlets
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: request-handler-class
    [java] Substituting web descriptor variable: debug-setting
    [java] Substituting web descriptor variable: extra-jsp-servlet-mappings
    [java] Generated web.xml as:
    C:\software\devtools\bea\weblogic81\integratio
    n\adapters\nicolson\project\..\..\..\adapters\nicolson\src\war\WEB-INF\web.x
    ml
    merge_properties:
    [echo] Merging NICOLSON_SAMPLE_1_0-base.properties and ADK.properties
    [echo]
    props_dir=C:\software\devtools\bea\weblogic81\integration\adapters\n
    icolson\project/../../../adapters/nicolson/src
    WLI_HOME=C:\software\devtools\bea
    \weblogic81\integration\adapters\utils\ant/../../..
    [concat] File
    C:\software\devtools\bea\weblogic81\integration\adapters\nicols
    on\src\NICOLSON_SAMPLE_1_0-base.properties does not exist.
    BUILD FAILED
    java.lang.NullPointerException
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:103)
    at java.io.FileInputStream.<init>(FileInputStream.java:66)
    at org.apache.tools.ant.taskdefs.Concat.catFiles(Concat.java:353)
    at org.apache.tools.ant.taskdefs.Concat.execute(Concat.java:271)
    at org.apache.tools.ant.Task.perform(Task.java:317)
    at org.apache.tools.ant.Target.execute(Target.java:309)
    at org.apache.tools.ant.Target.performTasks(Target.java:334)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:371)
    at org.apache.tools.ant.Task.perform(Task.java:317)
    at org.apache.tools.ant.Target.execute(Target.java:309)
    at org.apache.tools.ant.Target.performTasks(Target.java:334)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1250)
    at org.apache.tools.ant.Main.runBuild(Main.java:610)
    at org.apache.tools.ant.Main.start(Main.java:196)
    at org.apache.tools.ant.Main.main(Main.java:235)
    Total time: 1 second
    This is occuring for because Step 1. Execute GenerateAdapterTemplate is
    generating an incorrectly named properties file in the src directory.
    i.e. it is generating NICOLSON_SAMPLE_1_0.properties when it should
    generate NICOLSON_SAMPLE_1_0-base.properties
    On correcting this problem, the next error will occur
    ==================================================
    2. Missing junit.jar in wli_home/lib
    ==========================
    Buildfile: build.xml
    packages:
    [echo] Building NICOLSON_GENERIC_1_0...
    generate_web_descriptors:
    [java] Substituting web descriptor variable: display-name
    [java] Substituting web descriptor variable: version
    [java] Substituting web descriptor variable: extra-jsp-servlets
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: request-handler-class
    [java] Substituting web descriptor variable: debug-setting
    [java] Substituting web descriptor variable: extra-jsp-servlet-mappings
    [java] Generated web.xml as:
    C:\software\devtools\bea\weblogic81\integratio
    n\adapters\sal\project\..\..\..\adapters\sal\src\war\WEB-INF\web.xml
    merge_properties:
    [echo] Merging NICOLSON_GENERIC_1_0-base.properties and ADK.properties
    [echo]
    props_dir=C:\software\devtools\bea\weblogic81\integration\adapters\s
    al\project/../../../adapters/sal/src
    WLI_HOME=C:\software\devtools\bea\weblogic8
    1\integration\adapters\utils\ant/../../..
    [javac] Compiling 15 source files
    [javac]
    C:\software\devtools\bea\weblogic81\integration\adapters\sal\src\com
    \nicolson\base\integration\sample\jca\bea\sal\spi\NonManagedScenarioTestCase
    .jav
    a:9: package junit.framework does not exist
    [javac] import junit.framework.*;
    [javac] ^
    [javac]
    C:\software\devtools\bea\weblogic81\integration\adapters\sal\src\com
    \nicolson\base\integration\sample\jca\bea\sal\spi\NonManagedScenarioTestCase
    .jav
    a:20: cannot resolve symbol
    There was no junit.jar in WLI_HOME/lib. The problem disappears once this jar
    is added.
    ===============================================================
    3. Class not found error when running tests using "ant test"
    ==========================================
    Buildfile: build.xml
    packages:
    [echo] Building NICOLSON_SAMPLE_1_0...
    generate_web_descriptors:
    [java] Substituting web descriptor variable: display-name
    [java] Substituting web descriptor variable: version
    [java] Substituting web descriptor variable: extra-jsp-servlets
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: request-handler-class
    [java] Substituting web descriptor variable: debug-setting
    [java] Substituting web descriptor variable: extra-jsp-servlet-mappings
    [java] Generated web.xml as:
    C:\software\devtools\bea\weblogic81\integratio
    n\adapters\nicolson\project\..\..\..\adapters\nicolson\src\war\WEB-INF\web.x
    ml
    merge_properties:
    [echo] Merging NICOLSON_SAMPLE_1_0-base.properties and ADK.properties
    [echo]
    props_dir=C:\software\devtools\bea\weblogic81\integration\adapters\n
    icolson\project/../../../adapters/nicolson/src
    WLI_HOME=C:\software\devtools\bea
    \weblogic81\integration\adapters\utils\ant/../../..
    test:
    [java] <3/10/2003 10:40:37 AM EST> <Debug> <NICOLSON_SAMPLE_1_0>
    <000000> <
    added new configuration from file 'NICOLSON_SAMPLE_1_0.xml' with root
    category '
    NICOLSON_SAMPLE_1_0' to category hierarchy for locale 'en_US'>
    [java] Loading
    com.nicolson.integration.bea.sample.spi.NonManagedScenarioTe
    stCase for inclusion in the test suite
    [java] Loading
    com.nicolson.integration.bea.sample.event.OfflineEventGenera
    torTestCase for inclusion in the test suite
    [java] EXCEPTION: attempted to load
    com.nicolson.integration.bea.sample.eve
    nt.OfflineEventGeneratorTestCase
    [java] java.lang.ClassNotFoundException:
    com.nicolson.integration.bea.sampl
    e.event.OfflineEventGeneratorTestCase
    [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
    [java] at java.security.AccessController.doPrivileged(Native
    Method)
    [java] at
    java.net.URLClassLoader.findClass(URLClassLoader.java:186)
    [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
    [java] at
    sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
    [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
    [java] at
    com.bea.adapter.test.TestHarness.suite(TestHarness.java:61)
    [java] at
    com.bea.adapter.test.TestHarness.main(TestHarness.java:96)
    [java] java.lang.NoSuchMethodError:
    junit.textui.TestRunner.run(Ljunit/fram
    ework/Test;)V
    [java] at
    com.bea.adapter.test.TestHarness.main(TestHarness.java:96)
    [java] Exception in thread "main"
    [java] Java Result: 1
    BUILD SUCCESSFUL
    Total time: 2 seconds
    The missing test case is being explicitly excluded from the build:
    <javac deprecation='true' debug='true'>
    <classpath refid='CLASSPATH'/>
    <src path="${SRC_DIR}"/>
    <include name="**/*.java"/>
    <exclude
    name="com/nicolson/integration/bea/sample/event/OfflineEventGeneratorTestCas
    e.java" />
    <exclude name="war/jsp_servlet/**"/>
    </javac>
    If it is included, the following compile error occurs...
    C:\software\devtools\bea\weblogic81\integration\adapters\nicolson\project>an
    t re
    lease
    Buildfile: build.xml
    packages:
    [echo] Building NICOLSON_SAMPLE_1_0...
    generate_web_descriptors:
    [java] Substituting web descriptor variable: display-name
    [java] Substituting web descriptor variable: version
    [java] Substituting web descriptor variable: extra-jsp-servlets
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: adapter-logical-name
    [java] Substituting web descriptor variable: request-handler-class
    [java] Substituting web descriptor variable: debug-setting
    [java] Substituting web descriptor variable: extra-jsp-servlet-mappings
    [java] Generated web.xml as:
    C:\software\devtools\bea\weblogic81\integratio
    n\adapters\nicolson\project\..\..\..\adapters\nicolson\src\war\WEB-INF\web.x
    ml
    merge_properties:
    [echo] Merging NICOLSON_SAMPLE_1_0-base.properties and ADK.properties
    [echo]
    props_dir=C:\software\devtools\bea\weblogic81\integration\adapters\n
    icolson\project/../../../adapters/nicolson/src
    WLI_HOME=C:\software\devtools\bea
    \weblogic81\integration\adapters\utils\ant/../../..
    [javac] Compiling 1 source file
    [javac]
    C:\software\devtools\bea\weblogic81\integration\adapters\nicolson\sr
    c\com\nicolson\integration\bea\sample\event\OfflineEventGeneratorTestCase.ja
    va:1
    62:
    com.nicolson.integration.bea.sample.event.OfflineEventGeneratorTestCase.Test
    EventRouter should be declared abstract; it does not define getName() in
    com.nic
    olson.integration.bea.sample.event.OfflineEventGeneratorTestCase.TestEventRo
    uter
    [javac] class TestEventRouter
    [javac] ^
    [javac] 1 error
    BUILD FAILED
    file:C:/software/devtools/bea/weblogic81/integration/adapters/nicolson/project/b
    uild.xml:340: Compile failed; see the compiler error output for details.
    Total time: 2 seconds
    This is because an inner class used in the test case does not fully
    implement methods of the interface it realizes.
    In fact it is missing a number of methods.
    =========================================================
    Just as well I'm only doing a personal eval :)
    Regards
    Jim Nicolson

    Dear Aandi,
    I am really thankful to you for this. I will suggest this to the business and then they can contact adobe for this. Thanking you once again for providing me with all the valueable info. You have been instrumental in helping me out in my project.
    Best Regards,
    Deepak Goyal

  • JCA adapter with Spring JCA CCI

    Using Tuxedo JCA adapter (12.1.1) on Java 1.6_20 and Spring 3.2.0.....
    Want to get the Tuxedo adapter going outside a container in Spring via the Spring JCA CCI (http://static.springsource.org/spring/docs/3.2.0.M2/reference/html/cci.html). Not much experience with JCA but got the basic idea.
    The resource adapter is the glue for the domain configuration, debug levels and so forth. Started by using the TuxedoClientSideResourceAdapter and registering it to the TuxedoAdapterSupervisor singleton that is used by the TuxedoManagedConnectionFactory. Spring JCA CCI represents the local connection factory inside the LocalConnectionFactoryBean which needs the TuxedoConnectionFactory built by the TuxedoManagedConnectionFactory:
            @Bean
         public TuxedoManagedConnectionFactory tuxedoManagedConnectionFactory() {
              TuxedoClientSideResourceAdapter ra = new TuxedoClientSideResourceAdapter();
              .... (set ra all debugs to true)
              ra.setTraceLevel("100000");
              ra.setLocalAccessPointSpec("//INV000000121176:7001/domainId=matthew");
              ra.setRemoteAccessPointSpec("//vsgtu817.sfa.se:48172/domainId=TR817TU");
              try {
                   TuxedoAdapterSupervisor.getInstance().registerClientSideResourceAdapter(ra);
              } catch (ResourceAdapterInternalException e) {
                   System.out.println("Big problem setting resource adapter");
              TuxedoManagedConnectionFactory mcf = new TuxedoManagedConnectionFactory();
              return mcf;
            @Bean
         public ConnectionFactory tuxedoConnectionFactory() {
              LocalConnectionFactoryBean cf = new LocalConnectionFactoryBean();
              cf.setManagedConnectionFactory(tuxedoManagedConnectionFactory());
              try {
                   cf.afterPropertiesSet();
              } catch (ResourceException e) {
                   System.out.println("Big problem after setting properties");
              return (ConnectionFactory) cf.getObject();
         }What I am baffled by is that the tracing isn't getting hundred percent. For example I get:
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1fe1feb: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,applicationConfig,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,tuxedoManagedConnectionFactory,tuxedoConnectionFactory,tuxedoTransactionManager,tuxedoTemplate,tuxedoDAO]; root of factory hierarchy
    2012-10-18:14:16:03:10:INFO[TuxedoAdapterSupervisor,registerClientSideResourceAdapter]TJA_0220:Tuxedo JCA Adapter, release 12c(12.1.1), resource archive version 1.4.0.0, build date: June 27 2012.
    2012-10-18:14:16:03:10:ERROR[TJAService,TJAService]TJA_0072:Naming exception error: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    2012-10-18:14:16:03:10:INFO[TuxedoAdapterSupervisor,createRemoteAccessPoints#2]TJA_0201:INFO: RemoteAccessPoint TR817TU created.Expected to see more detailed information about what is going on in the TJASerivce when setting up the context. Which isn't happening due to how I am not correctly rigging Spring. So how to get tracing/debug working? Or can it be that printing via the JUL logger isn't working. Got in my logging.properties file FINEST on everything oracle and weblogic.
    Love to see if anybody has built up JCA outside a container!?

    Little bit farther in my configuration but not the entire way. Using the TuxedoClientSideResourceAdapter resource adapter. Setup in Spring as follows:
         @Bean
         ResourceAdapterFactoryBean tuxedoResourceAdapter() {
              TuxedoClientSideResourceAdapter ra = new TuxedoClientSideResourceAdapter();
              ra.setLocalAccessPointSpec("//INV000000121176:7001/domainId=matthew");
              ra.setRemoteAccessPointSpec("//vsgtu817.sfa.se:48172/domainId=TR817TU");
              .... (set debug, timeout, local/remote stuff....)
              ResourceAdapterFactoryBean fc = new ResourceAdapterFactoryBean();
              fc.setResourceAdapter(ra);
              SimpleTaskWorkManager stwm = new SimpleTaskWorkManager(); // basic WM from Spring
              fc.setWorkManager(stwm);
              fc.setBootstrapContext(new SimpleBootstrapContext(stwm));  // basic Context from Spring
              return fc;
         @Bean
         public ManagedConnectionFactory tuxedoManagedConnectionFactory() {
              return new TuxedoManagedConnectionFactory();
         @Bean
         public LocalConnectionFactoryBean tuxedoConnectionFactoryBean() {
              LocalConnectionFactoryBean lcfb = new LocalConnectionFactoryBean();
              lcfb.setManagedConnectionFactory(tuxedoManagedConnectionFactory());
              return lcfb;
         @Bean
         public ConnectionFactory tuxedoConnectionFactory() {
              return (ConnectionFactory) tuxedoConnectionFactoryBean().getObject();
         @Bean
         public CciTemplate tuxedoCciTemplate() {
              CciTemplate ct = new CciTemplate();
              ct.setConnectionFactory(tuxedoConnectionFactory());
              return ct;
         }There is a bunch of Spring stuff mixed in but the main idea is to wrap the Connection Factory in a template bean (CciTemplate) that eats a Tuxedo interaction specification and handles the start/stop of the connection plus execution. Nowhere in the configuration are resources or the local/remote resource sessions identified. The Oracle documentation says that with the client side the container is responsible for defining resources. Great. How? ;-) Tried doing it by hand:
         @Autowired
         CciTemplate template;
         @Test
         public void pieces() throws ResourceException, TPReplyException, TPException {
              TuxedoConnectionFactory tcf = (TuxedoConnectionFactory)template.getConnectionFactory();
              Connection con = ConnectionFactoryUtils.getConnection(template.getConnectionFactory(), template.getConnectionSpec());
              DMImportBean impBean = new DMImportBean();
              impBean.setRemoteName("whatever");
              impBean.setResourceName("whatever");
              impBean.setSessionName(new String[] {"TR817TU"});
              ConfigurationManager.getInstance().activateImport(impBean, tcf.getFactoryName());
              TDomainContext ctx = ((TuxedoJCAConnection)con).getTDomainContext();
              ctx.tpcall("whatever", recordIn.getTypedBuffer(), flags);
         }The code fails on a NullPointer to getProviderRoute in the TuxedoConnectionImpl. Just wondering if I am on the right track?

  • JCA/CCI Tuxedo Adapter ?

              Hello,
              I`m currently reading Bea documentation for WLS 7.0. I`ve noticed Weblogic Tuxedo
              Connector doesn´t support Common Client Interface. It`s seems not be complaint
              with JCA 1.0 spec.
              Will Bea provide a JCA/CCI compliant connector for Tuxedo in the next release
              

              Ni pelota, Hansito!!!
              "Hans Nemarich" <[email protected]> wrote:
              >
              >Hello,
              >
              >I`m currently reading Bea documentation for WLS 7.0. I`ve noticed Weblogic
              >Tuxedo
              >Connector doesn´t support Common Client Interface. It`s seems not be
              >complaint
              >with JCA 1.0 spec.
              >
              >Will Bea provide a JCA/CCI compliant connector for Tuxedo in the next
              >release
              >?
              

  • JCA Resource Adapter CCI

    Has anyone found a reference application that properly uses the JCA CCI specification? I would like to test a Resource Adapter against the standard rather than against my understanding of the standard.

    try:
    http://www.fawcette.com/javapro/2002_02/magazine/features/tmodi/

  • JCA adapter outbound connection properties values are not populating ..

    Hi ,
    I am struggling to find a solution for this problem.
    My managed connection factory impl has all the properties as per the java bean spec. I have also implemented hashcode and equals but i still don't see the custom outbound custom properties information populated into my ManagedConnectionFactoryImpl properties. I checked property names in both weblogic-ra.xml and ra.xml. The names are consistent.
    As per this discussion (BINDING.JCA-12510 JCA Resource Adapter location error in SOA 11g Suite i saved the properties using Keyboard entered. I restarted my server and also i can see the saved values
    I also verified the Plan.xml that gets created when the values are updated. Please find the provided the code snippets. Any help appreciated.
    Please let me know if i need to post this in a different forum. We use weblogic 10.3.5 application server. Let me know for any more details.
    Thanks,
    Sri
    For more information:
    Following is the managed connection factory Impl
    package com.cgi.cml.common.sample.connector.ra.outbound;
    import java.beans.PropertyChangeListener;
    import java.beans.PropertyChangeSupport;
    import java.io.PrintWriter;
    import java.io.Serializable;
    import java.util.Iterator;
    import java.util.Set;
    import javax.resource.ResourceException;
    import javax.resource.spi.ConnectionManager;
    import javax.resource.spi.ConnectionRequestInfo;
    import javax.resource.spi.ManagedConnection;
    import javax.resource.spi.ManagedConnectionFactory;
    import javax.security.auth.Subject;
    public class SampleManagedConnectionFactoryImpl
         implements ManagedConnectionFactory, Serializable {
    private transient PropertyChangeSupport changes =new PropertyChangeSupport(this);
         private String databaseFileName = "";
    private String database = "";
    private String user = "";
    private String password = "";
    private String dtdPath = "";
    private String protocol = "";
    private String serverAddress = "";
    private Boolean debugMode = false;
         private PrintWriter writer;
         * Constructor for SampleManagedConnectionFactoryImpl
         public SampleManagedConnectionFactoryImpl() {
         * @see ManagedConnectionFactory#createConnectionFactory(ConnectionManager)
         @Override
         public Object createConnectionFactory(ConnectionManager cm)
              throws ResourceException {
              return new MomapiConnectionFactoryImpl(this, cm);
         * @see ManagedConnectionFactory#createConnectionFactory()
         @Override
         public Object createConnectionFactory() throws ResourceException {
              return new MomapiConnectionFactoryImpl(this, null);
         * @see ManagedConnectionFactory#createManagedConnection(Subject, ConnectionRequestInfo)
         @Override
         public ManagedConnection createManagedConnection(
              Subject subject,
              ConnectionRequestInfo cxRequestInfo)
              throws ResourceException {
              System.out.println("createdManaged Connection called");
              return new SampleManagedConnectionImpl(subject,cxRequestInfo);
         * @see ManagedConnectionFactory#matchManagedConnections(Set, Subject, ConnectionRequestInfo)
         @Override
         public ManagedConnection matchManagedConnections(
              Set connectionSet,
              Subject subject,
              ConnectionRequestInfo cxRequestInfo)
              throws ResourceException {
              System.out.println("match managed Connections called---->"+getDatabaseFileName());
              ManagedConnection match = null;
              Iterator iterator = connectionSet.iterator();
              if (iterator.hasNext()) {
                   match = (ManagedConnection) iterator.next();
              return match;
         * @see ManagedConnectionFactory#setLogWriter(PrintWriter)
         @Override
         public void setLogWriter(PrintWriter writer) throws ResourceException {
              this.writer = writer;
         * @see ManagedConnectionFactory#getLogWriter()
         @Override
         public PrintWriter getLogWriter() throws ResourceException {
              return writer;
    * Checks whether this instance is equal to another.
    * @param obj other object
    * @return true if the two instances are equal, false otherwise
         @Override
    public boolean equals(Object obj)
              System.out.println("equals method called");          
    boolean equal = false;
    if (obj != null)
    if (obj instanceof MomapiManagedConnectionFactoryImpl)
         SampleManagedConnectionFactoryImpl other = (SampleManagedConnectionFactoryImpl) obj;
    equal = (this.databaseFileName).equals(other.databaseFileName) &&
    (this.database).equals(other.database) &&
    (this.user).equals(other.user) &&
    (this.password).equals(other.password) &&
    (this.dtdPath).equals(other.dtdPath) &&
    (this.protocol).equals(other.protocol) &&
              (this.serverAddress).equals(other.serverAddress) &&
              (this.debugMode==other.debugMode);
              System.out.println("equals method returning -->"+ equal);
    return equal;
    * Returns the hashCode of the ConnectionRequestInfoImpl.
    * @return the hash code of this instance
    public int hashCode()
    //The rule here is that if two objects have the same Id
    //i.e. they are equal and the .equals method returns true
    // then the .hashCode method must return the same
    // hash code for those two objects      
    int hashcode = new String("").hashCode();
    if (databaseFileName != null)
    hashcode += databaseFileName.hashCode();
    if (database != null)
    hashcode += database.hashCode();
    if (user != null)
    hashcode += user.hashCode();
    if (password != null)
    hashcode += password.hashCode();
    if (dtdPath != null)
    hashcode += dtdPath.hashCode();
    if (protocol != null)
    hashcode += protocol.hashCode();
    if (serverAddress != null)
    hashcode += serverAddress.hashCode();
              System.out.println("hascode method called and the value is -->"+hashcode);
    return hashcode;
    * Associate PropertyChangeListener with the ManagedConnectionFactory,
    * in order to notify about properties changes.
    * @param lis the PropertyChangeListener to be associated with the
    * ManagedConnectionFactory
    public void addPropertyChangeListener(PropertyChangeListener lis)
         System.out.println("addPropertyChangeListener called");
    changes.addPropertyChangeListener(lis);
    * Delete association of PropertyChangeListener with the
    * ManagedConnectionFactory.
    * @param lis the PropertyChangeListener to be removed
    public void removePropertyChangeListener(PropertyChangeListener lis)
         System.out.println("removePropertyChangeListener called");      
    changes.removePropertyChangeListener(lis);
    public String getDatabaseFileName() {
              return databaseFileName;
         public void setDatabaseFileName(String databaseFileName) {
              this.databaseFileName = databaseFileName;
         public String getDatabase() {
              return database;
         public void setDatabase(String database) {
              System.out.println("hellloooooooooooo---->"+database);
              this.database = database;
         public String getUser() {
              return user;
         public void setUser(String user) {
              this.user = user;
         public String getPassword() {
              return password;
         public void setPassword(String password) {
              this.password = password;
         public String getDtdPath() {
              return dtdPath;
         public void setDtdPath(String dtdPath) {
              this.dtdPath = dtdPath;
         public String getProtocol() {
              return protocol;
         public void setProtocol(String protocol) {
              this.protocol = protocol;
         public String getServerAddress() {
              return serverAddress;
         public void setServerAddress(String serverAddress) {
              this.serverAddress = serverAddress;
         public Boolean isDebugMode() {
              return debugMode;
         public void setDebugMode(Boolean debugMode) {
              this.debugMode = debugMode;
         public PrintWriter getWriter() {
              return writer;
         public void setWriter(PrintWriter writer) {
              this.writer = writer;
    weblogic-ra.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <weblogic-connector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
         xmlns:javaee="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-connector/1.0/weblogic-connector.xsd"
         xmlns="http://xmlns.oracle.com/weblogic/weblogic-connector">
         <jndi-name>jca/sampleRA</jndi-name>
         <enable-access-outside-app>true</enable-access-outside-app>
         <outbound-resource-adapter>
              <connection-definition-group>
                   <connection-factory-interface>javax.resource.cci.ConnectionFactory</connection-factory-interface>
                   <connection-instance>
                        <jndi-name>jca/sampleCon</jndi-name>
    <connection-properties>
    <properties>
    <property>
    <name>databaseFileName</name>
    </property>
    <property>
    <name>database</name>
    </property>
    <property>
    <name>user</name>
    </property>
    <property>
    <name>password</name>
    </property>
    <property>
    <name>dtdPath</name>
    </property>
    <property>
    <name>protocol</name>
    </property>
    <property>
    <name>serverAddress</name>
    </property>
    <property>
    <name>debugMode</name>
    </property>
    </properties>
    </connection-properties>                
                   </connection-instance>
              </connection-definition-group>
         </outbound-resource-adapter>
    </weblogic-connector>
    ra.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <connector xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java/sun.com/xml/ns/j2ee/connector_1_5.xsd" version="1.5">
    <display-name>MomapiConnector</display-name>
    <vendor-name>CGI</vendor-name>
    <eis-type>SAMPLE</eis-type>
    <resourceadapter-version>1.0</resourceadapter-version>
    <license>
    <license-required>false</license-required>
    </license>
    <resourceadapter>
    <resourceadapter-class>com.cgi.cml.common.sample.connector.ra.SampleResourceAdapterImpl</resourceadapter-class>
    <outbound-resourceadapter>
    <connection-definition>
    <managedconnectionfactory-class>com.cgi.cml.common.sample.connector.ra.outbound.SampleManagedConnectionFactoryImpl</managedconnectionfactory-class>
              <config-property>
         <config-property-name>databaseFileName</config-property-name>
         <config-property-type>java.lang.String</config-property-type>
         </config-property>
    <config-property>
         <config-property-name>database</config-property-name>
         <config-property-type>java.lang.String</config-property-type>
         </config-property>
              <config-property>
         <config-property-name>user</config-property-name>
         <config-property-type>java.lang.String</config-property-type>
         </config-property>
              <config-property>
         <config-property-name>password</config-property-name>
         <config-property-type>java.lang.String</config-property-type>
         </config-property>
              <config-property>
         <config-property-name>dtdPath</config-property-name>
         <config-property-type>java.lang.String</config-property-type>
         </config-property>
              <config-property>
         <config-property-name>protocol</config-property-name>
         <config-property-type>java.lang.String</config-property-type>
         </config-property>
              <config-property>
         <config-property-name>serverAddress</config-property-name>
         <config-property-type>java.lang.String</config-property-type>
         </config-property>
              <config-property>
         <config-property-name>debugMode</config-property-name>
         <config-property-type>java.lang.Boolean</config-property-type>
         </config-property>
              <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
    <connectionfactory-impl-class>com.cgi.cml.common.my.connector.ra.outbound.SampleConnectionFactoryImpl</connectionfactory-impl-class>
    <connection-interface>javax.resource.cci.Connection</connection-interface>
    <connection-impl-class>com.cgi.cml.common.sample.connector.ra.outbound.SampleConnectionImpl</connection-impl-class>
    </connection-definition>
    <transaction-support>NoTransaction</transaction-support>
         <reauthentication-support>false</reauthentication-support>
    </outbound-resourceadapter>
    </resourceadapter>
    </connector>
    Edited by: 931395 on May 2, 2012 7:43 AM
    Edited by: 931395 on May 2, 2012 8:15 AM

    Arun,
    I tried, no luck and it is giving me the following error. Once the Plan.xml is created I am usinng "update" button on the console to redeploy the application using Plan.xml. When I take this route it gives me 2 options (1. update this application in place with new deployment plan 2. redploy this application using the following deployment files).
    When I use the second option eventhough there is a change in the Plan.xml nothing happens. If I use the first option then I am getting the following exception. If I put the module-override for application then only the ear is getting deployed.
    Thanks,
    Sridhar
    [BaseFlow] : No UpdateListener found or none of the found UpdateListeners accepts URI
    <May 9, 2012 9:37:47 AM EDT> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1336570667598' for task '10'. Error is: 'weblogic.management.DeploymentException:
    The application SampleApp cannot have the resource META-INF/weblogic-ra.xml updated dynamically. Either:
    1.) The resource does not exist.
    or
    2) The resource cannot be changed dynamically.
    Please ensure the resource uri is correct, and redeploy the entire application for this change to take effect.'
    weblogic.management.DeploymentException:
    The application SampleApp cannot have the resource META-INF/weblogic-ra.xml updated dynamically. Either:
    1.) The resource does not exist.
    or
    2) The resource cannot be changed dynamically.
    Please ensure the resource uri is correct, and redeploy the entire application for this change to take effect.
         at weblogic.application.internal.flow.DeploymentCallbackFlow.addPendingUpdates(DeploymentCallbackFlow.java:375)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.makePendingUpdates(DeploymentCallbackFlow.java:394)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.prepareUpdate(DeploymentCallbackFlow.java:407)
         at weblogic.application.internal.BaseDeployment$PrepareUpdateStateChange.next(BaseDeployment.java:685)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
         Truncated. see log file for complete stacktrace
    >
    <May 9, 2012 9:37:47 AM EDT> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating update task for application 'SampleApp'.>
    <May 9, 2012 9:37:47 AM EDT> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
    weblogic.management.DeploymentException:
    The application SampleApp cannot have the resource META-INF/weblogic-ra.xml updated dynamically. Either:
    1.) The resource does not exist.
    or
    2) The resource cannot be changed dynamically.
    Please ensure the resource uri is correct, and redeploy the entire application for this change to take effect.
         at weblogic.application.internal.flow.DeploymentCallbackFlow.addPendingUpdates(DeploymentCallbackFlow.java:375)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.makePendingUpdates(DeploymentCallbackFlow.java:394)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.prepareUpdate(DeploymentCallbackFlow.java:407)
         at weblogic.application.internal.BaseDeployment$PrepareUpdateStateChange.next(BaseDeployment.java:685)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
         Truncated. see log file for complete stacktrace
    >
    <May 9, 2012 9:37:47 AM EDT> <Error> <Console> <BEA-240003> <Console encountered the following error weblogic.management.DeploymentException:
    The application SampleApp cannot have the resource META-INF/weblogic-ra.xml updated dynamically. Either:
    1.) The resource does not exist.
    or
    2) The resource cannot be changed dynamically.
    Please ensure the resource uri is correct, and redeploy the entire application for this change to take effect.
         at weblogic.application.internal.flow.DeploymentCallbackFlow.addPendingUpdates(DeploymentCallbackFlow.java:375)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.makePendingUpdates(DeploymentCallbackFlow.java:394)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.prepareUpdate(DeploymentCallbackFlow.java:407)
         at weblogic.application.internal.BaseDeployment$PrepareUpdateStateChange.next(BaseDeployment.java:685)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
         at weblogic.application.internal.BaseDeployment.prepareUpdate(BaseDeployment.java:439)
         at weblogic.application.internal.EarDeployment.prepareUpdate(EarDeployment.java:58)
         at weblogic.application.internal.DeploymentStateChecker.prepareUpdate(DeploymentStateChecker.java:220)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepareUpdate(AppContainerInvoker.java:149)
         at weblogic.deploy.internal.targetserver.operations.DynamicUpdateOperation.doPrepare(DynamicUpdateOperation.java:130)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
         at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    >

  • BINDING.JCA-12510 JCA Resource Adapter location error in SOA 11g Suite

    Hi,
    I am just testing one simple SOA Application in SOA 11g Suite. Created a SOA Composite Application with one DB Adapter at designtime all worked fine with DB Adapter. But when I deploy the Application on the server I get the following error:
    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/DB/soademoDatabase'. 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/DB/soademoDatabase. 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 ".Do I need to jndi-name in weblogic-ra.xml if so what is the exact location. Any help is appreciated.
    Thanks

    I did but still not able to connect now getting the following error. I went to the Weblogic Console, clicked on deployments, selected DBAdapter, clicked on configuration ,
    and then I don't see outbound configurations instead it shows Outbound Connection Pools, Under Outbound Connection Pools tab I clicked on New and it asked to select Outbound Connection Group I selected the one that was already there (with JNDI eis/DB/SOADemo) and then created my JNDI which was added to the default Outbound Connection Group and in the end it asked to save the Plan.xml which I saved it under a new directory created under soa directory. But still am not able to connect.
    How do I create my own Connection Group as don't want to use the defualt one out there.
    After creating the JNDI Name it asks for saving the Plan.xml file. Where exactly we save this file. Are there any standards.
    Why can't I update any properties when I click on the new JNDI name it takes to Settings for javax.resource.cci.ConnectionFactory --> Outbound Connection Properties but there I see a save buttn but I can't make any changes.
    BINDING.JCA-12563 Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'getCreditValidationSelect' failed due to: Could not create/access the TopLink Session. This session is used to connect to the datastore. Caused by javax.resource.spi.InvalidPropertyException: Missing Property Exception. Missing Property: [DBManagedConnectionFactory.userName]. You may have set a property (in _db.jca) which requires another property to be set also. Make sure the property is set in the interaction (activation) spec by editing its definition in _db.jca. . ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. Is there any documentation that lists all these steps as I couldn't find it anywhere. The guide only talks abou DBAdapter but how to configure etc can't find any info. Any help is appreciated.
    Thanks.

  • How to send msgs to tuxedo and read from tuxedousing jca adapter at jboss6

    Hi i had only Tuxedo ip and port number.i have to send messsages to tuxedo server and read from tuxedo server i did below changes at ra.xml and dmconfig.xml
    what are the services i have to use plz give me reply .Thanks in advance.
    my ra.xml is
    <?xml version="1.0" encoding="UTF-8"?>
    <connector xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
    version="1.5">
    <display-name>Tuxedo JCA Adapter</display-name>
    <vendor-name>Oracle</vendor-name>
    <eis-type>Tuxedo</eis-type>
    <resourceadapter-version>11gR1(11.1.1.2.1)</resourceadapter-version>
    <license>
    <description>Tuxedo SALT license</description>
    <license-required>false</license-required>
    </license>
    <resourceadapter>
    <resourceadapter-class>com.oracle.tuxedo.adapter.TuxedoResourceAdapter</resourceadapter-class>
    <config-property>
    <config-property-name>traceLevel</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>80000</config-property-value>
    </config-property>
    <config-property>
    <config-property-name>xaAffinity</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <config-property-name>keyFileName</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <config-property-name>dmconfig</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>D:\jboss-6.1.0.Final\server\mpayv4_dev\deploy\dmconfig.xml</config-property-value>
    </config-property>
    <outbound-resourceadapter>
    <connection-definition>
    <managedconnectionfactory-class>com.oracle.tuxedo.adapter.spi.TuxedoManagedConnectionFactory</managedconnectionfactory-class>
    <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
    <connectionfactory-impl-class>com.oracle.tuxedo.adapter.cci.TuxedoConnectionFactory</connectionfactory-impl-class>
    <connection-interface>javax.resource.cci.Connection</connection-interface>
    <connection-impl-class>com.oracle.tuxedo.adapter.cci.TuxedoJCAConnection</connection-impl-class>
    </connection-definition>
    <transaction-support>NoTransaction</transaction-support>
    <authentication-mechanism>
    <authentication-mechanism-type>BasicPassword</authentication-mechanism-type>
    <credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
    </authentication-mechanism>
    <reauthentication-support>false</reauthentication-support>
    </outbound-resourceadapter>
    </resourceadapter>
    </connector>
    ==========================
    and dmconfig.xml is
    <?xml version="1.0" encoding="UTF-8"?>
    <TuxedoConnector>
    <LocalAccessPoint name="local_1">
    <AccessPointId>dev_scurtis</AccessPointId>
    <NetworkAddress>//ip:port</NetworkAddress>
    </LocalAccessPoint>
    <RemoteAccessPoint name="e1tst_tdtux01">
    <AccessPointId>e1tst_tdtux01</AccessPointId>
    <NetworkAddress>//ip:port</NetworkAddress>
    </RemoteAccessPoint>
    <Import name="TOUPPER">
    <RemoteName>TOUPPER</RemoteName>
    <SessionName>session_1</SessionName>
    <LoadBalancing>RoundRobin</LoadBalancing>
    </Import>
    <Import name="ECHO">
    <RemoteName>ECHO</RemoteName>
    <SessionName>session_1</SessionName>
    <LoadBalancing>RoundRobin</LoadBalancing>
    </Import>
    </TuxedoConnector>

    Hi todd Thanks for your reply
    iam using below java code in jsp ,iam not getting the response plz suggest me any changes
    <%@ page import ="javax.naming.Context,
    javax.naming.InitialContext,
    javax.naming.NamingException,
    javax.ejb.CreateException,
    javax.resource.cci.ConnectionFactory,
    javax.resource.cci.Connection,
    javax.resource.cci.Interaction,
    javax.resource.cci.InteractionSpec,
    javax.resource.ResourceException,
    weblogic.wtc.jatmi.TPException,
    weblogic.wtc.jatmi.TPReplyException,
    com.oracle.tuxedo.adapter.TuxedoReplyException,
    com.oracle.tuxedo.adapter.cci.TuxedoStringRecord,
    com.oracle.tuxedo.adapter.cci.TuxedoInteractionSpec" %>
    <html>
    <head>
    </head>
    <body>
    <h1>Tuxedo Test</h1>
    <%
    System.out.println("Check Connection JNDI");
    String result="";
    result=Toupper("harikrishna");
    %>
    <%!
    public String Toupper(String string_to_convert) throws TPException, TuxedoReplyException
    Context ctx;
    ConnectionFactory cf;
    Connection c;
    Interaction ix;
    TuxedoStringRecord inRec;
    TuxedoStringRecord outRec;
    TuxedoInteractionSpec ixspec;
    try {
    ctx = new InitialContext();
    cf = (ConnectionFactory)ctx.lookup("java:jca/tuxedo");
    c = cf.getConnection();
    ix = c.createInteraction();
         ixspec = new TuxedoInteractionSpec();
         ixspec.setFunctionName("TOUPPER");
         ixspec.setInteractionVerb(InteractionSpec.SYNC_SEND_RECEIVE);
         inRec = new TuxedoStringRecord();
         outRec = new TuxedoStringRecord();
         inRec.setRecordName("MyInputData");
         outRec.setRecordName("MyOutputData");
         outRec.setString(string_to_convert);
         ix.execute(ixspec, inRec, outRec);
         ix.close();
         c.close();
         String returned_data = outRec.getString();
         return returned_data;
         catch (NamingException ne) {
         throw new TPException(TPException.TPESYSTEM,
         "Could not get TuxedoConnectionFactory"+ne);
         catch (ResourceException re) {
         throw new TPException(TPException.TPESYSTEM,
         "ResourceException occurred, reason: " + re);
    %>
    </body>
    </html>
    =======================================
    In tuxedo.lod at my jboo6/bin iam getting this informatin
    e property Security.
    4/30/12:2:59:09 AM:11:INFO[TuxedoAdapterSupervisor,createDefaultSessionProfile]TJA_0188:INFO: Use ON_STARTUP to create default session profile property ConnectionPolicy.
    4/30/12:2:59:09 AM:11:INFO[TuxedoAdapterSupervisor,createDefaultSessionProfile]TJA_0188:INFO: Use 60,000 to create default session profile property BlockTime.
    4/30/12:2:59:09 AM:11:INFO[TuxedoAdapterSupervisor,createDefaultSessionProfile]TJA_0188:INFO: Use false to create default session profile property Interoperate.
    4/30/12:2:59:09 AM:11:INFO[TuxedoAdapterSupervisor,createDefaultSessionProfile]TJA_0188:INFO: Use 60 to create default session profile property RetryInterval.
    4/30/12:2:59:09 AM:11:INFO[TuxedoAdapterSupervisor,createDefaultSessionProfile]TJA_0188:INFO: Use 9,223,372,036,854,775,807 to create default session profile property MaxRetries.
    4/30/12:2:59:09 AM:11:INFO[TuxedoAdapterSupervisor,createDefaultSessionProfile]TJA_0188:INFO: Use 2,147,483,647 to create default session profile property CompressionLimit.
    4/30/12:2:59:09 AM:11:INFO[TuxedoAdapterSupervisor,createDefaultSessionProfile]TJA_0188:INFO: Use 0 to create default session profile property KeepAlive.
    4/30/12:2:59:09 AM:11:INFO[TuxedoAdapterSupervisor,createDefaultSessionProfile]TJA_0188:INFO: Use 10,000 to create default session profile property KeepAliveWait.
    4/30/12:2:59:09 AM:11:INFO[TuxedoAdapterSupervisor,createDefaultSessionProfile]TJA_0189:INFO: Default session profile created.
    4/30/12:2:59:09 AM:11:INFO[,]factory = null
    4/30/12:2:59:09 AM:11:INFO[,]name = TOUPPER
    4/30/12:2:59:09 AM:11:INFO[,]iname = TOUPPER
    4/30/12:2:59:09 AM:11:INFO[,]rsvc == null, create new ArrayList with key= TOUPPER
    4/30/12:2:59:09 AM:11:INFO[,]factory = null
    4/30/12:2:59:09 AM:11:INFO[,]name = ECHO
    4/30/12:2:59:09 AM:11:INFO[,]iname = ECHO
    4/30/12:2:59:09 AM:11:INFO[,]rsvc == null, create new ArrayList with key= ECHO
    4/30/12:2:59:09 AM:11:INFO[TuxedoAdapterSupervisor,createDefaultSession]TJA_0193:INFO: Default session created between LocalAccessPoint local_1 and RemoteAccessPoint e1tst_tdtux01.

  • Local transaction support when BPEL invokes JCA adapter

    Hi all,
    I've implemented a BPEL process consisting of multiple invoke activities to my (custom) JCA Resource Adapter which connects to an EIS.
    My concern is to support local transactions. Here are some code snippets describing what I've done so far.
    Declare the transaction support at deployment time (ra.xml)
    <transaction-support>LocalTransaction</transaction-support>Implementer class of ManagedConnection interface
    public class MyManagedConnection implements ManagedConnection {
         public XAResource getXAResource() throws ResourceException {
             throw new NotSupportedException("XA Transactions not supported");
         public LocalTransaction getLocalTransaction() throws ResourceException {
             return new MyLocalTransaction(this);
            public void sendTheEvent(int eventType, Object connectionHandle) {
                 ConnectionEvent event = new ConnectionEvent(this, eventType);
                 if (connectionHandle != null) {
                    event.setConnectionHandle(connectionHandle);
                ConnectionEventListener listener = getEventListener();
             switch (eventType) {
              case ConnectionEvent.CONNECTION_CLOSED:
                   listener.connectionClosed(event); break;
              case ConnectionEvent.LOCAL_TRANSACTION_STARTED:
                   listener.localTransactionStarted(event); break;
              case ConnectionEvent.LOCAL_TRANSACTION_COMMITTED:
                   listener.localTransactionCommitted(event); break;
              case ConnectionEvent.LOCAL_TRANSACTION_ROLLEDBACK:
                   listener.localTransactionRolledback(event); break;
              case ConnectionEvent.CONNECTION_ERROR_OCCURRED:
                   listener.connectionErrorOccurred(event); break;
              default: break;
    }Implementer class of LocalTransaction interface
    public class MyLocalTransaction implements javax.resource.spi.LocalTransaction {
         private MyManagedConnection mc = null;
         public MyLocalTransaction(MyManagedConnection mc) {
             this.mc = mc;
         @Overide
         public void begin() throws ResourceException {
             mc.sendTheEvent(ConnectionEvent.LOCAL_TRANSACTION_STARTED, mc);
         @Override
         public void commit() throws ResourceException {
             eis.commit(); //eis specific method
             mc.sendTheEvent(ConnectionEvent.LOCAL_TRANSACTION_COMMITTED, mc);
         @Override
         public void rollback() throws ResourceException {
             eis.rollback(); //eis specific method
             mc.sendTheEvent(ConnectionEvent.LOCAL_TRANSACTION_ROLLEDBACK, mc);
    }Uppon BPEL process completion, MyLocalTransaction.commit() is called. However, localTransactionCommitted(event) fails and I get the following error:
    Error committing transaction:; nested exception is: weblogic.transaction.nonxa.NonXAException: java.lang.IllegalStateException:
    [Connector:199175]This ManagedConnection is managed by container for its transactional behavior and has been enlisted to JTA transaction by container;
    application/adapter must not call the local transaction begin/commit/rollback API. Reject event LOCAL_TRANSACTION_COMMITTED from adapter.Could someone give me some directions to proceed ?
    My current installation consists of:
    1. Oracle SOA Suite / JDeveoper 11g (11.1.1.4.0),
    2. WebLogic Server 10.3.4
    Thank you for your time,
    George

    Hi Vlad, thank you again for your immediate response.
    With regards to your first comment. I already have been using logs, so I confirm that neither javax.resource.spi.LocalTransaction#begin() nor javax.resource.spi.LocalTransaction#commit()
    is called in the 2nd run.
    I think it might be helpful for our discussion if I give you the call trace for a successful (the first one) run.
    After I deploy my custom JCA Resource Adapter, I create a javax.resource.cci.ConnectionFactory through Oracle EM web application and the following methods are called:
    -- MyManagedConnectionFactory()
    (Constructor of the implementer class of the javax.resource.spi.ManagedConnectionFactory interface)
    -- javax.resource.spi.ManagedConnectionFactory#createManagedConnection(javax.security.auth.Subject, javax.resource.spi.ConnectionRequestInfo)
    -- MyManagedConnection()
    (Constructor of the implementer class of the javax.resource.spi.ManagedConnection interface)
    -- javax.resource.spi.ManagedConnection#addConnectionEventListener(javax.resource.spi.ConnectionEventListener)
    -- javax.resource.spi.ManagedConnection#getLocalTransaction()
    -- MySpiLocalTransaction(MyManagedConnection)
    (Constructor of the implementer class of the javax.resource.spi.LocalTransaction interface)
    -- javax.resource.spi.ManagedConnectionFactory#createConnectionFactory(javax.resource.spi.ConnectionManager)
    -- MyConnectionFactory(javax.resource.spi.ManagedConnectionFactory, javax.resource.spi.ConnectionManager)
    (Constructor of the implementer class of the javax.resource.cci.ConnectionFactory interface)BPEL process consists of multiple invoke activities to my (custom) JCA Resource Adapter which connects to an EIS. Client tester invokes BPEL process, and execution starts.
    Here is the method call trace for the last invoke (after which, commit is executed). The logs for all the rest invocations are identical:
    -- javax.resource.cci.ConnectionFactory#getConnection()
    -- javax.resource.spi.ManagedConnection#getConnection(javax.security.auth.Subject, javax.resource.spi.ConnectionRequestInfo)
    -- MyConnection(MyManagedConnection)
    (Constructor of the implementer class of the javax.resource.cci.Connection interface)
    -- javax.resource.cci.Connection#close()
    (I don't understand why close() is called here, any idea ?)
    -- javax.resource.cci.ConnectionFactory#getConnection()
    -- javax.resource.spi.ManagedConnection#getConnection(javax.security.auth.Subject, javax.resource.spi.ConnectionRequestInfo)
    -- MyConnection(MyManagedConnection)
    (Constructor of the implementer class of the javax.resource.cci.Connection interface)
    -- javax.resource.cci.Connection#createInteraction()
    -- MyInteraction(javax.resource.cci.Connection)
    (Constructor of the implementer class of the javax.resource.cci.Interaction interface)
    -- javax.resource.cci.Interaction#execute(javax.resource.cci.InteractionSpec, javax.resource.cci.Record, javax.resource.cci.Record)
    -- javax.resource.spi.LocalTransaction#commit()I would expect that after the last commit() - meaning that BPEL process is done, and its state is "Completed" - Weblogic server would call the following:
    javax.resource.cci.Connection#close()However it doesn't. Do I miss something ?

  • Remote tuxedo domain rejects connection from client only Tuxedo JCA Adapter

    I am trying to use a client only configured Oracle Tuxedo JCA Adapter 11.1.1.2.1 to connect to a remote tuxedo 10.3 domain. The connector is deployed to a JDeveloper 10.1.3.4 embedded OC4J container. The connector is failing silently when attempting to establish a connection with the remote domain. Locally, the JCA Adapter ntrace logs the following:
    1/20/11:9:41:49 PM:10:TRACE[DMLocalAccessPoint,DMLocalAccessPoint]> (ypjspNQ5QIPKmOyk1DlAgw==)
    1/20/11:9:41:49 PM:10:DBG[DMLocalAccessPoint,DMLocalAccessPoint]_useSSL = false
    1/20/11:9:41:49 PM:10:TRACE[DMLocalAccessPoint,DMLocalAccessPoint]< return(10)
    1/20/11:9:41:49 PM:10:INFO[TuxedoAdapterSupervisor,createLocalAccessPoint]TJA_0233:Info: Default local access point for factory null created, access point id ypjspNQ5QIPKmOyk1DlAgw==.
    1/20/11:9:41:49 PM:10:DBG[TuxedoAdapterSupervisor,createLocalAccessPoint]features = 159
    1/20/11:9:41:49 PM:10:TRACE[TuxedoAdapterSupervisor,startListeners]> ()
    1/20/11:9:41:49 PM:10:TRACE[TuxedoAdapterSupervisor,startListeners]< (20) return
    1/20/11:9:41:49 PM:10:TRACE[DMSession,DMSession]> (__sess_0_0)
    1/20/11:9:41:49 PM:10:DBG[DMSession,myInit]_lap_name:ypjspNQ5QIPKmOyk1DlAgw==
    1/20/11:9:41:49 PM:10:DBG[DMSession,myInit]_rap_name:e1tst_tdtux02
    1/20/11:9:41:49 PM:10:DBG[DMSession,myInit]_pro_name:__default_session_profile__
    1/20/11:9:41:49 PM:10:DBG[DMSession,DMSession]got _lap: com.oracle.tuxedo.adapter.config.DMLocalAccessPoint@1f6bc1a
    1/20/11:9:41:49 PM:10:DBG[DMSession,DMSession]got _rap: com.oracle.tuxedo.adapter.config.DMRemoteAccessPoint@1b75e54
    1/20/11:9:41:49 PM:10:DBG[DMSession,DMSession]got _pro: com.oracle.tuxedo.adapter.config.DMSessionProfile@191f64b
    1/20/11:9:41:49 PM:10:DBG[DMSession,DMSession]sec = NONE
    1/20/11:9:41:49 PM:10:TRACE[DMSession,DMSession]< return(60)
    1/20/11:9:41:49 PM:10:INFO[TuxedoAdapterSupervisor,createDefaultSession]TJA_0193:INFO: Default session created between LocalAccessPoint ypjspNQ5QIPKmOyk1DlAgw== and RemoteAccessPoint e1tst_tdtux02.
    1/20/11:9:41:49 PM:10:TRACE[DMSession,DMSession]> (__sess_0_1)
    1/20/11:9:41:49 PM:10:DBG[DMSession,myInit]_lap_name:ypjspNQ5QIPKmOyk1DlAgw==
    1/20/11:9:41:49 PM:10:DBG[DMSession,myInit]_rap_name:e1tst_tdtux01
    1/20/11:9:41:49 PM:10:DBG[DMSession,myInit]_pro_name:__default_session_profile__
    1/20/11:9:41:49 PM:10:DBG[DMSession,DMSession]got _lap: com.oracle.tuxedo.adapter.config.DMLocalAccessPoint@1f6bc1a
    1/20/11:9:41:49 PM:10:DBG[DMSession,DMSession]got _rap: com.oracle.tuxedo.adapter.config.DMRemoteAccessPoint@1c0f654
    1/20/11:9:41:49 PM:10:DBG[DMSession,DMSession]got _pro: com.oracle.tuxedo.adapter.config.DMSessionProfile@191f64b
    1/20/11:9:41:49 PM:10:DBG[DMSession,DMSession]sec = NONE
    1/20/11:9:41:49 PM:10:TRACE[DMSession,DMSession]< return(60)
    1/20/11:9:41:49 PM:10:INFO[TuxedoAdapterSupervisor,createDefaultSession]TJA_0193:INFO: Default session created between LocalAccessPoint ypjspNQ5QIPKmOyk1DlAgw== and RemoteAccessPoint e1tst_tdtux01.
    1/20/11:9:41:49 PM:10:TRACE[TuxedoAdapterSupervisor,registerClientSideResourceAdapter]create default import
    1/20/11:9:41:49 PM:10:TRACE[ServiceManager,registerImportedService]> (*)
    1/20/11:9:41:49 PM:10:INFO[,]factory = null
    1/20/11:9:41:49 PM:10:INFO[,]name = *
    1/20/11:9:41:49 PM:10:INFO[,]iname = *
    1/20/11:9:41:49 PM:10:TRACE[ServiceManager,registerImportedService]register Default Import
    1/20/11:9:41:49 PM:10:TRACE[Route,Route]> (*)
    I can't determine if there are any problems from these log entries, but the remote tuxedo domain logs the following in the ULOG:
    155138.tdtux01!GWTDOMAIN.3495.4.0: LIBGWT_CAT:1073: ERROR: Unable to obtain remote domain id (ypjspNQ5QIPKmOyk1DlAgw==) information from shared memory
    155138.tdtux01!GWTDOMAIN.3495.4.0: LIBGWT_CAT:1509: ERROR: Error occurred during security negotiation - closing connection
    My understanding is that the client only configuration should connect to a remote tuxedo domain as an anonymous client instead of a peer tuxedo domain, but the remote tuxedo gateway domain listener is acting like the client has to be configured in its dmconfig file before it will allow the connection request. Is there a different kind of listener the client only configuration should connect to instead of the tuxedo gateway domain listener? How can a remote tuxedo domain accept a connection from an anonymous client if the client must first be specified in the remote domain's dmconfig file? Is this a tuxedo 11g only feature? I'm trying to connect to a tuxedo 10.3 server.
    The local ra.xml is reproduced here:
    <?xml version="1.0" encoding="UTF-8"?>
    <connector xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
    version="1.5">
    <display-name>Tuxedo JCA Adapter</display-name>
    <vendor-name>Oracle</vendor-name>
    <eis-type>Tuxedo</eis-type>
    <resourceadapter-version>11gR1(11.1.1.2.1)</resourceadapter-version>
    <license>
    <description>Tuxedo SALT license</description>
    <license-required>false</license-required>
    </license>
    <resourceadapter>
    <resourceadapter-class>com.oracle.tuxedo.adapter.TuxedoClientSideResourceAdapter</resourceadapter-class>
    <config-property>
    <config-property-name>debugConfig</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <config-property-name>traceLevel</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>100000</config-property-value>
    </config-property>
    <config-property>
    <config-property-name>xaAffinity</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <config-property-name>remoteAccessPointSpec</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>//tdtux01:9601/domainId=e1tst_tdtux01,//tdtux02:9601/domainId=e1tst_tdtux02</config-property-value>
    </config-property>
    <outbound-resourceadapter>
    <connection-definition>
    <managedconnectionfactory-class>com.oracle.tuxedo.adapter.spi.TuxedoManagedConnectionFactory</managedconnectionfactory-class>
    <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
    <connectionfactory-impl-class>com.oracle.tuxedo.adapter.cci.TuxedoConnectionFactory</connectionfactory-impl-class>
    <connection-interface>javax.resource.cci.Connection</connection-interface>
    <connection-impl-class>com.oracle.tuxedo.adapter.cci.TuxedoJCAConnection</connection-impl-class>
    </connection-definition>
    <transaction-support>NoTransaction</transaction-support>
    <authentication-mechanism>
    <authentication-mechanism-type>BasicPassword</authentication-mechanism-type>
    <credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
    </authentication-mechanism>
    <reauthentication-support>false</reauthentication-support>
    </outbound-resourceadapter>
    </resourceadapter>
    </connector>
    Thanks for any help.
    Steve

    Looks like this is an RTFM question. From:
    [http://download.oracle.com/docs/cd/E18050_01/jca/docs11gr1/users/jca_usersguide.html]
    Is the following:
    Dynamic RemoteAccessPoint (RAP) Insertion
    In order to make default LocalAccessPoint to work, Oracle Tuxedo GWTDOMAIN gateway configuration is required in order to make this simplified /Domain configuration to work.
    GWTDOMAIN gateway must be modified to allow Dynamic RemoteAccessPoint (RAP) Registration. If DYNAMIC_RAP is set to YES, it will also update the in-memory database of the status of the connection from those dynamically registered RAP. If the connection from those dynamically registered RAP lost then the information about that RAP will be removed from the SHM database.
    GWADM must be modified to process the DM MIB correctly to reflect the connection status of those dynamically registered RAP. When the connection from those dynamically registered RAP lost their entries in the SHM database will also be removed so that the DM MIB query can return the connection status correctly.
    The dynamically registered RAP will be added to /DOMAIN configuration permanently. Their existence will only be known when the Session is established. Their existence will be lost when the connection is lost.
    The DM_CONNECTION Oracle Tuxedo /Domain DMIB call returns all the connected dynamically registered RemoteAccessPoint. All other dynamically registered RemoteAccessPoint that are not connected will not be shown.
    The OPENCONNECTION DMIB request will not be supported to connect to those dynamically registered RAP.
    The CLOSECONNECTION Oracle Tuxedo /DMIB request closes the connection and remove the session from those dynamically registered RemoteAccessPoint, and returns its connection status as 'UNKNOWN.
    The PERSISTENT_DISCONNECT type of CONNECTION_POLICY will be honored that means when PERSISTENT_DISCONNECT is in effect all connections request from any RAP, whether they are dynamically or non-dynamically registered, will be rejected.
    I must have overlooked this section when reading it. Looks like I've got more configuration to do.
    Thanks,
    Steve

  • JCA Binding Component connection issue - Help plz

    All,
    soa - 11.1.1.3
    I configured a async BPEL which reads data from DB (using DBAdapter) and write to a file. I'm getting the following error frequently. But same BPEL if I test it after few minutes it works, its very intermittent. Any clue?
    I checked the DB which is installed locally, its up and running. No issue i seen in the DB.
    Caused by: BINDING.JCA-12511
    JCA Binding Component connection issue.
    JCA Binding Component is unable to create an outbound JCA (CCI) connection.
    *OutOrderRequestMap:TerritoryPull [ TerritoryPull_ptt::TerritoryPull(TerritoryPullInput_msg,TerritoryPullOutputCollection) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: javax.resource.spi.IllegalStateException: [Connector:199176]Unable to execute allocateConnection(...) on ConnectionManager. A stale Connection Factory or Connection Handle may be used. The connection pool associated with it has already been destroyed. Try to re-lookup Connection Factory eis/DB/orafin11i from JNDI and get a new Connection Handle.*
    Thanks,
    sen

    Are you using JDBC Xa datasource ? Try following the steps defined in this forum link @ Re: Error at the time of Invocation of DB Adapter

  • Configuring kodo-jdo-2.5.3 with weblogic 8.1 using JCA

    Hi there.
    I am trying to configure kodo-jdo-2.5.3 in WebLogic 8.1 using JCA method.
    The issue I got was that I got DB authentication failed. I have tested my
    JDBC connect -- working fine, I have turned on JDBC log in WL, it looks
    fine.
    It looks like that KODO was still trying to create its own JDBC connection
    even I have specified
    <config-property>
    <description>The JNDI name of the connection factory to use for
    obtaining connections.</description>
    <config-property-name>ConnectionFactoryName</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>datasource.oracle9</config-property-value>
    </config-property>
    "datasource.oracle9" is the JNDI name of my data source.
    The error message is the following. I will really appreciate your help.
    Melvin
    Oct 19, 2003 4:20:53 AM com.solarmetric.kodo.impl.jdbc.RegisterListener
    registerClass
    SEVERE: com.solarmetric.kodo.runtime.FatalDataStoreException:
    java.sql.SQLException: User: melvin, f
    ailed to be authenticated. [code=0;state=null]
    NestedThrowables:
    java.sql.SQLException: User: melvin, failed to be authenticated.
    com.solarmetric.kodo.runtime.FatalDataStoreException:
    java.sql.SQLException: User: melvin, failed to
    be authenticated. [code=0;state=null]
    NestedThrowables:
    java.sql.SQLException: User: melvin, failed to be authenticated.
    at
    com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwFatal(SQLExceptions.java:58)
    at
    com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
    ry.java:212)
    at
    com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
    ion.java:370)
    at
    com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClassInternal(JDBCPe
    rsistenceManagerFactory.java:455)
    at
    com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClass(JDBCPersistenc
    eManagerFactory.java:338)
    at
    com.solarmetric.kodo.impl.jdbc.RegisterListener.registerClass(RegisterListener.java:53)
    at
    javax.jdo.spi.JDOImplHelper.registerClass(JDOImplHelper.java:269)
    at samples.j2ee.Car.<clinit>(Car.java)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:140)
    at samples.j2ee.ejb.CarBean.class$(CarBean.java:11)
    at samples.j2ee.ejb.CarBean.list(CarBean.java:136)
    at
    samples.j2ee.ejb.CarEJB_pgfrtx_EOImpl.list(CarEJB_pgfrtx_EOImpl.java:201)
    at jsp_servlet.__index._jspService(__index.java:170)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.jav
    a:1053)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC
    ontext.java:6310)
    at
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    at
    weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:36
    22)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    NestedThrowablesStackTrace:
    java.sql.SQLException: User: melvin, failed to be authenticated.
    at
    weblogic.jdbc.common.internal.RmiDataSource.getSubject(RmiDataSource.java:257)
    at
    weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:188)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.DataSourceConnector.getConnection(DataSourceConnec
    tor.java:63)
    at
    com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
    ry.java:179)
    at
    com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
    ion.java:370)
    at
    com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClassInternal(JDBCPe
    rsistenceManagerFactory.java:455)
    at
    com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClass(JDBCPersistenc
    eManagerFactory.java:338)
    at
    com.solarmetric.kodo.impl.jdbc.RegisterListener.registerClass(RegisterListener.java:53)
    at
    javax.jdo.spi.JDOImplHelper.registerClass(JDOImplHelper.java:269)
    at samples.j2ee.Car.<clinit>(Car.java)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:140)
    at samples.j2ee.ejb.CarBean.class$(CarBean.java:11)
    at samples.j2ee.ejb.CarBean.list(CarBean.java:136)
    at
    samples.j2ee.ejb.CarEJB_pgfrtx_EOImpl.list(CarEJB_pgfrtx_EOImpl.java:201)
    at jsp_servlet.__index._jspService(__index.java:170)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.jav
    a:1053)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC
    ontext.java:6310)
    at
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    at
    weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:36
    22)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    <Oct 19, 2003 4:20:53 AM CDT> <Info> <EJB> <BEA-010051> <EJB Exception
    occurred during invocation fr
    om home: samples.j2ee.ejb.CarEJB_pgfrtx_HomeImpl@1c059f6 threw exception:
    com.solarmetric.kodo.runti
    me.FatalDataStoreException: java.sql.SQLException: User: melvin, failed to
    be authenticated. [code=0
    ;state=null]
    NestedThrowables:
    java.sql.SQLException: User: melvin, failed to be authenticated.
    com.solarmetric.kodo.runtime.FatalDataStoreException:
    java.sql.SQLException: User: melvin, failed to
    be authenticated. [code=0;state=null]
    NestedThrowables:
    java.sql.SQLException: User: melvin, failed to be authenticated.
    at
    com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwFatal(SQLExceptions.java:58)
    at
    com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
    ry.java:212)
    at
    com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
    ion.java:370)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getDictionary(JDBCStoreManager.ja
    va:753)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
    java:1023)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
    java:1037)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCExtent.getResultList(JDBCExtent.java:71)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCExtent.getIterator(JDBCExtent.java:47)
    at
    com.solarmetric.kodo.runtime.ExtentImpl$MultipleSubclassIterator.newIterator(ExtentImpl.j
    ava:344)
    at serp.util.MultiIterator.setIterator(MultiIterator.java:74)
    at serp.util.MultiIterator.hasNext(MultiIterator.java:29)
    at serp.util.LookaheadIterator.setNext(LookaheadIterator.java:133)
    at
    serp.util.LookaheadIterator.initialize(LookaheadIterator.java:118)
    at serp.util.LookaheadIterator.hasNext(LookaheadIterator.java:48)
    at serp.util.MultiIterator.setIterator(MultiIterator.java:73)
    at serp.util.MultiIterator.hasNext(MultiIterator.java:29)
    at
    com.solarmetric.kodo.runtime.ExtentImpl$TransactionAwareIterator.hasNext(ExtentImpl.java:
    403)
    at samples.j2ee.ejb.CarBean.list(CarBean.java:138)
    at
    samples.j2ee.ejb.CarEJB_pgfrtx_EOImpl.list(CarEJB_pgfrtx_EOImpl.java:201)
    at jsp_servlet.__index._jspService(__index.java:170)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.jav
    a:1053)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC
    ontext.java:6310)
    at
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    at
    weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:36
    22)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    NestedThrowablesStackTrace:
    java.sql.SQLException: User: melvin, failed to be authenticated.
    at
    weblogic.jdbc.common.internal.RmiDataSource.getSubject(RmiDataSource.java:257)
    at
    weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:188)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.DataSourceConnector.getConnection(DataSourceConnec
    tor.java:63)
    at
    com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
    ry.java:179)
    at
    com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
    ion.java:370)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getDictionary(JDBCStoreManager.ja
    va:753)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
    java:1023)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
    java:1037)

    Alex Robbins wrote:
    Try removing <authentication-mechanism> from the ra.xml file of the Kodo
    JCA connector. Then it won't try to authenticate against the WL security
    realm. (If you want connector-level authentication as well as DB-conn
    authentication i think you'll have to configure WL security. I don't know
    how). This worked for me.
    Alex.Hi, The following is the ra.xml, please see any problem.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE connector PUBLIC '-//Sun Microsystems, Inc.//DTD Connector
    1.0//EN' 'http://java.sun.com/dtd/connector_1_0.dtd'>
    <connector>
    <display-name>KodoJDO</display-name>
    <description>Resource Adapter for integration of the Kodo Java Data
    Objects (JDO) implementation with J2EE 1.3 compliant managed
    environments</description>
    <icon>
    <small-icon>kodo16.gif</small-icon>
    <large-icon>kodo32.gif</large-icon>
    </icon>
    <vendor-name>Solarmetric, Inc.</vendor-name>
    <spec-version>1.0</spec-version>
    <eis-type>jdo</eis-type>
    <version>1.0</version>
    <license>
    <description>See http://www.solarmetric.com for terms and license
    conditions.</description>
    <license-required>true</license-required>
    </license>
    <resourceadapter>
    <managedconnectionfactory-class>com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl</managedconnectionfactory-class>
    <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
    <connectionfactory-impl-class>com.solarmetric.kodo.impl.jdbc.ee.JDOConnectionFactory</connectionfactory-impl-class>
    <connection-interface>javax.resource.cci.Connection</connection-interface>
    <connection-impl-class>com.solarmetric.kodo.ee.EEPersistenceManager</connection-impl-class>
    <transaction-support>XATransaction</transaction-support>
    <config-property>
    <description>The number of hard references to cached objects that the
    PersistenceManager's cache will retain (in addition to the soft reference
    cache that it maintains). Setting this to a higher value will result in
    more objects being retained in the cache, at the cost of utilizing more
    memory resources. Setting it to -1 will cause the PersistenceManager to
    maintain hard references only. This will result in better performance, but
    can have adverse effects on memory usage.</description>
    <config-property-name>CacheReferenceSize</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>1000</config-property-value>
    </config-property>
    <config-property>
    <description>The class name of ether the JDBC java.sql.Driver, or an
    instance of a javax.sql.DataSource to use to connect to the data
    source.</description>
    <config-property-name>ConnectionDriverName</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The JNDI name of the connection factory to use for
    finding non-transactional connections. If specified, this is the
    connection that will be used for access for obtaining sequence
    numbers.</description>
    <config-property-name>ConnectionFactory2Name</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>jdbc/petshop</config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to be passed to
    the JDBC Driver when obtaining a Connection for the ConnectionFactory2
    (which will be used to obtain sequence numbers). Properties are of the
    form "key=value". If a javax.sql.DataSource class is defined in the
    javax.jdo.option.ConnectionDriverName property, then this property will be
    used to set bean-like properties in the DataSource instance upon creation.
    These properties vary depending on the DataSource in use: see the
    documentation for your DataSource for details on the properties to
    use.</description>
    <config-property-name>ConnectionFactory2Properties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The JNDI name of the connection factory to use for
    obtaining connections.</description>
    <config-property-name>ConnectionFactoryName</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>PetShopXADataSource</config-property-value>
    </config-property>
    <config-property>
    <description>The password for the user specified in
    ConnectionUserName</description>
    <config-property-name>ConnectionPassword</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to be passed to
    the JDBC Driver when obtaining a Connection. Properties are of the form
    "key=value". If a javax.sql.DataSource class is defined in the
    javax.jdo.option.ConnectionDriverName property, then this property will be
    used to set bean-like properties in the DataSource instance upon creation.
    These properties vary depending on the DataSource in use: see the
    documentation for your DataSource for details on the properties to
    use.</description>
    <config-property-name>ConnectionProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The connection retain mode. Possible options are
    "persistence-manager", "transaction", and "on-demand". Default value is
    "on-demand".</description>
    <config-property-name>ConnectionRetainMode</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>on-demand</config-property-value>
    </config-property>
    <config-property>
    <description>The number of seconds to wait between testing
    connections retrieved from the connection pool. Only valid when using the
    built-in Kodo connection pooling.</description>
    <config-property-name>ConnectionTestTimeout</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>10</config-property-value>
    </config-property>
    <config-property>
    <description>The URL for the data source.</description>
    <config-property-name>ConnectionURL</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The username for the connection listed in
    ConnectionURL.</description>
    <config-property-name>ConnectionUserName</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The name of the class to use for caching of data loaded
    from the data store. Must implement
    com.solarmetric.kodo.runtime.datacache.DataCache.</description>
    <config-property-name>DataCacheClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to pass to the
    class defined in com.solarmetric.kodo.DataCacheClass upon
    initialization.</description>
    <config-property-name>DataCacheProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The name of the default class to use for mapping
    persistent classes to the database. Must extend
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.</description>
    <config-property-name>DefaultClassMappingClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping</config-property-value>
    </config-property>
    <config-property>
    <description>The number of seconds that data in the data cache is
    valid for. A value of 0 or less means that by default, cached data does
    not time out.</description>
    <config-property-name>DefaultDataCacheTimeout</config-property-name>
    <config-property-type>java.lang.Double</config-property-type>
    <config-property-value>0.0</config-property-value>
    </config-property>
    <config-property>
    <description>The number of rows that will be pre-fetched when an
    element in a Query result is accessed.</description>
    <config-property-name>DefaultFetchBatchSize</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>10</config-property-value>
    </config-property>
    <config-property>
    <description>The threshold below which result lists will be
    completely instantiated upon their creation. A value of -1 will always
    force all results to be completely instantiated, thus disabling lazy
    result loading.</description>
    <config-property-name>DefaultFetchThreshold</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>30</config-property-value>
    </config-property>
    <config-property>
    <description>The name of the default class to use for managing
    subclass indicator columns. Must implement the
    com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProvider interface. See
    custom class indicator documentation for more information about subclass
    providers.</description>
    <config-property-name>DefaultSubclassProviderClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl</config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to pass to the
    class defined in
    com.solarmetric.kodo.impl.jdbc.DefaultSubclassProviderClass upon
    initialization.</description>
    <config-property-name>DefaultSubclassProviderProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The DBDictionary to use for this configuration. This is
    auto-detected based on the setting of javax.jdo.option.ConnectionURL, so
    you need only set this to override the default with your own custom
    DBDictionary or if you are using an unrecognized driver.</description>
    <config-property-name>DictionaryClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of name-value properties
    settings to pass to the dictionary defined by
    com.solarmetric.kodo.impl.jdbc.DictionaryClass. Many of the DBDictionary
    options are automatically configured by concrete subclasses of
    GenericDictionary. The defaults can, however, be overridden by using this
    property.</description>
    <config-property-name>DictionaryProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>If true, then Kodo JDO will allow the use of query
    filter extensions. See the query extensions documentation for more
    information.</description>
    <config-property-name>EnableQueryExtensions</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of fetch group names that
    PersistenceManagers will load by default when loading data from the
    database.</description>
    <config-property-name>FetchGroups</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>If true, then all fields of all classes in a given
    inheritance hierarchy will by default map into the least-derived type's
    default primary table. If false then a new default primary table will be
    created for each class in the inheritance hierarchy, and each type's
    declared fields will map to that table by default.</description>
    <config-property-name>FlatInheritanceMapping</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <description>A String value indicating whether or not Kodo should
    automatically flush modifications to the data store before executing
    queries.</description>
    <config-property-name>FlushBeforeQueries</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>with-connection</config-property-value>
    </config-property>
    <config-property>
    <description>If false, then the JDO implementation must consider
    modifications, deletions, and additions in the PersistenceManager
    transaction cache when executing a query inside a transaction. Else, the
    implementation is free to ignore the cache and execute the query directly
    against the data store.</description>
    <config-property-name>IgnoreCache</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>The license key provided to you by SolarMetric. Keys
    are available at www.solarmetric.com</description>
    <config-property-name>LicenseKey</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>xxxx</config-property-value>
    </config-property>
    <config-property>
    <description>The name of the class to use for obtaining a reference
    to the transaction manager in an enterprise environment. Must implement
    the com.solarmetric.kodo.ee.ManagedRuntime interface.</description>
    <config-property-name>ManagedRuntimeClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>com.solarmetric.kodo.ee.AutomaticManagedRuntime</config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to pass to the
    class defined in com.solarmetric.kodo.ManagedRuntimeClass upon
    initialization.</description>
    <config-property-name>ManagedRuntimeProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The maximum number of connections to pool. If all of
    these are in use, then PersistenceManager instances must wait for a
    connection to become available. This option has been removed from the
    specification, but we still use the javax.jdo.option for backwards
    compatibility.</description>
    <config-property-name>MaxPool</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>200</config-property-value>
    </config-property>
    <config-property>
    <description>The minimum number of connections to keep in the pool.
    This option has been removed from the specification, but we still use the
    javax.jdo.option for backwards compatibility.</description>
    <config-property-name>MinPool</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>2</config-property-value>
    </config-property>
    <config-property>
    <description>The number of milliseconds to wait for a pooled
    connection before throwing an exception if the pool is empty. This option
    has been removed from the specification, but we still use the
    javax.jdo.option for backwards compatibility.</description>
    <config-property-name>MsWait</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>30000</config-property-value>
    </config-property>
    <config-property>
    <description>If true, then the application plans to have multiple
    threads simultaneously accessing a single PersistenceManager, so measures
    must be taken to ensure that the implementation is thread-safe. Otherwise,
    the implementation need not address thread safety.</description>
    <config-property-name>Multithreaded</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>If true, then it is possible to read persistent data
    outside the context of a transaction. Otherwise, a transaction must be in
    progress in order read data.</description>
    <config-property-name>NontransactionalRead</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <description>If true, then it is possible to write to fields of a
    persistent-nontransactional object when a transaction is not in progress.
    If false, such a write will result in a JDOUserException.</description>
    <config-property-name>NontransactionalWrite</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>Selects between optimistic and pessimistic (data store)
    transactional modes.</description>
    <config-property-name>Optimistic</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>The name of the class that the
    PersistenceManagerFactory should create when creating a new
    PersistenceManagerImpl. Must extend
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.</description>
    <config-property-name>PersistenceManagerClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The name of the concrete implementation of
    javax.jdo.PersistenceManagerFactory that
    javax.jdo.JDOHelper.getPersistenceManagerFactory () should create. For
    Kodo JDO, this should be
    com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory or
    com.solarmetric.kodo.impl.jdbc.ee.EEPersistenceManagerFactory, or a custom
    extension of one of these types.</description>
    <config-property-name>PersistenceManagerFactoryClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory</config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to pass to the
    class defined in com.solarmetric.kodo.PersistenceManagerClass upon
    initialization.</description>
    <config-property-name>PersistenceManagerProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of classes that will be
    initialized whenever a new PersistenceManager is instantiated. This can be
    used to get around issues with application identity classes not being
    associated with their respective persistent classes.</description>
    <config-property-name>PersistentTypes</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The name of the class to use to proxy second class
    objects in managed instances. Must implement
    com.solarmetric.kodo.util.ProxyManager.</description>
    <config-property-name>ProxyManagerClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>com.solarmetric.kodo.util.SimpleProxyManager</config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to pass to the
    class defined in com.solarmetric.kodo.ProxyManagerClass upon
    initialization.</description>
    <config-property-name>ProxyManagerProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The name of the class to use for caching of queries
    loaded from the data store. Must implement
    com.solarmetric.kodo.runtime.datacache.QueryCache.</description>
    <config-property-name>QueryCacheClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>com.solarmetric.kodo.runtime.datacache.query.QueryCacheImpl</config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to pass to the
    class defined in com.solarmetric.kodo.QueryCacheClass upon
    initialization.</description>
    <config-property-name>QueryCacheProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>A list of query filter listeners to add to the default
    list of extensions. Ignored if com.solarmetric.kodo.EnableQueryExtensions
    is false.</description>
    <config-property-name>QueryFilterListeners</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The name of the class to use for communicating commit
    information among JVMs. Must implement
    com.solarmetric.kodo.runtime.event.RemoteCommitProvider.</description>
    <config-property-name>RemoteCommitProviderClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to pass to the
    class defined in com.solarmetric.kodo.RemoteCommitProviderClass upon
    initialization.</description>
    <config-property-name>RemoteCommitProviderProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>If true, then fields in a persistence-capable object
    that have been changed during a transaction will be rolled back to their
    original values upon a rollback. Otherwise, the values will not be changed
    upon rollback.</description>
    <config-property-name>RestoreValues</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <description>The name of the class that will be used as the
    Collection implementation for returning ResultList instances. It must be
    an instance of
    com.solarmetric.kodo.runtime.objectprovider.ResultList.</description>
    <config-property-name>ResultListClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The property string used to configure the instance of
    the ResultListClass.</description>
    <config-property-name>ResultListProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>If true, then fields in a persistence-capable object
    that have been read during a transaction must be preserved in memory after
    the transaction commits. Otherwise, persistence-capable objects must
    transition to the hollow state upon commit, meaning that subsequent reads
    will result in a database round-trip.</description>
    <config-property-name>RetainValues</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>The name of the class to use for generating sequence
    numbers when using data store identity. Must implement the
    com.solarmetric.kodo.impl.jdbc.SequenceFactory interface.</description>
    <config-property-name>SequenceFactoryClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>com.solarmetric.kodo.impl.jdbc.schema.DBSequenceFactory</config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to pass to the
    class defined in com.solarmetric.kodo.impl.jdbc.SequenceFactoryClass upon
    initialization.</description>
    <config-property-name>SequenceFactoryProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The class names of a SQLExecutionListener
    implementation to install on the SQLExecutionManager.</description>
    <config-property-name>SQLExecutionListenerClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The name of a custom SQLExecutionManager to be used for
    all issuance of SQL to the data store. Must implement
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManager.</description>
    <config-property-name>SQLExecutionManagerClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl</config-property-value>
    </config-property>
    <config-property>
    <description>The size of the PreparedStatement cache that is
    maintained in the DataSource implementation.</description>
    <config-property-name>StatementCacheMaxSize</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>70</config-property-value>
    </config-property>
    <config-property>
    <description>The time, in seconds, after which a JDBC query will be
    aborted if it has not yet returned any values. This value is simply passed
    to the JDBC driver's Statement.setTimeout method; Kodo does not perform
    any addition timeout actions. Note that many JDBC drivers either ignore
    this request, or improperly handle it, which may result in application
    deadlocks.</description>
    <config-property-name>StatementExecutionTimeout</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>-1</config-property-value>
    </config-property>
    <config-property>
    <description>If true, the Kodo runtime will automatically attempt to
    refresh the database schema when persistent classes are referenced,
    allowing the developer to bypass the schematool step. This property is
    only intended to be used for development. As automatic schema migration
    can result in data loss, this feature should never be enabled on a
    production system. Furthermore, this feature has serious adverse affects
    on Kodo's runtime performace. Ensure that it is disabled before doing any
    performance analysis.</description>
    <config-property-name>SynchronizeSchema</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>The name of the class to use to store
    persistence-capable objects involved in a PM's transaction cache. Must
    implement com.solarmetric.kodo.runtime.StateManagerSet.</description>
    <config-property-name>TransactionCacheClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>com.solarmetric.kodo.runtime.FifoStateManagerSet</config-property-value>
    </config-property>
    <config-property>
    <description>A space-separated list of properties to pass to the
    class defined in com.solarmetric.kodo.TransactionCacheClass upon
    initialization.</description>
    <config-property-name>TransactionCacheProperties</config-property-name>
    <config-property-type>java.lang.String</config-property

  • [JCA implementation]

    Hello
    I'm back with my "proprietary messaging system implementation".
    I'm working on a JCA connector.
    But I have a silly question :-) .
    I don't want to use CCI but my own "client API".
    So I should not implement "Connection, ConnectionFactory, RecordFactory...", in short I should not
    implement any of the Interfaces of javax.resource.cci.
    Am I right?
    And if I'm right, how can I do with the ra.xml that needs to know what are my
    interfaces and implementing classes for "connection" and "connectionfactory" ?
    I mean, what should I put in here?
    I'm a little confused...
    Thanks for your help.
    Mansuy DEJEAN
    PROSODIE
    http://www.prosodie.com

    OK, so you would specify different interfaces and
    classes in the ra.xml file, for connection factory and
    connection interfaces and implementations?Yes.
    It makes
    sense if, in your case, you're using JMS, and I guess
    JDBC as well, as there are connection factory and
    connection interfaces in those APIs. Would it make
    sense to make up your own connection factory instead
    of implementing the cci one otherwise?One must create a connection factory but the type doesn't matter because javax.resource.spi.ManagedConnectionFactory's createConnectionMethod returns an Object:
      Object createConnectionFactory(ConnectionManager connectionManager) throws ResourceException;
      Object createConnectionFactory() throws ResourceException;The connection factories are specified in ra.xml (excerpt of outbound stuff):
        <outbound-resourceadapter>
          <connection-definition>
            <managedconnectionfactory-class>
              com.swiftmq.connector.v15.outbound.ManagedConnectionFactoryImpl
            </managedconnectionfactory-class>
            <config-property>
              <config-property-name>ConnectionFactoryName</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
              <config-property-value>QueueConnectionFactory</config-property-value>
            </config-property>
            <config-property>
              <config-property-name>UserName</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
            </config-property>
            <config-property>
              <config-property-name>Password</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
            </config-property>
            <connectionfactory-interface>
              javax.jms.QueueConnectionFactory
            </connectionfactory-interface>
            <connectionfactory-impl-class>
              com.swiftmq.connector.v15.outbound.ConnectionFactoryImpl
            </connectionfactory-impl-class>
            <connection-interface>
              javax.jms.QueueConnection
            </connection-interface>
            <connection-impl-class>
              com.swiftmq.connector.v15.outbound.QueueConnectionImpl
            </connection-impl-class>
          </connection-definition>
          <connection-definition>
            <managedconnectionfactory-class>
              com.swiftmq.connector.v15.outbound.ManagedConnectionFactoryImpl
            </managedconnectionfactory-class>
            <config-property>
              <config-property-name>ConnectionFactoryName</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
              <config-property-value>TopicConnectionFactory</config-property-value>
            </config-property>
            <config-property>
              <config-property-name>UserName</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
            </config-property>
            <config-property>
              <config-property-name>Password</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
            </config-property>
            <connectionfactory-interface>
              javax.jms.TopicConnectionFactory
            </connectionfactory-interface>
            <connectionfactory-impl-class>
              com.swiftmq.connector.v15.outbound.ConnectionFactoryImpl
            </connectionfactory-impl-class>
            <connection-interface>
              javax.jms.TopicConnection
            </connection-interface>
            <connection-impl-class>
              com.swiftmq.connector.v15.outbound.TopicConnectionImpl
            </connection-impl-class>
          </connection-definition>
          <connection-definition>
            <managedconnectionfactory-class>
              com.swiftmq.connector.v15.outbound.ManagedConnectionFactoryImpl
            </managedconnectionfactory-class>
            <config-property>
              <config-property-name>ConnectionFactoryName</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
              <config-property-value>ConnectionFactory</config-property-value>
            </config-property>
            <config-property>
              <config-property-name>UserName</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
            </config-property>
            <config-property>
              <config-property-name>Password</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
            </config-property>
            <connectionfactory-interface>
              javax.jms.ConnectionFactory
            </connectionfactory-interface>
            <connectionfactory-impl-class>
              com.swiftmq.connector.v15.outbound.ConnectionFactoryImpl
            </connectionfactory-impl-class>
            <connection-interface>
              javax.jms.Connection
            </connection-interface>
            <connection-impl-class>
              com.swiftmq.connector.v15.outbound.ConnectionImpl
            </connection-impl-class>
          </connection-definition>
          <transaction-support>XATransaction</transaction-support>
          <authentication-mechanism>
            <authentication-mechanism-type>BasicPassword</authentication-mechanism-type>
            <credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
          </authentication-mechanism>
          <reauthentication-support>false</reauthentication-support>
        </outbound-resourceadapter>

  • OSB: Cannot acquire data source error while using JCA DBAdapter in OSB

    Hi All,
    I've entered 'Cannot acquire data source' error while using JCA DBAdapter in OSB.
    Error infor are as follows:
    The invocation resulted in an error: Invoke JCA outbound service failed with application error, exception: com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/DBAdapter1/RetrievePersonService [ RetrievePersonService_ptt::RetrievePersonServiceSelect(RetrievePersonServiceSelect_inputParameters,PersonTCollection) ] - WSIF JCA Execute of operation 'RetrievePersonServiceSelect' failed due to: Could not create/access the TopLink Session.
    This session is used to connect to the datastore.
    Caused by Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException
    Exception Description: Cannot acquire data source [jdbc/soademoDatabase].
    Internal Exception: javax.naming.NameNotFoundException: Unable to resolve 'jdbc.soademoDatabase'. Resolved 'jdbc'; remaining name 'soademoDatabase'.
    ; nested exception is:
    BINDING.JCA-11622
    Could not create/access the TopLink Session.
    This session is used to connect to the datastore.
    JNDI Name for the Database pool: eis/DB/soademoDatabase
    JNDI Name for the Data source: jdbc/soademoDatabase
    I created a basic DBAdapter in JDeveloper, got the xsd file, wsdl file, .jca file and the topLink mapping file imported them into OSB project.
    Then I used the .jca file to generate a business service, and tested, then the error occurs as described above.
    Login info in RetrievePersonService-or-mappings.xml
    <login xsi:type="database-login">
    <platform-class>org.eclipse.persistence.platform.database.oracle.Oracle9Platform</platform-class>
    <user-name></user-name>
    <connection-url></connection-url>
    </login>
    jca file content are as follows:
    <adapter-config name="RetrievePersonService" adapter="Database Adapter" wsdlLocation="RetrievePersonService.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/DB/soademoDatabase" UIConnectionName="Connection1" adapterRef=""/>
    <endpoint-interaction portType="RetrievePersonService_ptt" operation="RetrievePersonServiceSelect">
    <interaction-spec className="oracle.tip.adapter.db.DBReadInteractionSpec">
    <property name="DescriptorName" value="RetrievePersonService.PersonT"/>
    <property name="QueryName" value="RetrievePersonServiceSelect"/>
    <property name="MappingsMetaDataURL" value="RetrievePersonService-or-mappings.xml"/>
    <property name="ReturnSingleResultSet" value="false"/>
    <property name="GetActiveUnitOfWork" value="false"/>
    </interaction-spec>
    </endpoint-interaction>
    </adapter-config>
    RetrievePersonService_db.wsdl are as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <WL5G3N0:definitions name="RetrievePersonService-concrete" targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/KnowledeMgmtSOAApplication/AdapterJDevProject/RetrievePersonService" xmlns:WL5G3N0="http://schemas.xmlsoap.org/wsdl/" xmlns:WL5G3N1="http://xmlns.oracle.com/pcbpel/adapter/db/KnowledeMgmtSOAApplication/AdapterJDevProject/RetrievePersonService" xmlns:WL5G3N2="http://schemas.xmlsoap.org/wsdl/soap/">
    <WL5G3N0:import location="RetrievePersonService.wsdl" namespace="http://xmlns.oracle.com/pcbpel/adapter/db/KnowledeMgmtSOAApplication/AdapterJDevProject/RetrievePersonService"/>
    <WL5G3N0:binding name="RetrievePersonService_ptt-binding" type="WL5G3N1:RetrievePersonService_ptt">
    <WL5G3N2:binding style="document" transport="http://www.bea.com/transport/2007/05/jca"/>
    <WL5G3N0:operation name="RetrievePersonServiceSelect">
    <WL5G3N2:operation soapAction="RetrievePersonServiceSelect"/>
    <WL5G3N0:input>
    <WL5G3N2:body use="literal"/>
    </WL5G3N0:input>
    <WL5G3N0:output>
    <WL5G3N2:body use="literal"/>
    </WL5G3N0:output>
    </WL5G3N0:operation>
    </WL5G3N0:binding>
    <WL5G3N0:service name="RetrievePersonService_ptt-bindingQSService">
    <WL5G3N0:port binding="WL5G3N1:RetrievePersonService_ptt-binding" name="RetrievePersonService_ptt-bindingQSPort">
    <WL5G3N2:address location="jca://eis/DB/soademoDatabase"/>
    </WL5G3N0:port>
    </WL5G3N0:service>
    </WL5G3N0:definitions>
    Any suggestion is appricated .
    Thanks in advance!
    Edited by: user11262117 on Jan 26, 2011 5:28 PM

    Hi Anuj,
    Thanks for your reply!
    I found that the data source is registered on server soa_server1 as follows:
    Binding Name: jdbc.soademoDatabase
    Class: weblogic.jdbc.common.internal.RmiDataSource_1033_WLStub
    Hash Code: 80328036
    toString Results: ClusterableRemoteRef(8348400613458600489S:10.2.1.143:[8001,8001,-1,-1,-1,-1,-1]:base_domain:soa_server1 [8348400613458600489S:10.2.1.143:[8001,8001,-1,-1,-1,-1,-1]:base_domain:soa_server1/291])/291
    Binding Name: jdbc.SOADataSource
    Class: weblogic.jdbc.common.internal.RmiDataSource_1033_WLStub
    Hash Code: 92966755
    toString Results: ClusterableRemoteRef(8348400613458600489S:10.2.1.143:[8001,8001,-1,-1,-1,-1,-1]:base_domain:soa_server1 [8348400613458600489S:10.2.1.143:[8001,8001,-1,-1,-1,-1,-1]:base_domain:soa_server1/285])/285
    I don't know how to determine which server the DBAdapter is targetted to.
    But I found the following information:
    Under Deoloyment->DBAdapter->Monitoring->Outbound Connection Pools
    Outbound Connection Pool Server State Current Connections Created Connections
    eis/DB/SOADemo AdminServer Running 1 1
    eis/DB/SOADemo soa_server1 Running 1 1
    eis/DB/soademoDatabase AdminServer Running 1 1
    eis/DB/soademoDatabase soa_server1 Running 1 1
    The DbAdapter is related to the following files:
    C:\ Oracle\ Middleware\ home_11gR1\ Oracle_SOA1\ soa\ connectors\ DbAdapter. rar
    C:\ Oracle\ Middleware\ home_11gR1\ Oracle_SOA1\ soa\ DBPlan\ Plan. xml
    I unzipped DbAdapter.rar, opened weblogic-ra.xml and found that there's only one data source is registered:
    <?xml version="1.0"?>
    <weblogic-connector xmlns="http://www.bea.com/ns/weblogic/90">
    <enable-global-access-to-classes>true</enable-global-access-to-classes>
    <outbound-resource-adapter>
    <default-connection-properties>
    <pool-params>
    <initial-capacity>1</initial-capacity>
    <max-capacity>1000</max-capacity>
    </pool-params>
    <properties>
    <property>
    <name>usesNativeSequencing</name>
    <value>true</value>
    </property>
    <property>
    <name>sequencePreallocationSize</name>
    <value>50</value>
    </property>
    <property>
    <name>defaultNChar</name>
    <value>false</value>
    </property>
    <property>
    <name>usesBatchWriting</name>
    <value>true</value>
    </property>
    <property>
    <name>usesSkipLocking</name>
    <value>true</value>
    </property>
    </properties>
              </default-connection-properties>
    <connection-definition-group>
    <connection-factory-interface>javax.resource.cci.ConnectionFactory</connection-factory-interface>
    <connection-instance>
    <jndi-name>eis/DB/SOADemo</jndi-name>
              <connection-properties>
                   <properties>
                   <property>
                   <name>xADataSourceName</name>
                   <value>jdbc/SOADataSource</value>
                   </property>
                   <property>
                   <name>dataSourceName</name>
                   <value></value>
                   </property>
                   <property>
                   <name>platformClassName</name>
                   <value>org.eclipse.persistence.platform.database.Oracle10Platform</value>
                   </property>
                   </properties>
              </connection-properties>
    </connection-instance>
    </connection-definition-group>
    </outbound-resource-adapter>
    </weblogic-connector>
    Then I decided to use eis/DB/SOADemo for testing.
    For JDeveloper project, after I deployed to weblogic server, it works fine.
    But for OSB project referencing wsdl, jca and mapping file from JDeveloper project, still got the same error as follows:
    BEA-380001: Invoke JCA outbound service failed with application error, exception:
    com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/DBAdapterTest/DBReader [ DBReader_ptt::DBReaderSelect(DBReaderSelect_inputParameters,PersonTCollection) ] - WSIF JCA Execute of operation 'DBReaderSelect' failed due to: Could not create/access the TopLink Session.
    This session is used to connect to the datastore.
    Caused by Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException
    Exception Description: Cannot acquire data source [jdbc/SOADataSource].
    Internal Exception: javax.naming.NameNotFoundException: Unable to resolve 'jdbc.SOADataSource'. Resolved 'jdbc'; remaining name 'SOADataSource'.
    ; nested exception is:
    BINDING.JCA-11622
    Could not create/access the TopLink Session.
    This session is used to connect to the datastore.
    Caused by Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException
    Exception Description: Cannot acquire data source [jdbc/SOADataSource].
    Internal Exception: javax.naming.NameNotFoundException: Unable to resolve 'jdbc.SOADataSource'. Resolved 'jdbc'; remaining name 'SOADataSource'.
    You may need to configure the connection settings in the deployment descriptor (i.e. DbAdapter.rar#META-INF/weblogic-ra.xml) and restart the server. This exception is considered not retriable, likely due to a modelling mistake.
    It almost drive me crazy!!:-(
    What's the purpose of 'weblogic-ra.xml' under the folder of 'C:\Oracle\Middleware\home_11gR1\Oracle_OSB1\lib\external\adapters\META-INF'?
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Maybe you are looking for

  • Reporting service point

    HI I have bacis questtaion . I install in the one machine sccm 2012 and in the second sql 2008 r2 SP1 CU9 . All work ok , but after I try add Reporting service point role the reports is not in the sql machine not created :-( . I look to report site f

  • Why does it not use the index?

    L.S., We are using a table called IT_RFC_REGISTRATION. It is a relatively big table for our application. Its primary key is RFCNR, each new RFCNR getting the next value. Now for my intranet report I am interested in the last 40 records. But when I ex

  • Best way to start on capture with no timecode?

    To my dismay, I quickly discovered that my cam didn't have its timecode set correctly. Therefore, when I captured, I got a HUGE continuous clip. 1. What is the best way to work with this mammoth clip? I'd love to be able to quickly and manually cut e

  • Change "show in finder" icon to top

    Hello, whenever i click a folder in my dock like the download folder or the Apps folder i can see all my items in it and at the end i can see the icon with the arrow to show in finder that folder does anybody know if  there is a way to move that "sho

  • I have the latest version of Firefox (8.01), yet it still tells me I am using an old version.

    I have installed Firefox 8.01 (latest currently), yet on my start-up page, it is still saying "You're not on the latest version of Firefox. Upgrade today to get the best of the Web! " What gives?