Sejauh ini, saya telah menemukan tiga situasi menggunakan tomcat: pertama, gunakan gerhana, konfigurasikan tomcat di gerhana. Kedua, sebarkan proyek langsung di Tomcat. Ketiga, instal Tomcat sebagai layanan Windows.
Dalam tiga kasus ini, OutofmemoryError muncul. Di sini saya harus menyebutkan bahwa saya secara tragis terluka oleh artikel -artikel yang tidak bertanggung jawab di internet. Saya mencoba segala macam cara untuk mengatur memori, tetapi itu tidak berhasil. Metode yang saya sebutkan di bawah ini semuanya diuji sendiri, dan tidak ada masalah.
Kasus pertama:
Seperti yang ditunjukkan pada gambar: Saya membuatnya dengan bingkai merah. Di antara mereka, XMS dan XMX adalah parameter dari ukuran tumpukan awal dan ukuran tumpukan maksimum mesin virtual Java, yang terutama untuk menyelesaikan alasan yang disebabkan oleh ruang tumpukan java yang tidak memadai. XX: Permsize dan XX: Maxpermsize adalah parameter yang meningkatkan ukuran area penyimpanan permanen awal dan ukuran area penyimpanan permanen maksimum mereka terutama menyelesaikan masalah bahwa sejumlah besar stoples atau kelas digunakan dalam program. Ruang untuk memuat kelas, yang terkait dengan ruang generasi permanen.
Kasus kedua:
Letakkan proyek yang dikompilasi langsung di Tomcat dan gunakan startup.bat untuk memulai layanan Tomcat. Seperti berikut di folder Bin Tomca:
Dalam hal ini, kita perlu memodifikasi parameter di Catalina.bat. Buka. Temukan dua kalimat ini:
Rem tebakan catalina_home jika tidak ditentukan
atur "current_dir =%cd%"
Tambahkan kalimat ini ke dua kalimat ini, dan pastikan untuk: atur "java_opts = -xms512m -xmx1024m -xx: permsize = 256m -xx: maxpermsize = 512m"
Ada banyak hal serupa di internet, tetapi banyak dari mereka belum dicoba.
Situasi ketiga:
Jika tomcat Anda terdaftar sebagai layanan Windows dan dimulai dalam layanan, maka metode di atas tidak valid, karena pada saat ini Tomcat Start adalah membaca parameter registri daripada parameter file batch. ini. : Temukan tomcat7w.exe di Direktori Bin Tomcat dan Buka:
Di bawah Opsi Java: Kumpulan memori awal di bawah ini adalah inisialisasi ukuran memori heap, dan kumpulan memori Maximun adalah ukuran memori heap maksimum. Untuk mengatur ukuran kumpulan Perm Gen, Anda perlu menambahkan parameter ke opsi Java, dan menambahkan:
-Dcatalina.base =%tomcat_home%
-Dcatalina.home =%tomcat_home%
-Djava.endorsed.dirs =%tomcat_home%/disahkan
-Djava.io.tmpdir =%tomcat_home%/temp
-Xx: Permsize = 256m
-Xx: maxpermsize = 256m
-Xx: cadangan codecachesize = 48m
-Duser.timezone = GMT+08
(Tidak memiliki spasi setelah setiap baris) Saya sudah mencoba metode ini, itu berhasil. Anda juga dapat menambahkan parameter secara langsung di registri. Saya tidak akan memperkenalkan ini, saya belum mencobanya sendiri.
Bahkan, tidak sulit untuk menyelesaikan masalah memori Tomcat. Kami telah repot -repot tentang masalah ini sejak lama. Jika Anda menggunakan Eclipse, pesan kesalahan akan dicetak di konsol. Tapi kami menginstal layanan Tomcat ke layanan Windows, jadi kami tidak dapat melihat petunjuk kesalahan. Setelah proyek dimulai, itu selalu dalam keadaan menunggu, yang sangat lambat, membuat orang bingung. Singkatnya, tidak berpengalaman.
Di atas adalah semua tentang memecahkan outofmemoryError di Java, dan saya harap ini akan membantu untuk pembelajaran semua orang.