1 Reply Latest reply on Jan 20, 2003 8:36 AM by David Jencks

    transaction-support tag in ra.xml

    Rick Gibbs Newbie

      While trying to deploy coherence in 3.2b2 I ran into some problems accessing the cache which appeared to deploy correctly. When I asked tangosol about this issue, the response I got is below. I was wondering if this is something that others have seen or could shed a little light on:

      Currently the Coherence JCA adapter only supports local transactions, which is reflected in the deployment descriptor "ra.xml":


      Following is a quote from section 6.3.1 of J2EE Connector Architecture Specification:

      "Depending on the transaction support level of a resource adapter, these methods should raise appropriate exceptions. For example, if the transaction support level for a resource adapter is NoTransaction, an invocation of get XAResource method should throw a ResourceException."

      According to this requirement Coherence adapter throws the
      javax.resource.NotSupportedException (extending javax.resource.ResourceException) that you see.

      It looks like JBoss ignores the value of "transaction-support" element.

      I found a couple of threads on the JBoss forum that seem to point out to similar problems (some people indicate that the LocalTransaction support was working in 2.4.4 an broke in 3.0)

        • 1. javassist tries to call a method with wrong return type
          David Jencks Master


          I get the following exception:

          Exception in thread "main" java.lang.NoSuchMethodError: mycompany.Type.getValue()Ljava/lang/String;

          mycompany.Type is only

          public interface Type
          Object getValue();

          The generated javassist method body is the following:

          mycompany.Type type = getType();
          Object value = type.getValue();
          return ($r)value;

          the return type of the method is String, so ($r) should do a cast to String.

          Where is the error?
          Why tries Javassist to call the getValue()Ljava/lang/String method instead of getValue()Ljava/lang/Object