Creator uses a lot of features in the JDBC 3.0 specification to create a good design time experience. For instance it uses table metadata to prepopulate the columns in the table component. But not all JDBC drivers support everything we would need and especially the Oracle JDBC drivers don’t give us the metadata when we need them.

That’s normally not a problem because Creator comes with a set of JDBC drivers, which will be used at design time and for the internal deployments. But those drivers are licensed only with Creator or with the Sun Java Enterprise System’s Application or Web Server’s. So if you want to deploy the application to a different container, you’ll have to find JDBC driver’s.

You don’t have to use the same drivers for the development and deployment. So it’s ok, to use Creator’s Oracle drivers at design time and Oracle’s set for the deployment. You could even use a completely different DB as long as the table layout etc. is the same;-)

I (or our SQA) tested the following drivers with a Oracle 9i database:

  • The Oracle JDBC drivers version 10.2.0.1.0 against a SJS Application Server PE 8.1 and Tomcat 5.5.9. They work fine but need a bit more preparation for updates. Try the following steps if you see

    java.sql.SQLException: attempt to update a row that has been updated or deleted by another user
    

    in the server’s log from the commitChanges() call:

    • After you’ve dropped your DataSource onto the project, go to the SessionBean source of that project and expand it’s constructor.

    • Add something like to following code after the Creator inserted initialization code:

      try {
      RowSet.setColumnTableNames(new String[]
      { ", ... });
      } catch(Exception e) {
      throw e instanceof FacesException ?
      (FacesException) e :
      new FacesException(e);
      }
      

    That should help for the update problem. Please let us know here or better in the Creator forum, if you still have problems.

  • The JDBC drivers included with the BEA WebLogic 8.1.4. They work similar to the Oracle drivers above and you might also need the little extra code.

  • The Oranox drivers from i-net software. I tested them in my Tomcat 5.5.9 installation. They did not seem to need the extra code for the DB updates.

I configured Tomcat in it’s global server.xml. I don’t know if that’s the best way, but it was certainly the easiest way. It looked like:

<!--
-->

Of cource, Oracle is only one database but I believe the general idea of possibly using different JDBC drivers will work for others as well.