Forum Stats

  • 3,815,264 Users
  • 2,258,987 Discussions
  • 7,893,019 Comments

Discussions

DB Transaction Commit not working on JCS-SX env

3494680
3494680 Member Posts: 1
edited Jul 4, 2017 2:47AM in Java Cloud Service

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

Answers

This discussion has been closed.