|
Страници по тази тема: 1 | 2 | 3 | 4 | (покажи всички)
Тема
|
Некои бози в кода - скука
|
|
Автор |
RealGuru (ентусиаст) |
Публикувано | 27.02.13 18:59 |
|
Сега значи преди 2-3 месеца тук постнах питане с проблем за Томкат. Благодаря за съветите на отзовалите се по темата.
Ко направихме и кво стана.
1. Минахме на Java 7 и на Tomcat 7.
2. Томкат 7 се рекламираха, че идва с негов си конекшън пул по-добър от dbcp - в common проектите. Цъкнахме да ползваме и този конекшън пул, още повече, че трябваше да се добави само един параметър factory="".
И почнаха да излизат едни варнинзи, че конекшън пула не е конфигуриран като хората и там ще се ползват някви дефайлтни настройки вместо тези дето сме дали.
Тоя конекшън пул лично аз съм го конфигурирал - обаче не знам порно ли съм гледал, фейсбук ли или съм бил пиян. Ама наистина бях омазал 5-те настройки дето трябва да се цъкнат.
Извод - четете шибаната документация, дори и да мислите, че знаете какво правите и дори да си мислите, че имената на параметрите и настройките са достатъчно описателни.
Втори извод - като пишете някакъв код, който се конфигурира с параметри е добре да правите като новия пул на Томкат - демек да логвате някакви варнинзи. А не като стария dbcp - който не е ясно какво е правил точно.
Та приложението фърчи с правилно конфигуриран конекшън пул.
3. По някакви причини стария Томкат не е логвал някои ексепшъни. Демек сега със Томкат 7 взеха да излизат някакви грешки, който се базират на това, че кодът не е Thread Safe. На едно място имаше само Concurrent Modification Exception - което говори за прилично написан код.
4. Друга грешка, която се оказа значително по-често срещана беше Lazy Initialization-а просто както сме го правили не е Thread Safe.
Никога не правете така у уеб апликейшън (а и не само там):
private member = null;
public Member getMember() {
if (member == null) {
member = new Member();
member.setSomething();
member.doSomething();
}
return member;
}
Или локална променлива или заключване или инициализирайте при викане на конструктора.
| |
|
за ТОВА?
Думи нямам
Кучкоразводач...
| |
|
ми предвид какви чудеса са навлезли с джава 7 - що не.
Народът няма нужда от вредни сензации. Народът има нужда от полезни сензации.
| |
Тема
|
Re: Некои бози в кода - скука
[re: RealGuru]
|
|
Автор |
rabin () |
Публикувано | 27.02.13 19:22 |
|
Не се радвай много, аз пък се върнах на Томкат 6. Не, че ми е кеф.
| |
|
която да го направя за 3 часа?
| |
|
"Или локална променлива или заключване или инициализирайте при викане на конструктора."
или научете първо какво е това volatile променлива в Java и тогава давайте изчерпателни съвети
Редактирано от Cин Mapмoт на 27.02.13 22:18.
| |
Тема
|
Re: Некои бози в кода - скука
[re: RealGuru]
|
|
Автор |
Aaron (charming) |
Публикувано | 27.02.13 23:06 |
|
Никога не правете така у уеб апликейшън (а и не само там):...
И защо да не го правим?
А, да, сетих се:-)
Java Servlets, ахахахахаха:-)
Вие джаварите много неща има да учите и да анализирате:-)
| |
|
Е, дай пък да нацъкаме всичко volatile, щото на някой му е хрумнало, че е голяма далавера, да не си инициализираме локалните променливи кога трябва (най-късно - у конструктора) а после, кога сме "раздали" референсите и всеки тред е почнал да ръга
Volatile - като пишеш на Java управление на микроконтролери
| |
|
Ха-ха, баце ти разкърти мивката с този код - викате я гетъра да вземе да поизпълни малко код "setSomething", "doSomething" ...
Нищо лично към теб, уважвам хора дето си признават грешките пък и вероятно не си го писал ти точно това. Ама по-лошо от незнанието е само полу-знанието.
| |
|
Ех, отворко, к'ва досада си просто - не е истина.
Не стига, че си неуспял програмист, разжалван в Q&A, ами и не пропускаш да блъвнеш някой гущер.
Почни така да се отваряш и на германците да ти нашокат рапята.
Я ни светни сега - и в немачко ли си Q&A или успя да ги измамиш и ти дадоха да пипаш по кода?
| |
|
Страници по тази тема: 1 | 2 | 3 | 4 | (покажи всички)
|
|
|