9 Replies Latest reply on Mar 6, 2009 4:51 PM by mazz

    Oracle 11g support

    stfkbf

      Hi

      I am unsure if this is the right forum for this.

      In the rhq-installer.war there is a class org.rhq.core.db.DataTypeFactory

      This class has the following if structure inside it:

      else if (db_name.indexOf("oracle") != -1) {
      if (db_version.startsWith("oracle8"))
      database_type_class = Oracle8DatabaseType.class;
      else if (db_version.startsWith("oracle9"))
      database_type_class = Oracle9DatabaseType.class;
      else if (db_version.startsWith("oracle database 10g"))
      database_type_class = Oracle10DatabaseType.class;
      }

      Would it be possible to have this extended as follows:

      else if (db_name.indexOf("oracle") != -1) {
      if (db_version.startsWith("oracle8"))
      database_type_class = Oracle8DatabaseType.class;
      else if (db_version.startsWith("oracle9"))
      database_type_class = Oracle9DatabaseType.class;
      else if (db_version.startsWith("oracle database 10g"))
      database_type_class = Oracle10DatabaseType.class;
      else if (db_version.startsWith("oracle database 11g"))
      database_type_class = Oracle10DatabaseType.class;
      }

      In order to gain support for Oracle 11g as well?

      I think Oracle 11g should be backwards compatible with 10g so that the same DatabaseType class can be reused?

        • 1. Re: Oracle 11g support
          pilhuhn

           

          I think Oracle 11g should be backwards compatible with 10g

          Should it or is it? :)

          But for this purpose, it is probably safe to assume that it is. Do you have a link to an Oracle page that states that it is compatible?

          • 2. Re: Oracle 11g support
            mazz

            We would have to do some testing on Oracle 11g to confirm it is compatible with RHQ/Jopr.

            I've added a JIRA for this:

            http://jira.rhq-project.org/browse/RHQ-1097

            • 3. Re: Oracle 11g support
              stfkbf

              Hi

              I understand with the regards to the should it or is it :)

              If i can find a page i will post it (although testing of course would still be needed).

              In the mean time i am attempting to test this by building the source (with the modification) from here:

              http://anonsvn.jboss.org/repos/jopr/

              Does a wiki page with some build instructions exist?

              • 4. Re: Oracle 11g support
                stfkbf

                The RHQ site seems to have the instructions. I will try those.

                Also thank you for creating the JIRA.

                • 5. Re: Oracle 11g support
                  mazz

                  Here's the build page (sounds like you found it already, but for the benefit of others):

                  http://support.rhq-project.org/display/RHQ/Building+RHQ

                  • 6. Re: Oracle 11g support
                    mazz

                    By the way, since you will be building with Oracle, you'll need to configure your maven settings.xml to point to that database.

                    The building instructions assume you are building with Postgres.

                    Specifically, you'll want to configure something like this:

                    <profile>
                     <id>oracle</id>
                     <properties>
                     <rhq.test.ds.connection-url>jdbc:oracle:thin:@127.0.0.1:1521:xe</rhq.test.ds.connection-url>
                     <rhq.test.ds.user-name>rhqadmin</rhq.test.ds.user-name>
                     <rhq.test.ds.password>rhqadmin</rhq.test.ds.password>
                     <rhq.test.ds.type-mapping>Oracle10g</rhq.test.ds.type-mapping>
                     <rhq.test.ds.driver-class>oracle.jdbc.driver.OracleDriver</rhq.test.ds.driver-class>
                     </properties>
                     </profile>


                    and enable that profile during your maven build via "-Poracle".


                    • 7. Re: Oracle 11g support
                      stfkbf

                      Some additional info:

                      Once the DataTypeFactory class is modified rhq and jopr can be build either against Postgres or Oracle (as suggested by mazz).

                      The ojdbc14.jar needs to be copied to the servers lib dir. Also the rhq.ear.rej/rhq-core-domain-ejb3.jar/META-INF/persistence.xml file needs to have the Oracle10g dialect explicitly specified (see https://jira.jboss.org/jira/browse/JBAS-5015).

                      Now jopr installs and starts correctly on Oracle 11g(and so far seems to work). However as pilhuhn mentions this probably is not a long term solution :)

                      • 8. Re: Oracle 11g support
                        mazz

                        Experimental support for Oracle 11g has been added to HEAD in trunk.

                        Because of this, you need to supply an additional setting to get things to build and work (even if you aren't using Oracle 11g, like Oracle 10g or Postgres). You now need to provide a hibernate dialect. The hibernate dialect needs to be either org.hibernate.dialect.Oracle10gDialect or org.hibernate.dialect.PostgreSQLDialect.

                        If you are building Jopr, then in your settings.xml, your Oracle database profiles need to provide:

                        <hibernate.dialect>org.hibernate.dialect.Oracle10gDialect</hibernate.dialect>


                        and your Postgres database profiles need to provide:

                        <hibernate.dialect>org.hibernate.dialect.PostgreSQLDialect</hibernate.dialect>


                        In rhq-server.properties, you need to specify this:

                        hibernate.dialect=org.hibernate.dialect.Oracle10gDialect


                        and obviously if you are using Postgres you need to use the postgres dialect instead.

                        I modified the web installer so you can set this when you initially install a Jopr distribution.

                        Happy 11g'ing. Any problems, complain to Heiko :-)

                        But seriously, if you see any problems with this, post comments here.


                        • 9. Re: Oracle 11g support
                          mazz

                          opps, just realized the unit tests don't run with 11g. I have to change something. The settings.xml property name will change to:

                          rhq.test.ds.hibernate-dialect

                          to match the rest and I'll be fixing the test issue.