বায়রনের উত্তর অনুসারে, আপনি পতাকা ব্যবহার করে বা কল করে সিস্টেম বৈশিষ্ট্য হিসাবে সেট করতে networkaddress.cache.ttl
বা সেট করতে পারবেন না কারণ এগুলি সিস্টেম বৈশিষ্ট্য নয় - এগুলি সুরক্ষা বৈশিষ্ট্য।networkaddress.cache.negative.ttl
-D
System.setProperty
আপনি যদি এই আচরণটি ট্রিগার করতে কোনও সিস্টেম সম্পত্তি ব্যবহার করতে চান (যাতে আপনি -D
পতাকা বা কলটি ব্যবহার করতে পারেন System.setProperty
), আপনি নিম্নলিখিত সিস্টেমের বৈশিষ্ট্যটি সেট করতে চাইবেন :
-Dsun.net.inetaddr.ttl=0
এই সিস্টেমের সম্পত্তি কাঙ্ক্ষিত প্রভাব সক্ষম করবে।
তবে সচেতন হন: আপনি যদি -D
জেভিএম প্রক্রিয়া শুরু করার সময় পতাকা ব্যবহার না করেন এবং পরিবর্তে কোড থেকে এই কলটি নির্বাচন করেন:
java.security.Security.setProperty("networkaddress.cache.ttl" , "0")
এই কোডটি অবশ্যই JVM এর অন্য কোনও কোড নেটওয়ার্কিং ক্রিয়াকলাপ চালানোর চেষ্টা করার আগে কার্যকর করা উচিত ।
এটি গুরুত্বপূর্ণ কারণ, উদাহরণস্বরূপ, আপনি Security.setProperty
যদি একটি .war ফাইল কল করে এবং সেই .war টমক্যাটটিতে স্থাপন করেন তবে এটি কার্যকর হবে না: টমক্যাট জাভা নেটওয়ার্কিং স্ট্যাকটি ব্যবহার করে আপনার .war কোডটি কার্যকর করার চেয়ে অনেক আগে নিজেকে শুরু করার জন্য। এই 'রেস -D
শর্ত'-এর কারণে, জেভিএম প্রক্রিয়া শুরু করার সময় পতাকাটি ব্যবহার করা বেশি সুবিধাজনক ।
যদি আপনি ব্যবহার -Dsun.net.inetaddr.ttl=0
বা কল না করেন তবে আপনাকে সেই ফাইলটিতে সুরক্ষা বৈশিষ্ট্যগুলি Security.setProperty
সম্পাদনা $JRE_HOME/lib/security/java.security
এবং সেট করতে হবে, যেমন
networkaddress.cache.ttl = 0
networkaddress.cache.negative.ttl = 0
তবে এই সম্পত্তিগুলির আশেপাশের মন্তব্যে সুরক্ষা সতর্কতাগুলিতে মনোযোগ দিন। কেবলমাত্র এটি করুন যদি আপনি যুক্তিসঙ্গতভাবে আত্মবিশ্বাসী হন যে আপনি ডিএনএস স্পোফিং আক্রমণে সংবেদনশীল না হন ।
java.security.Security
(কমপক্ষে jdk7 এ)