0 Replies Latest reply on Feb 11, 2016 1:43 PM by Sumana Chowdhury

    TransactionReaper::check timeout for TX 0:ffff0afc7013:-31570fa8:56bcd0cb:1b6 in state  RUN

    Sumana Chowdhury Newbie

      Hi,

       

      I am getting this error when trying merge/persist data in loop. There are 50000 records, that I am dealing with, in most of the cases it will be merge. I can provide the whole stack trace if needed.

       

      TransactionReaper::check timeout for TX 0:ffff0afc7013:-31570fa8:56bcd0cb:1b6 in state  RUN

      (pool-6-thread-3) SQL Error: 0, SQLState: null

      (pool-6-thread-3) javax.resource.ResourceException: IJ000460: Error checking for a transaction

       

      I am using SQL Server 2008/Wildfly 9.0.2.final Here is my DS :

       

      <driver>sqlserver4</driver>

                          <pool>

                              <min-pool-size>5</min-pool-size>

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

                              <flush-strategy>EntirePool</flush-strategy>

                          </pool>

                          <security>

                              <user-name></user-name>

                              <password></password>

                          </security>

                          <validation>

                              <check-valid-connection-sql>SELECT 1</check-valid-connection-sql>

                              <validate-on-match>false</validate-on-match>

                              <background-validation>true</background-validation>

                              <background-validation-millis>60000</background-validation-millis>

                              <use-fast-fail>true</use-fast-fail>

                          </validation>

                          <timeout>

                              <set-tx-query-timeout>false</set-tx-query-timeout>

                              <blocking-timeout-millis>5000</blocking-timeout-millis>

                              <idle-timeout-minutes>15</idle-timeout-minutes>

                              <query-timeout>300</query-timeout>

                              <use-try-lock>0</use-try-lock>

                              <allocation-retry>30</allocation-retry>

                              <allocation-retry-wait-millis>6000</allocation-retry-wait-millis>

                          </timeout>

       

       

      It appears the whole thing works if I have a less data set. But it fails only when the data set grow. I have made sure table is configured for ROW LEVEL LOCKING.

       

      Since I could not use @TransactionTimeout, I have tried adding timeout in my standalone.xml file :

       

      <subsystem xmlns="urn:jboss:domain:transactions:3.0">

                  <core-environment>

                      <process-id>

                          <uuid/>

                      </process-id>

                  </core-environment>

                  <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>

        <coordinator-environment default-timeout="800"/>

              </subsystem>

       

       

      Here is my persistence.xml

       

      <persistence-unit name="IrappPU" transaction-type="JTA">

         <description>HES-Synch Persistence Unit</description>

         <jta-data-source>java:jboss/datasources/irapp</jta-data-source>

         <exclude-unlisted-classes>false</exclude-unlisted-classes>

        <properties>

         <property name="hibernate.c3p0.idle_test_period" value="1500" />

         <property name="hibernate.c3p0.preferredTestQuery" value="select 1;" />

        </properties>


      I am using Hibernate PA persistence implementation.


      Any help to resolve this issue will be very helpful


      Thanks,

      Ashis