0 Replies Latest reply on May 3, 2017 2:21 PM by Sagar Patur

    jca threads not being used and delay getting and closing connections

    Sagar Patur Newbie

      We are using the below configuration for datasources and jca  in jboss 6.4  standalone.xml ..and also have ejb threads configured at 150 ..and use the below java code

      InitialContext ic = new InitialContext();

      ds = ic.ic.lookup(jndi) ,

      conn=ds.getConnection()

      conn.setAutoCommit(false);

       

      conn.commit(); or rollback()

      conn.close();

      and manually commit/rollback after the dao call ..We added some info logs to print the getConnection() and closeConnection() execution times > 50 ms ..

       

      The issue we have is when concurrency is high (when more than 100 ejb threads  / 100 connections are used ) we see a lot of logs showing the  getConnection() and closeConnection() execution time above 50ms and sometime in seconds ...

      All this time the execution time on DB queries at DB end is in 1 or 2 ms ...  ... From customer perspective the response times are going up  ..

       

      With the below config we were able to see the stats from EJB threads , Datasources and they all look good , NO blocking time , using pool etc .. But we were not able to see any JCA active threads but see lot of logs when "org.jboss.jca" is enabled to TRACE ..

      Trying to understand if there is any missing configuration ...

      Below is cli commands we are using to read the jca stats ..

      /subsystem=jca/workmanager=default/long-running-threads=default:read-resource(include-runtime=true)

      /subsystem=jca/workmanager=default/short-running-threads=default:read-resource(include-runtime=true)

       

      Appreciate your time ...Thank you ..

       

      <subsystem xmlns="urn:jboss:domain:datasources:1.2">

                  <datasources>

                      <datasource jta="false" jndi-name="java:/CoreDS" pool-name="CoreDS" enabled="true" use-java-context="true" statistics-enabled="true">

                          <connection-url>jdbc:oracle:thin:@XXXXXXXX</connection-url>

                          <driver>oracle</driver>

                          <pool>

                              <min-pool-size>200</min-pool-size>

                              <max-pool-size>200</max-pool-size>

                              <prefill>true</prefill>

                          </pool>

                          <security>

                              <user-name>XXXXX</user-name>

                              <password>XXXXXX</password>

                          </security>

                      </datasource>

                      <drivers>

                          <driver name="oracle" module="common.ojdbc">

                              <datasource-class>oracle.jdbc.pool.OracleDataSource</datasource-class>

                          </driver>

                      </drivers>

                  </datasources>

              </subsystem>

       

      <subsystem xmlns="urn:jboss:domain:jca:1.1">

                  <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>

                  <bean-validation enabled="true"/>

                  <default-workmanager>

                      <short-running-threads>

                          <core-threads count="150"/>

                          <queue-length count="1000"/>

                          <max-threads count="150"/>

                          <keepalive-time time="10" unit="seconds"/>

                      </short-running-threads>

                      <long-running-threads>

                          <core-threads count="150"/>

                          <queue-length count="1000"/>

                          <max-threads count="150"/>

                          <keepalive-time time="10" unit="seconds"/>

                      </long-running-threads>

                  </default-workmanager>

                  <cached-connection-manager/>

              </subsystem>