4 Replies Latest reply on Apr 19, 2002 11:04 PM by davidjencks

    Yet another Oracle XA problem

    fritz

      I am a huge fan of JBoss. That said, is there any chance of actually getting JBoss to run correctly with Oracle? Below is part of the trace output i get and my current config. I'm at a total loss here; tried everything I've seen recommended in the forums to no avail. If anyone can help it will be greatly apprciated.

      [DefaultDS] No transaction right now.
      [DefaultDS] Pool DefaultDS [1/1/10] gave out pooled object: oracle.jdbc.xa.client.OracleXAConnection@961581
      [DefaultDS] Pool DefaultDS [0/1/10] returned object oracle.jdbc.xa.client.OracleXAConnection@961581 to the pool.

      <!-- ==================================================================== -->
      <!-- Transactions -->
      <!-- ==================================================================== -->

      300
      oracle.jdbc.xa.OracleXid




      oracle.jdbc.driver.OracleDriver



      DefaultDS
      oracle.jdbc.xa.client.OracleXADataSource

      jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:xxxx
      1200000
      xxxx
      10
      xxxx
      true
      false
      false
      true
      120000
      1800000
      false
      true
      1.0
      0


      <!-- Connection factory for the Minerva JDBC resource adapter. This
      points at the same database as DefaultDS. -->

      MinervaDS
      JCA:service=RARDeployer

      Minerva JDBC LocalTransaction ResourceAdapter


      ConnectionURL=jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:xxx
      <!--ConnectionURL=jdbc:HypersonicSQL:hsql://localhost:1476-->



      MinervaSharedLocalCMFactory

      <!-- See the documentation for the specific connection manager
      implementation you are using for the properties you can set -->

      # Pool type - uncomment to force, otherwise it is the default
      #PoolConfiguration=per-factory

      # Connection pooling properties - see
      # org.jboss.pool.PoolParameters
      MinSize=0
      MaxSize=10
      Blocking=true
      GCEnabled=false
      IdleTimeoutEnabled=false
      InvalidateOnError=false
      TrackLastUsed=false
      GCIntervalMillis=120000
      GCMinIdleMillis=1200000
      IdleTimeoutMillis=1800000
      MaxIdleTimeoutPercent=1.0


      <!-- Principal mapping configuration -->

      org.jboss.resource.security.ManyToOnePrincipalMapping


      userName=sa
      password=

        • 1. Re: Yet another Oracle XA problem
          jasonlee9

          Unfortunately, I'm getting Orcale problems as well. Most of mine stem from Null pointers on user - which is clearly filled in. I'm trying nightly builds (I wish I knew enough to actually be able to go in and hack a bit..), so if my situation automagically resolves itself, I'll post it.

          • 2. Re: Yet another Oracle XA problem
            manywolf

            Did anyone figure out the null pointer exceptions?
            thanks,
            Shelley

            • 3. Re: Yet another Oracle XA problem
              craigday

              do you really need to use the Oracle XA stuff? i figure you only really need it if you are doing true distributed transactions with some other XA database. i started down the oracle xa route about a year ago, kinda got it to work but then i tried the straight minerva stuff and found it was about 3 times as fast and transactionally sound in a single database environment (actually its oracle OPS, 2 instances, but we never really get transactional between the instances). like i said that was a year ago, since then the system has done hundreds of thousands of transactions with zero error.

              • 4. Re: Yet another Oracle XA problem
                davidjencks

                I'd really appreciate it if all those who posted clearly indicated which JBoss version they are using. For anyone using JBoss 3 rc1, please consult http://main.jboss.org/forums/thread.jsp?forum=67&thread=13366 If there are further problems, please indicate what they are with a log excerpt and your db-service.xml and login-conf.xml files.

                For the original question about 2.4.x, you can remove the ConnectionFactoryLoader mbean since you aren't using it for anything. It is not clear from your log excerpt that there is a problem nor what it might be. What exactly is going wrong? What do you expect? What are you (or maybe your code;-) doing?

                For the question about whether xa is necessary -- I would expect xa might be at worst about 1/2 the speed of non-xa, since for a minimal db tx (start, one sql op, commit) you have 4 calls to the db (begin, op, end, commit) as opposed to 2 (op, commit) for non-xa. However, with local tx it is possible to get into situations where you can run out of connections if you use RequiresNew calls from Requires calls, and if you are doing complicated operations the concurrency on xa should be much better. However, I don't have actual experience with this, and if the driver is slower this could outweigh the theoretical advantages.