TCP კავშირის წარმატების შემდეგ პროქსის CONNECT-ის დროის ამოწურვები
იპოვეთ CONNECT-ის დროს აქტიური დროის ამოწურვა, ნაცვლად იმისა, რომ ჩათვალოთ: დასრულებულმა TCP კავშირმა გვირაბის მოწყობაც დაასრულა.
TCP კავშირის დროის ამოწურვამ თავისი საქმე შეასრულა, როგორც კი კლიენტი პროქსის დაუკავშირდა. შემდეგი ლოდინი—სრული CONNECT პასუხის მიღება—შეიძლება სხვა ტაიმერით იმართებოდეს.
შესაძლებელია, პროქსი ჯერ კიდევ უკავშირდება ზედა დონეს, ცვლის ავთენტიფიკაციის შეტყობინებებს ან სხვა სერვისს ელოდება. საიტის ჩვეულებრივი პასუხი ჯერ არ დაწყებულა.
| ბოლო დასრულებული ნაბიჯი | რას ელოდება ჯერ კიდევ? |
|---|---|
| TCP დაუკავშირდა პროქსის | პროქსის ხელის ჩამორთმევა, CONNECT-ის მიღების ჩათვლით |
| CONNECT მიღებულია | დანიშნულების TLS, როცა სამიზნე მას იყენებს |
| დანიშნულების მოთხოვნა გაგზავნილია | დანიშნულების პასუხი |
იპოვეთ ტაიმერი, რომელიც აქტიურია, სანამ კონექტორი კითხულობს და წერს ამ ხელის ჩამორთმევას. „response timeout“ სახელწოდების თვისება შეიძლება ძალაში მხოლოდ მარშრუტის დამყარების შემდეგ შევიდეს. HttpClient 5-ში განასხვავეთ ConnectionConfig და მისი სოკეტის დროის ამოწურვა, TLS ხელის ჩამორთმევის კონფიგურაცია და მოთხოვნის დონის პასუხის დროის ამოწურვა. გამოიყენეთ შესაბამისი კავშირის კონფიგურაცია იმ მენეჯერის მეშვეობით, რომელსაც რეალური კლიენტი იყენებს. Apache HttpClient-ის ძველი თაობები სხვა API-ებს იყენებენ, ამიტომ ძველი ფრაგმენტი ამ პასუხისმგებლობების სანდო რუკა არ არის.
საბოლოო CONNECT უარი შეინარჩუნეთ როგორც პროქსის პასუხი. წარმატებული პასუხის შემდეგ TLS-ის გაჩერება წარუმატებლობის სხვა ეტაპია. „TCP დაკავშირებულია; მოწყობის ვადამდე სრული CONNECT პასუხი არ არის“ პრობლემას უფრო ზუსტად აღწერს, ვიდრე ზოგადი პროქსის დროის ამოწურვა.
საერთო ვადას შეუძლია შეზღუდოს გამომძახებლის ლოდინი ამ ფაზურ ზღვრებთან ერთად. როცა ის იწურება, გააუქმეთ ან დახურეთ ოპერაცია კლიენტის მხარდაჭერილი სასიცოცხლო ციკლის მეშვეობით, სანამ შემდეგი მცდელობა კავშირის სიმძლავრეს დახარჯავს.