हमारे एक ग्राहक शिकायत करते हैं कि, sporadically, FileChannel.map
पर हमारी कॉल ClosedByInterruptException
के साथ विफल हो जाती है। Javadoc इसे वैध संभावना के रूप में सूचीबद्ध नहीं करता है। क्या किसी को पता है कि यहां क्या हो रहा है?हम Java 1.6 में FileChannel.map से ClosedByInterruptException क्यों प्राप्त कर रहे हैं?
Cause0: java.nio.channels.ClosedByInterruptException Cause0-StackTrace: at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:184) at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:772)
इस प्रकार के बाधाओं के किस तरह के संचालन का परिणाम होता है? अगर मैं एक टेस्ट केस कोड करना चाहता था, तो मैं यह क्या करूँगा? एक फ़ाइल मैपिंग के बीच में धागा क्यों बाधित हो सकता है? और क्लेयर के बारे में क्या? – bmargulies
यदि एप्लिकेशन बहु-थ्रेडेड है, तो आपको # अंतराल() - कॉलों की तलाश करनी चाहिए जो चैनल पर आईओ संचालन करने वाले थ्रेड को बाधित कर सकती हैं। यदि यह एक वेब-एप्लिकेशन या किसी अन्य प्रकार का प्रबंधित वातावरण है, जहां थ्रेड प्रबंधन आपके एप्लिकेशन पर नहीं है (जैसे सर्वलेट/ईजेबी कंटेनर), तो आपको थ्रेड-सुरक्षा उल्लंघनों की तलाश करनी चाहिए। यह देखने के लिए एक और जगह है कि एप्लिकेशन बंद हो रहा है या जब थ्रेड पूलिंग का उपयोग किया जाता है (सर्वलेट/ईजेबी कंटेनर!)। फिर पूल आकार के गतिशील प्रबंधन से अवगत रहें! http://java.sun.com/javase/6/docs/api/java/lang/Thread.html#interrupt() – cafebabe