حتى الآن ، واجهت ثلاث حالات باستخدام Tomcat: أولاً ، استخدم Eclipse ، وتكوين Tomcat في Eclipse. ثانياً ، نشر المشروع مباشرة في Tomcat. ثالثًا ، قم بتثبيت Tomcat كخدمة Windows.
في هذه الحالات الثلاث ، يظهر OutofMemoryerror. يجب أن أذكر هنا أنني أصبت بشكل مأساوي من قبل تلك المقالات غير المسؤولة على الإنترنت. لقد جربت جميع أنواع الطرق لتعيين الذاكرة ، لكنها لم تنجح. يتم اختبار الأساليب التي ذكرتها أدناه بنفسي ، وليس هناك مشكلة.
الحالة الأولى:
كما هو موضح في الصورة: لقد صنعته بإطار أحمر. من بينها ، XMS و XMX هما معلمات حجم الكومة الأولي وحجم الكومة الأقصى للجهاز الظاهري Java ، والذي يهدف بشكل أساسي إلى حل الأسباب التي تسببها مساحة كومة Java غير الكافية. XX: Permsize و XX: MaxPermsize هي المعلمات التي تزيد من حجم مساحة التخزين الدائمة وحجم مساحة التخزين الدائمة. مساحة لتحميل فصول ، والتي ترتبط بمساحة التوليد الدائم.
الحالة الثانية:
ضع المشروع المترجم مباشرة في Tomcat واستخدم Startup.Bat لبدء خدمة Tomcat. على النحو التالي في مجلد بن تومكا:
في هذه الحالة ، نحتاج إلى تعديل المعلمات في catalina.bat. افتحه. ابحث عن هاتين الجملتين:
REM تخمين CATALINA_HOME إذا لم يتم تعريفه
تعيين "Current_dir = ٪ CD ٪"
أضف هذه الجملة إلى هاتين الجملتين ، وتأكد من: تعيين "java_opts = -xms512m -xmx1024m -xx: permsize = 256m -xx: maxpermsize = 512m"
هناك العديد من الأشياء المماثلة على الإنترنت ، ولكن لم تتم محاكمة الكثير منها.
الوضع الثالث:
إذا تم تسجيل Tomcat الخاص بك كخدمة Windows وبدأت في الخدمة ، فإن الطريقة أعلاه غير صالحة ، لأنه في هذا الوقت ، تتمثل Tomcat في قراءة معلمات السجل بدلاً من معلمات ملف الدُفعات. هذا. : العثور على tomcat7w.exe في دليل بن في Tomcat و Open:
ضمن خيارات Java: تجمع الذاكرة الأولي أدناه هو تهيئة حجم ذاكرة الكومة ، ومجموعة Maximun Memory هو الحد الأقصى لحجم ذاكرة الكومة. لتعيين حجم Perm Gen Pool ، تحتاج إلى إضافة معلمات إلى خيار Java ، وإضافة:
-dcatalina.base = ٪ tomcat_home ٪
-dcatalina.home = ٪ tomcat_home ٪
-djava.endorsed.dirs = ٪ tomcat_home ٪/معتمدين
-djava.io.tmpdir = ٪ tomcat_home ٪/temp
-xx: permsize = 256m
-xx: maxpermsize = 256m
-xx: محجوز CodeCachesize = 48m
-duser.TimeZone = GMT+08
(ليس لديك مسافات بعد كل سطر) لقد جربت هذه الطريقة ، فهي تعمل. يمكنك أيضًا إضافة معلمات مباشرة في السجل. لن أقدم هذا ، لم أجربه بنفسي.
في الواقع ، ليس من الصعب حل مشكلة ذاكرة Tomcat. لقد أزعجنا هذه القضية لفترة طويلة من قبل. إذا كنت تستخدم Eclipse ، فسيتم طباعة رسالة خطأ في وحدة التحكم. لكننا قمنا بتثبيت خدمة Tomcat في خدمة Windows ، لذلك لم نتمكن من رؤية أي مطالبات خطأ. بعد بدء المشروع ، كان دائمًا في حالة انتظار ، والتي كانت بطيئة للغاية ، مما جعل الناس في حيرة من أمري. باختصار ، عديمي الخبرة.
ما سبق هو كل شيء عن حل OutofMemoryerror في جافا ، وآمل أن يكون مفيدًا لتعلم الجميع.