প্রক্সির মাধ্যমে অসম্পূর্ণ ছবি: Netty-র লেখা সম্পন্ন হচ্ছে কি না দেখুন
প্রক্সির মাধ্যমে ছবি অসম্পূর্ণভাবে এলে, অসিঙ্ক্রোনাস রেসপন্স লেখা শেষ হওয়ার আগে অরিজিন তার Netty চ্যানেল বন্ধ করছে কি না তা যাচাই করুন।
একটি ছবি দ্রুত সরাসরি সংযোগে কাজ করে, কিন্তু ধীর ফরওয়ার্ড প্রক্সির মাধ্যমে অসম্পূর্ণ হয়। একটি সম্ভাব্য কারণ হলো, অরিজিন সংযোগটি বন্ধ করে দেয় যখন তার রেসপন্স এখনো লেখা হচ্ছে।
Netty I/O অসিঙ্ক্রোনাস। writeAndFlush থেকে ফিরে আসা মানে এই নয় যে সেই কাজটি শেষ হয়েছে। তাই একটি রেসপন্সের জন্য এই ক্রম নিরাপদ নয় যার এখনো সারিতে বাইট আছে:
ctx.writeAndFlush(response);
ctx.close();
যখন HTTP বিনিময়টি ইচ্ছাকৃতভাবে তার শেষ রেসপন্স বার্তার পরে বন্ধ হচ্ছে, তখন ক্লোজটিকে সেই লেখার future-এর সাথে সংযুক্ত করুন:
ctx.writeAndFlush(finalResponseMessage)
.addListener(ChannelFutureListener.CLOSE);
এই অংশটি ধরে নেয় রেসপন্স ইতিমধ্যে সঠিকভাবে তৈরি ও ফ্রেম করা হয়েছে। স্ট্রিম করা বডির জন্য তার শেষ বার্তার সমাপ্তি ব্যবহার করুন, হেডার লেখা নয়। স্থায়ী HTTP সংযোগের জন্য, শুধু রেসপন্স শেষ হয়েছে বলে ক্লোজ যোগ করবেন না।
অ্যাপ্লিকেশনের স্বাভাবিক ত্রুটি ব্যবস্থাপনার অংশ হিসেবে future-এর ব্যর্থতা পরীক্ষা করুন। সমাপ্তির মধ্যে ব্যর্থতা ও বাতিলও অন্তর্ভুক্ত, তাই শুধু সমাপ্তি ব্রাউজার থেকে ডেলিভারি রসিদ নয়।
উপযোগী তুলনা হলো প্রতিটি পথে সম্পূর্ণ রেসপন্সের দৈর্ঘ্য ও লেখার ফলাফল। একটি প্রক্সি সময় এমনভাবে বদলাতে পারে যে একটি বিদ্যমান লাইফসাইকেল ত্রুটি প্রকাশ পায়; তবে এর উপস্থিতি প্রমাণ করে না যে এর কম্প্রেসর বা ক্যাশ বাইটগুলো ফেলে দিয়েছে।