ofbiz thread finish current business cannot auto destroy cause deadlock

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

ofbiz thread finish current business cannot auto destroy cause deadlock

ofbiz_hyf
Dears:
      Our web app has a serious problem. When a user finishes the operation,
I think its thread is not automatically destroyed. Then  query oracle sid,
serial# have records(sql: select b.username,b.sid,b.serial#,logon_time from
v$locked_object a,v$session b where a.session_id = b.sid order by
b.logon_time;), but there is no corresponding SQL statement ( sql_text is
empty. sql: select sql_text from v$sql where hash_value in(select
sql_hash_value from v$session where sid in (select session_id from
v$locked_object)); ).
      And another user to operate the same record (operated by a user just
now) ,but fail, cannot operate. Now, a deadlock occurs( oracle sql_text has
record. sql: select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in (select session_id from
v$locked_object)) ).
      Could you tell me how to solve this problem ? Thanks.

     Environment:
     Sun JDK 1.6
     Oracle 11g
     ofbiz 9
     jdbc driver (ojdbc6-11.2.0.3.jar)



--
Sent from: http://ofbiz.135035.n4.nabble.com/OFBiz-User-f135036.html
Reply | Threaded
Open this post in threaded view
|

Re: ofbiz thread finish current business cannot auto destroy cause deadlock

Jacques Le Roux
Administrator
Hi,

Your message has been moderated.

Please subscribe to the user ML for such questions and then use your email client
See here http://ofbiz.apache.org/mailing-lists.html

You will get a better support and it's more fair to share with everybody
The wider the audience the better the answers you might get

Also it's more work for moderators who have to accept your messages as long as you have not subscribed.
I'll personally no longer accept them (other moderators still could)

Thanks

Jacques

Le 31/12/2018 à 17:42, ofbiz_hyf a écrit :

> Dears:
>        Our web app has a serious problem. When a user finishes the operation,
> I think its thread is not automatically destroyed. Then  query oracle sid,
> serial# have records(sql: select b.username,b.sid,b.serial#,logon_time from
> v$locked_object a,v$session b where a.session_id = b.sid order by
> b.logon_time;), but there is no corresponding SQL statement ( sql_text is
> empty. sql: select sql_text from v$sql where hash_value in(select
> sql_hash_value from v$session where sid in (select session_id from
> v$locked_object)); ).
>        And another user to operate the same record (operated by a user just
> now) ,but fail, cannot operate. Now, a deadlock occurs( oracle sql_text has
> record. sql: select sql_text from v$sql where hash_value in
> (select sql_hash_value from v$session where sid in (select session_id from
> v$locked_object)) ).
>        Could you tell me how to solve this problem ? Thanks.
>
>       Environment:
>       Sun JDK 1.6
>       Oracle 11g
>       ofbiz 9
>       jdbc driver (ojdbc6-11.2.0.3.jar)
>
>
>
> --
> Sent from: http://ofbiz.135035.n4.nabble.com/OFBiz-User-f135036.html
>
Reply | Threaded
Open this post in threaded view
|

Re: ofbiz thread finish current business cannot auto destroy cause deadlock

Jacques Le Roux
Administrator
In reply to this post by ofbiz_hyf
Hi,

This is quite an old version (almost 10 years: https://blogs.apache.org/foundation/entry/apache_ofbiz_releases_new_branch)

I fear few people are still using that. So it could be hard to find support here. Imagine the number of fixes which could be related to this issue
since...

You might have a look at the current implementation of LoginWorker::login and start from that. It's maybe unrelated, then have a look at
VisitHandler::getVisit

In case of doubt, try to set false in serverstats.properties to

stats.persist.visit=true
stats.persist.visitor=true

HTH

Jacques

Le 31/12/2018 à 17:42, ofbiz_hyf a écrit :

> Dears:
>        Our web app has a serious problem. When a user finishes the operation,
> I think its thread is not automatically destroyed. Then  query oracle sid,
> serial# have records(sql: select b.username,b.sid,b.serial#,logon_time from
> v$locked_object a,v$session b where a.session_id = b.sid order by
> b.logon_time;), but there is no corresponding SQL statement ( sql_text is
> empty. sql: select sql_text from v$sql where hash_value in(select
> sql_hash_value from v$session where sid in (select session_id from
> v$locked_object)); ).
>        And another user to operate the same record (operated by a user just
> now) ,but fail, cannot operate. Now, a deadlock occurs( oracle sql_text has
> record. sql: select sql_text from v$sql where hash_value in
> (select sql_hash_value from v$session where sid in (select session_id from
> v$locked_object)) ).
>        Could you tell me how to solve this problem ? Thanks.
>
>       Environment:
>       Sun JDK 1.6
>       Oracle 11g
>       ofbiz 9
>       jdbc driver (ojdbc6-11.2.0.3.jar)
>
>
>
> --
> Sent from: http://ofbiz.135035.n4.nabble.com/OFBiz-User-f135036.html
>