[Java lista] NetBeans + Tomcat + Log4J

István Viczián viczian.istvan at gmail.com
2009. Nov. 12., Cs, 17:28:11 CET


Szia,

Workaroundokkal tele vagyok, nincs hiány. :) Pl. a Thread.sleep(100);
tökéletesen megoldja a problémát!!! Vagy egy FileAppender. Vagy egy
AsyncAppender.
Engem a dolog miértje érdekel, hogy miért akad ez össze, és hogyan
védhetem ki azt, hogy ez a hibát esetleg egy más alkalmazásban én is
elkövessem.
Rájönni sem volt egyszerű, mert a naplózás után semmivel nem lehetett
a JVM-hez hozzá kapcsolódni.
Több éve naponta használom a NetBeans-t, naplózok ezerrel, és miért
csak most jön ez elő, miért csak nekem, és miért csak a Handler +
Exception kombinációnál?
Ha ilyennel találkozok, mit kell néznem, hogy mi van elrontva?

Abban igazad van, hogy mivel csak NetBeans + Tomcat kombinációban van,
kár vele sokat küszködni, elég a workaround, csak érdekel...

Viczi

2009/11/12 Peter Verhas <peter at verhas.com>:
> Sőt, írhatsz egy külön szálat ami naplóz, és aszinkron adod át neki a
> naplózandó adatot, és egyszerre csak egyet naplóz.
>
> 2009/11/12 István Viczián <viczian.istvan at gmail.com>:
>> Üdv,
>>
>> Van egy JAX-WS handler-em, Tomcat web alkalmazásban, amiben Log4J-vel
>> naplózom a bejövő és kimenő XML-eket. Az egészet NetBeans-ben
>> futtatom.
>> Amennyiben kivétel keletkezik, akkor a Handler handleFault metódusa fut le.
>> Azonban a LOGGER.debug utasítás hatására a Tomcat nem fogad több
>> kapcsolatot, sem HTTP hívást, sem JMX-et, de admin-t. Gyakorlatilag
>> teljesen meghal, csak kilőni lehet.
>>
>> Sikerült kideríteni, hogy a
>> org.apache.tomcat.util.log.SystemLogHandler.write(SystemLogHandler.java:166)
>> hív
>> java.io.FileOutputStream.writeBytes(Native Method)
>> és itt pihen.
>> Közben tart egy lock-ot egy java.io.OutputStreamWriter példányra.
>> Az összes többi kérés viszont e miatt a lock miatt blokkolódik.
>>
>> A NetBeans Name: Apache Tomcat 6.0.18 ServerLog - Thread szála viszont a
>> org.netbeans.modules.tomcat5.util.ServerLog.run(ServerLog.java:167)
>> sorban egy
>> java.io.FileInputStream.readBytes(Native Method)
>> hívásban pihen.
>>
>> Elvileg két külön JVM.
>>
>> Az egyik nem tud írni, a másik képtelen olvasni. Mit lehet ilyenkor
>> tenni? Merre lehet tovább vizsgálódni?
>> Egy ilyent találtam, de itt sincs megoldás:
>> http://www.opensubscriber.com/message/users@tomcat.apache.org/4364035.html
>>
>> A bajom az, hogy
>>
>> Viczi
>> _______________________________________________
>> Javalist mailing list
>> Javalist at javagrund.hu
>> http://javagrund.hu/mailman/listinfo/javalist
>>
>>
>
>
>
> --
> Verhás Péter
> ügyvezető
> Verhás & Verhás Szoftver Manufaktúra Kft.
> peter at verhas.com
> t: +36(30)9306805
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>


További információk a(z) Javalist levelezőlistáról