Harden Database Access

2 posts, 0 answers
  1. Wolfgang
    Wolfgang avatar
    98 posts
    Member since:
    Oct 2012

    Posted 11 Sep 2014 Link to this post


    The follwoing situation occured:
    IObjectContext context = Database.GetContext(this);

    Programm keeped hanging in Database.GetContext(this)
    If i look at the stack it seems like it is hanging in
    Telerik.OpenAccess.Runtime / SynchronizedStateManagerProxy.getPersistenceManager.

    Sad thing is: It just hangs there. No exception is thrown. It never returns from GetContext.

    As we are using multiple processes I think I knew what happened: In another thread i find:
    "Telerik.OpenAccess.RT.sql.SQLException: Verbindungsfehler ---> iAnywhere.Data.SQLAnywhere.SAException: " - yep, the other process had issues connecting to the database, so most likely also the hanging task should have the same issues.

    I had this issue some time before with external databases (database on another network). It was "solved" with using for this special purpose ADO Pooling as Pooltype and not the OpenAccessIntegratedConnectionPool. This is not possible in this use case as there are problems between ui and telerik if Poollevel 1 or 2 is used.

    So my wish is to harden the database access that a non reacting database will not lead to a state that Telerik will never return from calls.

    Best regards,

    P.S: ATM no clue how to sovle the actual issue. 

  2. Ady
    Ady avatar
    588 posts

    Posted 15 Sep 2014 Link to this post

    Hi Wolfgang,

     If you are using 'OpenAccessIntegratedConnectionPool' the pool management should throw an timeout exception after the 'ActiveConnectionTimeout' value is surpassed. Can you lower the 'ActiveConnectionTimeout' value and check if it still blocks?
    Can you send me your sample code from all threads that are active?

    OpenAccess ORM is now Telerik Data Access. For more information on the new names, please, check out the Telerik Product Map.
  3. DevCraft banner
Back to Top