Discussions

EJB programming & troubleshooting: Unexpected LockTimeOutException from Weblogic 5.1. Need Help!!!

  1. We get this error and need TSS members help:

    weblogic.ejb.extension.LockTimeOutException:Lock fro primaryKey:com.edsoft.schoolsys.entity.TableTranIdPK@2daf22fe timed out after 300000ms.
          at weblogic.ejb.internal.LockManagerImpl.lock(LockManagerImpl.java.138)

    When this error occur the Application Server will freeze and not respone to request until the exception is thrown, which is 300000ms(5 mins). I have no idea where the 300000ms comes from. All our Stateless Session beans are set with TRANSACTION_READ_UNCOMMITTED and transactionAttribute is set at TX_REQUIRED but all read or get methods are TX_NOT_SUPPORTED. IdleTimeoutSeconds and sessionTimeout are set at 25 seconds. Our system utilizes CMP and entity beans' idleTimeoutSeconds is at 15 seconds and the isolationLevel is set TRANSACTION_READ_UNCOMMITTED. It only happen when update occurs. Our traffic volume is high and have no problems with read or get data.

    System Specs:
    NT 4.5.1 with latest SP, MSSQL 6.5, Weblogic 5.1 with latest SP, JDK1.3, EJB Spec 1.1
    Misc:
    XML, Xalan XSLT, JDOM, Java JDK1.3
  2. I haven't read through everything thoroughly here, but I can tell you where the 300 seconds comes from:

    It is the default TX timeout value for weblogic. If a transaction is active for 300 seconds, it will automatically be rolled back (or flagged for rollback). You can change this value if you want, but I suspect that something in your system is causing a transaction or a thread to hang for the 300 seconds. When the tx rollback occurs, it releases the thread and your system returns to normal.

    Tyler
  3. Tyler,

    Thanks for the response. I just want to know if you can tell me where I can change this value so the Exception would be thrown back much sooner. Thanks again.
  4. You know... I can't remember. I think it's something like weblogic.system.TransactionTimeoutSecs

    I'm not running WLS 5.1 anymore on this new machine I have otherwise, I would quickly look it up.

    Here is what you can do: Register the admin servlets (they are still registered if you haven't touched weblogic.properites). Run the AdminMain servlet and take a look at the properties tab. That tab will display the complete list of WebLogic properties (including non-documented properties). It will be listed in there.

    http://localhost:7001/AdminMain

    Tyler
  5. I started the AdminMain servlet and searched for the property that can overwrite the default setting of weblogic but none come close. I even try weblogic.system.TransactionTimeoutSecs and Weblogic reject on started up. I'm looking at Weblogic 5.1 doc at the moment.

    If anyone know what it is, plz reply to this message. Thanks a bunch.
  6. try property keepAliveSecs
  7. No... that's definitely not it. KeepAliveSecs is the nubmer of seconds that WLS will keep a persistent HTTP Connection open.

    Ok... Now I'm really curious. I must go and find this!

    Tyler
  8. I'm getting the same problem, does anyone has a fix for this.