Uploaded image for project: 'Tuscany'
  1. Tuscany
  2. TUSCANY-1355

DAS-RDB does not support Oracle or SqlServer well

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • Java-DAS-M2
    • Java-DAS-Next
    • Java DAS RDB
    • None
    • DAS-RDB to access the database of Oracle

    Description

      I have used the following simple codes to use DAS to access an Oracle database.

      //String url = "jdbc:db2j:/RAD6/runtimes/base_v6/cloudscape/DAS";
      String url = "jdbc:oracle:thin:wcs/wcs1@//raptor08:1521/g10";
      String query = "select * from MYCUSTOMER";
      String query_result="";
      Connection conn = null;
      // Class.forName("com.ibm.db2j.jdbc.DB2jDriver").newInstance();

      DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

      conn = DriverManager.getConnection(url);
      conn.setAutoCommit(false);

      DAS das = DAS.FACTORY.createDAS(conn);

      Command readStores = das.createCommand(query);
      DataObject root = (DataObject)readStores.executeQuery();

      DataObject cus1 = root.getDataObject("MYCUSTOMER[1]");

      System.out.println(root.getInt("MYCUSTOMER[1]/ID"));
      System.out.println(root.getString("MYCUSTOMER[1]/NAME"));

      It will caused the following error:

      Exception in thread "main" java.lang.IllegalArgumentException: Class 'DataGraphRoot' does not have a feature named 'MYCUSTOMER'
      at org.apache.tuscany.sdo.util.DataObjectUtil.getOpenFeature(DataObjectUtil.java:1804)
      at org.apache.tuscany.sdo.util.DataObjectUtil.getProperty(DataObjectUtil.java:2367)
      at org.apache.tuscany.sdo.impl.DataObjectImpl.getProperty(DataObjectImpl.java:1287)
      at org.apache.tuscany.sdo.util.DataObjectUtil$Accessor.setFeatureName(DataObjectUtil.java:2054)
      at org.apache.tuscany.sdo.util.DataObjectUtil$Accessor.process(DataObjectUtil.java:2161)
      at org.apache.tuscany.sdo.util.DataObjectUtil$Accessor.init(DataObjectUtil.java:1940)
      at org.apache.tuscany.sdo.util.DataObjectUtil$Accessor.create(DataObjectUtil.java:1860)
      at org.apache.tuscany.sdo.util.DataObjectUtil.get(DataObjectUtil.java:744)
      at org.apache.tuscany.sdo.impl.DataObjectImpl.get(DataObjectImpl.java:216)
      at org.apache.tuscany.sdo.impl.DataObjectImpl.getDataObject(DataObjectImpl.java:326)
      at TestDAS.main(TestDAS.java:47)

      But the same code and same config will work well for cloudscape database.

      There are also some other problems for Oracle, seems DAS can't work for oracle.

      Will someone look into this problem?

      Thanks.

      Attachments

        Activity

          People

            Unassigned Unassigned
            wangful wangful
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: