Skip to Main Content

Cloud Platform

DB Transaction Commit not working on JCS-SX env

3494680Jun 29 2017 — edited Jul 4 2017

Hi All,

We are facing issues while using ADF application deployed on JCS-SX environment.

The Application has Application Module exposed as service interface, The AM has a method which saves some data into DB tables using getDBTransaction().commit();
The DB used by the AM to save the data is the default schema provided with the JCS-SX environment.
The issue is the records are not getting saved to the DB, and the error returned by the service is as below when called from the Soap client or Browser
“JDBC driver does not support XA, hence cannot be a participant in two-phase commit. To force this participation, set the GlobalTransactionsProtocol attribute to LoggingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source = apex”

Since we are using the JCS-SX provided schema as service, there is no control to make the settings on the JDBC driver as per the error.

PS : The version of JCS-SX that we are using is Version #17.2.6 and the same code worked in earlier version of JCS-SX which is decommissioned

The code snippet for commtting transaction is below
        if(reportParameters.hasNext()){
            // Table already have the report name
            if(_logger.isSevere()){
                _logger.severe("Inside if HasNext");
            }
            Row row_reportParameters = reportParameters.next();
            row_reportParameters.setAttribute("ReportDataFetchTime", systemTime);
          
        }
        else{
            // Create a row in table with the report parameters
            if(_logger.isSevere()){
                _logger.severe("Inside else newdata");
            }
            Row row_reportParameters = reportParameters.createRow();
            row_reportParameters.setAttribute("ErpCloudReportName", reportName);
            row_reportParameters.setAttribute("ReportXdoLocation", reportAbsolutePath);
            row_reportParameters.setAttribute("ReportDataFetchTime", systemTime);
            reportParameters.insertRow(row_reportParameters);
         
        }
        this.getDBTransaction().commit();
        if(_logger.isSevere()){
            _logger.severe("After Commit");
        }

Can you please suggest if there is any ways to resolve this issue.

Thanks,
Krishna

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 1 2017
Added on Jun 29 2017
1 comment
283 views