On Fri, 21 Sep 2007 03:54:04 +0300 Vali Dragnuta wrote: > In primul rind, in functie de aplicatie,512M s-ar putea sa fie prea > putin.Da-i pentru putin timp 1024...1536 si vezi daca face la fel. In > al doilea rind, s-ar putea sa ai si o problema de compatibilitate > intre tomcat 5.5 si jdk 1.6 (ia incearca cu jdk1.5 - face la fel ? ) > > Altfel, desigur o aplicatie prost scrisa poate sa iti manince > procesorul pe orice platforma - inclusiv php. > > Zici de crapat,care este exact eroarea cu care crapa ? Crapa jvm-ul cu > totul sau crapa tomcatul din jvm cu vreo exceptie ? Uita-te si in > loguri si vezi ce/cum.Permgen e de obicei legata de lipsa de memorie > - ocazie cu care repet : 512m e posibil sa fie prea putin pentru 1.6 > + tomcat + aplicatia ta. > Aditional, daca nu folositi chestii specifice 1.6 cred ca pe tomcat > puteti merge bine merci cu 1.5 >
Am fost un pic neclar in mail initial, incerc sa clarific acum. 1. Daca nu setam parametri -Xmx512m -XX:MaxPermSize=256m (adica lasam setarile default din catalina.sh) atunci se intampla urmatorul lucru: programatorii primeau permgen in aplicatiile lor(eu nu eram acolo deci nu l-am vazut, iar ei nu au dat printscreen sau copy/paste). Pe server se vedea procesul java care rula tomcat ca avea 1G ram ocupat (atat isi aloca el maxim cu setari default). Daca dadeam service tomcat5 stop procesul java ramanea pornit si nu il puteam opri decat cu kill -9. 2. Dupa ce am setat -Xmx512m -XX:MaxPermSize=256m lucrurile au mers mai bine , dar mai devreme sau mai tarziu tot incep sa se planga ca nu le merge cum trebuie. Daca intru pe server vad ca procesul java ocupa 100% din proc, are memorie alocata 512, DAR aplicatiile web functioneaza inca. Dovada ca pot accesa tomcat manager care la urma urmei tot o aplicatie web este. Toate informatiile care le-am dat eu ieri, adica paste din tomcat manager, paste din show process list de pe server mysql erau luate la ORE BUNE DUPA PROGRAM de lucru. Deci cand programatorii plecasera acasa eu am vazut pe server ca exista un process java din aplicatia lor (cu numele intranet) care rula de ore bune cu 100%cpu, iar la baza de date erau deschise conexiuni care nu faceau nimic (sleep). Eu am suspectat o aplicatie scrisa eronat care nu elibereaza resursele (deschide conexiuni la baza de date si nu le mai inchide, ruleaza bucle , etc) In logul cataline e o chestie care revine obsesiv si care din ce am citit pe net este dovada de eroare in aplicatie (desi nu bag mana in foc aici pentru ca asa cum am zis nu am nici o tangenta cu programarea in java) Dau paste la eroare, care practic imi apare de fiecare data cand programatorii lucreaza la aplicatiile lor. Sep 20, 2007 6:17:11 PM org.apache.catalina.loader.WebappClassLoader loadClass INFO: Illegal access: this web application instance has been stopped already. Could not load java.net.BindException. The eventual following stack trace is caused by an error thro wn for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact. java.lang.IllegalStateException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1248) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1208) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:155) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2652) at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1345) at com.mysql.jdbc.Connection.realClose(Connection.java:4784) at com.mysql.jdbc.Connection.cleanup(Connection.java:2040) at com.mysql.jdbc.Connection.finalize(Connection.java:3296) at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method) at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83) at java.lang.ref.Finalizer.access$100(Finalizer.java:14) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160) Sep 20, 2007 6:17:11 PM org.apache.catalina.loader.WebappClassLoader loadClass INFO: Illegal access: this web application instance has been stopped already. Could not load com.mysql.jdbc.Messages. The eventual following stack trace is caused by an error thr own for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact. java.lang.IllegalStateException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1248) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1208) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:174) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2652) at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1345) at com.mysql.jdbc.Connection.realClose(Connection.java:4784) at com.mysql.jdbc.Connection.cleanup(Connection.java:2040) at com.mysql.jdbc.Connection.finalize(Connection.java:3296) at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method) at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83) at java.lang.ref.Finalizer.access$100(Finalizer.java:14) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160) Si inca o chestie foarte importanta. Cred ca si modul de lucru al programatorilor e un pic defectuos: Tomcat+eclipse+samba. Practic setup-ul care l-am mostenit este de felul urmator: Directorul tomcat este share-uit prin samba, iar programatorii isi pun proiectele in subdir webapps . Ei lucreaza cu eclipse direct pe share de samaba (ei, adica =>2). Eclipse cand se instaleaza pune si un tomcat la pe windows, dar ei il seteaza sa lucreaza cu tomcat de pe server. Acum eu am vaga impresie ca asta nu e o metoda tocmai ca la carte. Adica metoda asta cu samba si lucrul la gramada pe proiect mi se pare o invitatie la probleme. Poate imi recomanda cineva o solutie. Mai exact as vrea sa stiu care are trebui sa fie enviroment corect pentru tomcat+eclipse+mai multi programatori. Multumesc. _______________________________________________ RLUG mailing list RLUG@lists.lug.ro http://lists.lug.ro/mailman/listinfo/rlug