2 Replies Latest reply: Oct 22, 2012 3:49 PM by 915367 RSS

    TPENOENT recieved: JCA TUXEDO Adapter

      Hello, Firstly, Please pardon me for the long post.
      Wanted to include as much information as possible.
      Need help to figure out why is this setup not working.
      We are getting TPENOENT when we try to invoke the service exported by JCA TUXEDO Adapter
      Following is the configuration/setup we are trying to use
      Are we missed something?

      Please see section 7 below for more observations.

      Sincere Regards,

      Section 1
      We are trying to implement the following flow.

      Tuxedo client (requireing data from a web service) ->
      Tuxedo Application server ->
      **JCA Adapter on JBOSS 6 -> External Web Service*
      Section 2
      Currently the JCA adapter is configured to use POJO
      The contents of the custom resource file for the adapter, custom.rar, look like:

      C:\tuxedo_jca12110\adapter>"c:\Program Files (x86)\Java\jdk1.6.0_35\bin\jar.exe" -cvf ..\custom.rar *
      added manifest
      adding: adapter.properties(in = 27771) (out= 5695)(deflated 79%)
      adding: adapter_ja.properties(in = 54221) (out= 5749)(deflated 89%)
      adding: com.bea.core.i18n_1.4.0.0.jar(in = 29364) (out= 25549)(deflated 12%)
      adding: com.bea.core.jatmi_2.0.1.0.jar(in = 504132) (out= 477564)(deflated 5%)
      adding: com.oracle.tuxedo.adapter_1.4.0.0.jar(in = 648014) (out= 622330)(deflated 3%)
      adding: dmconfig.xml(in = 1714) (out= 646)(deflated 62%)
      adding: javax.ejb_3.0.1.jar(in = 25272) (out= 18863)(deflated 25%)
      adding: javax.transaction_1.0.0.0_1-1.jar(in = 9189) (out= 6646)(deflated 27%)
      ignoring entry META-INF/
      ignoring entry META-INF/MANIFEST.MF
      adding: META-INF/ra.xml(in = 2781) (out= 719)(deflated 74%)
      adding: tja.xsd(in = 24057) (out= 3174)(deflated 86%)
      Section 3

      <?xml version="1.0" encoding="UTF-8"?><TuxedoConnector>
      <LocalAccessPoint name="WSDOM">
      <RemoteAccessPoint name="APPDOM">
      <SessionProfile name="profile_1">
      <Session name="session_1">
      <Export name="ExternalWebService">
      <SourceLocation>C:\some path\classnameimplemention.jar</SourceLocation>

      has a function with the following signature
      public void ExternalWebService (TPServiceInformation tpsvcinfo, TPRequestAsyncReplyImpl reply) throws TPException
      TypedString incomingString;
      incomingString = (TypedString)tpsvcinfo.getServiceData();
      System.out.println("ExternalWebService: Processed the incoming data...");

      Section 4

      Booting JBOSS produces the following log
      04:03:12,091 INFO [TuxedoLogger] Tuxedo JCA Adapter, release 12c(12.1.1), resource archive version, build date: June 27 2012.
      04:03:12,107 INFO [TuxedoLogger] No key file configured for Tuxedo JCA Adapter.
      04:03:12,107 INFO [TuxedoLogger] INFO: Use Local to create default session profile property CredentialPolicy.
      04:03:12,123 INFO [TuxedoLogger] INFO: Use 0 to create default session profile property MinEncryptBits.
      04:03:12,123 INFO [TuxedoLogger] INFO: Use 128 to create default session profile property MaxEncryptBits.
      04:03:12,123 INFO [TuxedoLogger] INFO: Use NONE to create default session profile property Security.
      04:03:12,138 INFO [TuxedoLogger] INFO: Use ON_STARTUP to create default session profile property ConnectionPolicy.
      04:03:12,138 INFO [TuxedoLogger] INFO: Use 60,000 to create default session profile property BlockTime.
      04:03:12,138 INFO [TuxedoLogger] INFO: Use false to create default session profile property Interoperate.
      04:03:12,154 INFO [TuxedoLogger] INFO: Use 60 to create default session profile property RetryInterval.
      04:03:12,154 INFO [TuxedoLogger] INFO: Use 9,223,372,036,854,775,807 to create default session profile property MaxRetries.
      04:03:12,154 INFO [TuxedoLogger] INFO: Use 2,147,483,647 to create default session profile property CompressionLimit.
      04:03:12,154 INFO [TuxedoLogger] INFO: Use 0 to create default session profile property KeepAlive.
      04:03:12,169 INFO [TuxedoLogger] INFO: Use 10,000 to create default session profile property KeepAliveWait.
      04:03:12,169 INFO [TuxedoLogger] INFO: Default session profile created.
      04:05:09,762 INFO [TuxedoLogger] factory = null
      04:07:08,295 INFO [TuxedoLogger] name = *
      04:07:08,295 INFO [TuxedoLogger] iname = *
      04:07:08,296 WARNING [TuxedoLogger] Default global imported service activated!

      Section 5

      The TUXEDO application has a domain configured to connect to the JCA Adapter using GWTDOMAIN which imports ExternalWebService (in DM_REMOTE_SERVICES)
      which has a connection policy of ON_STARTUP
      when the GWTDOMAIN comes up we see the following on the JBOSS console:
      04:08:40,764 INFO [STDOUT] <Thu Oct 11 04:08:40 CDT 2012> <Debug> <WTC> <WL-180072> <+++++ /tplle/crypFinishTwo/send_key(16) +++++>
      04:08:40,767 INFO [STDOUT] <Thu Oct 11 04:08:40 CDT 2012> <Debug> <WTC> <WL-180113> <3C BB 26 E6 30 75 E3 32 F9 1C 40 F9 F4 73 9F ED
      04:08:40,767 INFO [STDOUT] <Thu Oct 11 04:08:40 CDT 2012> <Debug> <WTC> <WL-180073> <+++++ END +++++>
      04:08:40,768 INFO [STDOUT] <Thu Oct 11 04:08:40 CDT 2012> <Debug> <WTC> <WL-180072> <+++++ /tplle/crypFinishTwo/recv_key(16) +++++>
      04:08:40,768 INFO [STDOUT] <Thu Oct 11 04:08:40 CDT 2012> <Debug> <WTC> <WL-180113> <83 A8 7E 43 90 FB 33 05 84 24 62 1C 28 26 F7 A3
      04:08:40,768 INFO [STDOUT] <Thu Oct 11 04:08:40 CDT 2012> <Debug> <WTC> <WL-180073> <+++++ END +++++>
      04:08:40,769 INFO [com.oracle.tuxedo.utils.TuxedoLogger] Accepted connection from remote domain APPDOM.

      Section 6

      The JBOSS classpath does include the classnameimplemenation.jar as noted in the JCA documentation

      CLASSPATH: C:\Program Files (x86)\Java\jdk1.6.0_35\lib\tools.jar;C:\Users\Public\Software\jboss-6.0.0.Final\bin\run.jar;C:\Users\Public\Software\jboss-6.0.0.Final\server\default\lib\jboss-j2ee.jar;C:\somelocation\wsfields.jar;C:\tuxedo_jca12110\adapter\com.bea.core.jatmi_2.0.1.0.jar;C:\tuxedo_jca12110\adapter\com.bea.core.i18n_1.4.0.0.jar;C:\tuxedo_jca12110\adapter\com.oracle.tuxedo.adapter_1.4.0.0.jar;*C:\some path\classnameimplemention.jar*

      Section 7

      To make the service call we execute tpcall from an ordinary tuxedo client
      ret = tpcall("ExternalWebService", (char *)sendbuf, 0, (char **)&rcvbuf, &rcvlen, (long)0);

      *1. the call returns immediately with TPENOENT (tperrno=6)*
      The psc command in tmadmin does show that 1 request was "DONE" by ExternalWebService on GWTDOMAIN.

      However there is no log in the JBOSS server side even thought ra.xml in the custom.rar has

      So there is no way to tell if the request reaches the JBOSS.

      *2. The only way I was able to figure out that it reaches JBOSS is by copiling the fully.qualified.classname class is copiled into C:\some path\classnameimplemention.jar with JDK1.7 and starting the JBOSS using Java 1.6.*
      On execution of the TUXEDO client, We see:
      04:09:46,954 ERROR [org.jboss.threads.executor] Task execution failed for task WorkWrapper@1426497[workManger=org.jboss.resource.work.JBossWorkManager@1da11d8 work=com.oracle.tuxedo.adapter.tja.TJATaskHandler@1c9b12c]: java.lang.UnsupportedClassVersionError: fully/qualified/classname: Unsupported major.minor version 51.0
      at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_35]

      And we get TPETIME on the TUXEDO client

      This proves that the request is reaching JBOSS.
      However when complied with JDK 1.6, the TUXEDO client recieves TPENOENT as mention in point #1 above.

      Section 8
      Just for reference the ra.xml looks like:
      <?xml version="1.0" encoding="UTF-8"?>
      <connector xmlns="http://java.sun.com/xml/ns/j2ee"
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
      <display-name>Tuxedo JCA Adapter</display-name>
      <description>Tuxedo SALT license</description>

      Edited by: user1912100 on Oct 11, 2012 4:40 AM
        • 1. Re: TPENOENT recieved: JCA TUXEDO Adapter
          Your posting does not show Tuxedo /Domain's DMCONFIG so can not say whether there is a mismatch in configuration. Did you configure the "ExternalWebService" as DM_REMOTE_SERVICES (or DM_IMPORT) in Tuxedo's DMCONFIG? If you do, you can change traceLevel to something like 1000000 to check for the TuxedoLogger output. Or you can specifically enable different components and see the trace.

          component debugs that might be helpful in this situation are


          for instance, in ra.xml

          You probably also need to enable java logging at FINEST level by editing $JDK_HOME/jre/lib/logging.properties file before you start your JBOSS to get full tracing output from Tuxedo JCA Adapter.

          For POJO, assuming the request reached execution stage. TPENOENT usually means
          1. ClassNotFoundException
          2. NoSuchMethodException

          1. IllegalAccessException
          2. InvocationTargetException
          3. any other exception while executing Work.
          • 2. Re: TPENOENT recieved: JCA TUXEDO Adapter
            Sorry for the delayed response. after checking for a couple of days I had given up thinking that I would not get an reply to my message.

            Yes, we did add the service int he DM_REMOTE section of the DMCONFIG file.

            Thank you for your reply. This is very helpful in development with the TUXEDO JCA Adapter.

            We were able to see the necessary information by increasing the log level and figure out that was happening behind the scenes that was causing the TPNOENT.
            There was a was class missing in the class path.
            After fixing it we are able to get the POJO library working for us. the service gets executed with no errors when the jars are deployed on JBOSS.

            However, when ported the code on to Weblogic 12c the (same jars), the service does get called, the service returns as well with the appropriate result.
            However, we get the following warning towards the end of the service routine:

            +10/22/12:3:28:03 PM:13:WARN[POJOProcessor15,run]TJA_0414:WARN: Exception InvocationTargetException occurred during POJO service servicename invocation.(null)+
            +10/22/12:3:28:03 PM:12:WARN[InboundEJBRequest,execute]TJA_0416:WARN: Invocation exception inbound POJO service WSAcctInq, exception message: error code: 0+
            +10/22/12:3:28:03 PM:12:INFO[,]instanceof WorkCompletedException+
            +10/22/12:3:28:03 PM:12:INFO[,]mdb_errmsg = error code: 0+
            +10/22/12:3:28:03 PM:12:INFO[,]mdb_status = 4+
            +10/22/12:3:28:03 PM:12:INFO[,]mdb_errcode= 0+

            Why would this error show up in Weblogic and not in JBOSS?
            The POJO was compiled with simple javac (through Netbeans) - the did not have any external (platform (Weblogic or Jboss) specific dependencies)

            Thank you again for the valuable information in your previous reply.

            Sincere Regards,