Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-1082

jdbc.WrapperDataSource.getConnection is slow

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Obsolete
    • Icon: Minor Minor
    • No Release
    • JBossAS-3.2.6 Final
    • JCA service
    • None

      SourceForge Submitter: genman .

      I've been profiling JMS code. When a JMS message is
      added to the server, the persistence manager locates an
      appropriate DataSource.

      Out of the time spent in
      org.jboss.mq.Connection.sendToServer, about 28% of the
      time is getting the database connection through
      jdbc.WrapperDataSource.getConnection to do its work.
      This is after the pool has been initialized, etc. (40%
      is actual persistence, though most of it is the message
      serialization.)

      I suspect a lot of the work is calculating a hashCode
      on the javax.security.auth.Subject. SubjectCriKey and
      SubjectKey should have this value cached. Ideally,
      when one is accessing the local DB, none of this auth
      stuff should have to take place. Looking at the source
      for Subject.java, the hash code is not kept.

      BaseConnectionManager2.allocateConnection %CPU=27.949
      %Time=27.963 calls=411

      Allocations I've seen:

      JBossManagedConnectionPool$SubjectActions
      is created 3284 times (for 411 getConnection calls)
      java.util.Properties (1642 times)

      (Disclaimer: This was done through JBoss profiler,
      which may or may not create real numbers. It does
      look, though, that CX is pretty slow for some operations.)

              jpederse@redhat.com Jesper Pedersen
              genman_jira Elias Ross (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: