0 Replies Latest reply on Dec 16, 2005 7:59 AM by Annegret Sternagel

    Deleted data remain in database for some minutes

    Annegret Sternagel Newbie

      Hello,

      I have a crazy phenomenon:
      After deleting some records in 2 different tables in 2 different databases the data remain in the database for some minutes. Reconnect to the database still shows the data, doing nothing and reconnect again after some minutes and the data have vanished.

      Another problem is that in some cases one record remain in one of the databases whereas the other is deleted, which means our databases are inconsistent.

      Maybe both phenomenons are connected.
      Until now I couldn't reproduce it by hand, but if our automatic testscript is running the problem is reproducable so I need to find a solution.

      The configuration:
      Jboss 3.2.3, jdk 1.4.2_08
      Database Sybase ASA 9

      Process flow:
      GUI (Applet) calls Stateful SessionBean1 which calls Stateful SessionBean2
      SessionBean2 deletes data in DB2, after this (if no exception ) SessionBean1 deletes data in DB1 and returns to the GUI.
      Transaction attributes of the SessionBean methods are set to "Reuqired", if an exception occurs it is wrapped into an ApplicationException => no rollback.

      The TransactionTimeout in jboss-service.xml has been changed from 300 to 3600. the time until the data have vanished out of the database may be the default time of 5 minutes, I'm not sure.

      All exceptions that occur are logged, but I can't find any stacktrace in the logfile.

      The Sybase configuration:

      
      <datasources>
       <local-tx-datasource>
       <jndi-name>Database1</jndi-name>
       <!-- Sybase jConnect URL for the database.
       NOTE: The hostname and port are made up values. The optional
       database name is provided, as well as some additinal Driver
       parameters.
       -->
       <connection-url>jdbc:sybase:Tds:localhost:2638?ServiceName=DB1</connection-url>
       <driver-class>com.sybase.jdbc2.jdbc.SybDataSource</driver-class>
       <user-name>xxx</user-name>
       <password>yyy</password>
      
       <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
       <min-pool-size>1</min-pool-size>
      
       <!-- The maximum connections in a pool/sub-pool -->
       <max-pool-size>32000</max-pool-size>
      
       <!-- The time before an unused connection is destroyed -->
       <!-- NOTE: This is the check period. It will be destroyed somewhere between 1x and 2x this timeout after last use -->
       <idle-timeout-minutes>15</idle-timeout-minutes>
      
       <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
       <!-- sql to call on an existing pooled connection when it is obtained from pool -->
       <check-valid-connection-sql>SELECT Major from T_DatabaseInfo</check-valid-connection-sql>
       <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.SybaseExceptionSorter</exception-sorter-class-name>
       <!-- Whether to check all statements are closed when the connection is returned to the pool,
       this is a debugging feature that should be turned off in production -->
       <track-statements>true</track-statements>
      
       </local-tx-datasource>
      </datasources>
      


      Did anybody have had a similar problem yet ?
      Any ideas where to look at?
      Any little hint is welcome.

      Annegret