कारण कोड 68 पहले से ही आपको लॉक टाइमआउट के कारण बताता है (डेडलॉक कारण कोड 2 है) यह अन्य उपयोगकर्ताओं के साथ एक ही समय में चल रहे प्रश्नों के कारण हो सकता है जो आपके द्वारा उपयोग किए जा रहे उसी डेटा का उपयोग करते हैं, या आपके अपने कई अपडेट।
लॉक कहां से देखने के लिए db2 कमांड लाइन से db2pd -db locktest -locks show detail
चलाकर शुरू करें। आप db2pd
आदेश उत्पादन से प्राप्त कर आईडी नंबर के साथ # प्रतीकों में
select tabschema, tabname, tableid, tbspaceid
from syscat.tables where tbspaceid = # and tableid = #
भरने: तुम तो की तरह कुछ चलाने की आवश्यकता होगी।
एक बार जब आप देखते हैं जहां ताले कर रहे हैं, यहाँ कुछ सुझाव हैं:
◦Deadlock आवृत्ति कभी कभी कि सभी आवेदनों को उसी क्रम में उनके आम डेटा का उपयोग सुनिश्चित करने के द्वारा कम किया जा सकता - जिसका अर्थ है, उदाहरण के लिए, यह है कि वे का उपयोग (और इसलिए ताला) तालिका ए में पंक्तियां, तालिका बी के बाद, तालिका सी के बाद, और इसी तरह। http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.trb.doc/doc/t0055074.html
पढ़ने की सिफारिश की: http://www.ibm.com/developerworks/data/library/techarticle/dm-0511bond/index.html
परिशिष्ट:
से लिया है, तो अपने सर्वलेट या किसी अन्य दोषी आवेदन select
गतिरोध में शामिल होना पाया बयान उपयोग कर रहा है, तो आप का चयन करने के लिए बयान with ur
जोड़कर कोशिश कर सकते हैं यदि नए अद्यतन (या सम्मिलित) डेटा की सटीकता महत्वपूर्ण नहीं है।
यह ध्यान रखना महत्वपूर्ण है कि आलेख ** ** ** ** मृतकों की आवृत्ति ** को कम करने के बारे में बात करता है, ** ** उन्हें पूरी तरह से रोक नहीं रहा है। Http://stackoverflow.com/a/112256/14731 के अनुसार लगातार लॉकिंग ऑर्डर डेडलॉक्स को रोकता नहीं है। हम जितना अधिक कर सकते हैं उनकी आवृत्ति को कम करने का प्रयास है। – Gili