JTOpen のKeyedDataQueue
クラスが提供する read() メソッドを使用すると、奇妙な動作が検出されました。
90 秒のタイムアウトを設定し、タイムアウトに達したときの読み取り実行の 99% で、呼び出し元のメソッドの実行が再開されます。
残りの 1% については、タイムアウトは考慮/到達されず、私の呼び出しメソッドはハングしたままです...
少し検索したところ、次の投稿を見つけました。
http://archive.midrange.com/java400-l/201112/msg00056.html
基本的に、私が疑ったことを確認します:
「また、DataQueue.read() タイムアウト機能はサーバー側であるため、TCP/IP 接続が静かに切断された場合 (これが根本的な原因であると私は信じています)、依然としてハングします。」
私は JTOpen のバージョン 7.2 を使用していますが、バージョン 7.9 が既に公開されていることに気付きました。私は 7.9 に更新しませんでした。これは、7.2 を使用している安定した重要なアプリケーションが多数あるためです。これは、7.9 への更新を検討する最初の実際のシナリオです。
その決定を支援するために、特にこの状況に遭遇し、最終的に JTOpen をアップグレードして解決した方からのフィードバックを本当にお待ちしています。
具体的には、この問題の回避策はありますか? JTOpen のアップグレードはこれに役立ちますか? JTOpen を 7.9 にアップグレードすると、7.2 で動作していた機能が壊れますか?