iSeries ボックス (JDK 1.5) で実行されている一部の Java NIO コードで問題が発生しています。基本的に、コードはファイルをファイルのチャンク部分に分割して、別の小さなファイルに分割します。同じコードが他の iSeries ボックスでしばらくの間問題なく動作しています。コード スニペットは次のとおりです。
//copy original data file content to temp file
long startPos = dataFile.length() - remaining;
long transferSize = maxSizeBytes - size;
size += inChannel.transferTo(startPos, transferSize, outChannel); //exception here
remaining -= size;
スタック トレースは次のとおりです。
Caused by: java.io.IOException: Operation not supported. Map failed
at java.lang.Throwable.<init>(Throwable.java:196)
at java.lang.Exception.<init>(Exception.java:41)
at java.io.IOException.<init>(IOException.java:40)
at sun.nio.ch.FileChannelImpl.map0(Native Method)
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:742)
at sun.nio.ch.FileChannelImpl.transferToTrustedChannel(FileChannelImpl.java:448)
at sun.nio.ch.FileChannelImpl.transferTo(FileChannelImpl.java:521)
... 11以上
私はいくつかの調査を行いましたが、これまでの原因 (親ディレクトリーのファイル許可、メモリー不足、共有メモリー制御 QSHRMEMCTL のオフ、SAN の使用) はすべて失敗していることが判明しました。
誰でもこの特定の問題の経験がありますか?
ありがとう、ブラッド。