http.proxyHost შეუძლია მონაწილე HTTP კლიენტის მარშრუტიზაცია, მაგრამ PostgreSQL JDBC-ისთვის არაფერს აკეთებს. PostgreSQL აგზავნის თავის მონაცემთა ბაზის პროტოკოლს და არა HTTP მოთხოვნას.

JDBC კავშირის URL მაინც უნდა მიუთითებდეს მონაცემთა ბაზის სერვერსა და ბაზას. მისი სერვერის HTTP პროქსის მისამართით ჩანაცვლება დრაივერს CONNECT-ს ვერ ასწავლის.

SOCKS სერვისისთვის გამოიკვლიეთ JDBC-ის ქვემოთ არსებული სოკეტის იმპლემენტაცია. Java მონაწილე სოკეტებისთვის ამ გაშვების თვისებებს ამჟღავნებს:

-DsocksProxyHost=203.0.113.10 -DsocksProxyPort=1080

ჩაანაცვლეთ დოკუმენტაციის საბოლოო წერტილი. ეს JVM არგუმენტებია, და არა JDBC URL პარამეტრები. გადაამოწმეთ JDK/დრაივერის რეალური სოკეტის გზა და ნებისმიერი მორგებული სოკეტის ფაბრიკა, სანამ მათ გამოყენებას მოელით.

თვისებები მთელ პროცესზე ვრცელდება, ამიტომ ზემოქმედების შეფასებაში სხვა კავშირებიც შეიტანეთ. დოკუმენტირებული გამოყოფილი კონექტორი ან დამტკიცებული გვირაბი უფრო მკაფიო საზღვარს იძლევა, როცა მხოლოდ მონაცემთა ბაზის ტრაფიკმა უნდა გაიაროს ეს გზა.

პროქსის მაინც სჭირდება ნებართვა და მისადგომობა მონაცემთა ბაზის პორტთან. შემდეგ ბაზა იყენებს ჰოსტის წვდომის წესებს, დანიშნულების TLS-ს და საკუთარ შესვლას. შეინარჩუნეთ სერტიფიკატის ჰოსტის სახელი და ბაზის ანგარიში ცალკე შეინახეთ პროქსის ანგარიშისგან.

ჩაწერეთ პირველი წარუმატებელი ეტაპი: პროქსის კავშირი, მოლაპარაკება, ბაზის TCP, TLS ან ბაზაში შესვლა. ეს მტკიცებულება განსაზღვრავს შემდეგ ცვლილებას; გამოუყენებელი HTTP თვისებების განმეორებითი კორექტირება ამას ვერ შეძლებს.

დაკავშირებული სტატიები