1 Reply Latest reply on Aug 19, 2007 12:04 PM by ksmith

    Database connectivity issue

    jebsilver
      We been having some performance issues with our CF server lately, so I dumped the threads. I see a lot of these:

      "jrpp-97" prio=5 tid=0x4dad4290 nid=0x8b4 waiting for monitor entry [0x67abf000..0x67abfd8c]
      at coldfusion.server.j2ee.pool.ObjectPool.updateLocked(ObjectPool.java:189)
      - waiting to lock <0x15908628> (a coldfusion.server.j2ee.sql.pool.JDBCPool)
      at coldfusion.server.j2ee.sql.JRunConnection.touch(JRunConnection.java:256)
      at coldfusion.server.j2ee.sql.JRunConnection.prepareStatement(JRunConnection.java:577)
      at coldfusion.server.j2ee.sql.JRunConnectionHandle.prepareStatement(JRunConnectionHandle.jav a:174)
      at coldfusion.runtime.JDBCHelper._Get(PersistenceFactory.java:135)
      at coldfusion.runtime.JDBCHelper.Get(PersistenceFactory.java:100)
      at coldfusion.runtime.ClientScopeServiceImpl.GetClientScope(ClientScopeServiceImpl.java:230)
      ........

      Any idea what would cause this? We aren't limiting database connections, so I'm not sure what is causing this. Any advice would be appreciated.
        • 1. Re: Database connectivity issue
          ksmith Level 1
          >>>at coldfusion.runtime.ClientScopeServiceImpl.GetClientScope(ClientScopeServiceImpl.java:230)
          It appears you are using your database as a clientstore. Is the application(s) using the same datasource for both client data and application data? If so, consider separate DSNs (even if they point to the same db). Also, make sure your application is really using client data. I have seen many applications set up client variables and then they are never used. Yet, turning on client variables and storing them in a database means there is a DB read for the start of every request and a DB write for every request at page end. You can limit the writes by setting 'disable global updates' true in the advanced properties of you clientstore. That way writes only occur if a true update has been made to one of your client vars.

          If you use one clientstore for many busy applications, consider dividing it up into several databases and datasources.