Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise...

49
Java a JEE Peter Girovský IBM

Transcript of Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise...

Page 1: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Java a JEE

Peter Girovský IBM

Page 2: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

● Čo je to JEE (J2EE)?● WebSphere Application Server (WAS)● WebSphere Application Server Network

Deployment koncept● Vysoká dostupnosť aplikácií a služieb v JEE

svete● JEE aplikácie a prevádzkové problémy v praxi

Obsah

Page 3: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Čo je JEE?

Page 4: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

JEE špecifikácie (WAS 7)Špecifikácia alebo API Verzia

Java™ Platform, Enterprise Edition (Java EE) specification

Java EE 5J2EE 1.4J2EE 1.3

Java Platform, Standard Edition (Java SE) specification

Java SE 6 New

Java Servlet specification (JSR 154 and JSR 53) Java Servlet 2.5Java Servlet 2.4Java Servlet 2.3

JavaServer Faces (JSF) specification (JSR 252 and 127)

JSF 1.2

JavaServer Pages (JSP) specification (JSR 245, JSR 152, and JSR 53)

JSP 2.1 JSP 2.0JSP 1.2

Enterprise JavaBeans™ (EJB) specification EJB 3.0EJB 2.1EJB 2.0

Java DataBase Connectivity (JDBC) API JDBC 4.0JDBC 3.0JDBC 2.1

Java Message Service (JMS) specification JMS 1.1

Page 5: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server

Page 6: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebShere 7 packaging

WebSphere base code

WebSphereApplication

Server Express

WebSphere base code

WebSphereApplication

Server

WebSphere base code

WebSphereApplication

Server Network Deployment

Licencia

Vysoká dostupnosťškálovateľnosť, centralizovaná

administrácia,..

Page 7: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server

● Platforma pre Java-based aplikácie● Implementácia JEE ● Poskytuje servisy pre aplikácie (threading, DB

connectivity, WLM,..)

Aplikácia

HW, OS, Databáza,storage, sieť

Page 8: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server (1/10)

Page 9: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server (2/10)

Page 10: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server (3/10)

Page 11: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server (4/10)

Page 12: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server (5/10)

Page 13: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server (6/10)

Page 14: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server (7/10)

Page 15: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server (8/10)

Page 16: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server (9/10)

Page 17: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server (10/10)

Page 18: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server Administrácia(1/3)

Page 19: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server Administrácia(2/3)

Page 20: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server Administrácia(3/3)

Page 21: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application ServerNetwork Deployment

koncept

Page 22: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Koncept WAS ND (1/2)

● dmgr proces – riadi nody● nodeagent proces – riadi aplikačné servery

Page 23: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Koncept WAS ND (2/2)

Page 24: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Vysoká dostupnosť aplikácií a služieb v JEE svete

Page 25: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

HA terminológia

● High Availability● system design, zaručujúci dostupnosť aplikácií počas

plánovaného aj neplánovaného výpadku● Request Redirection – failover

● pokus o request na server a v prípade pádu servera presmerovanie tohto requestu na iný – dostupný

server

● Disaster Recovery● fyzická rekonštrukcia produkčnej prevádzky v záložnom

dátovom centri ● viacero stratégií (odkladanie na pásku, mirror na úrovni

storage,..)

Page 26: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Čo je to workload management (WLM)?

● Zdieľanie požiadaviek medzi viacerými servermi

● Výkon – zlepšenie odoziev aplikácií● Škálovanie – nárast kapacity● Load Balancing – proporčné rozdelenie

požiadaviek medzi zdroje – servery● Dostupnosť – aplikácie sú dostupné ak aj

padne server

Page 27: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

WebSphere Application Server

Page 28: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Web request WLM

Page 29: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

EJB request WLM

Page 30: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Session affinity (1/2)

● HTTP protokol je bez-stavový● Session objekt je server-side objekt● Čo sa stane so session pri páde servera?

Page 31: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Session affinity (2/2)

Page 32: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Failover (1/2)

Page 33: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Failover (2/2)

Page 34: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Failover ďalších komponentov

● Čo v prípade pádu load balancer-a?● LB active-standby – preklápa servisnú IP

● Čo v prípade pádu databázy?● V prípade pádu preklopí DB napr. IBM HACMP

● Čo v prípade zlyhania HW vrstvy?● Cluster je na niekoľkých fyzických serveroch

Page 35: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

HA Gold Standard

Page 36: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

JEE aplikácie a prevádzkové problémy v praxi

Page 37: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Odhaľovanie úzkeho hrdla v GC (1/4)

Page 38: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Odhaľovanie úzkeho hrdla v GC (2/4)

Page 39: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Odhaľovanie úzkeho hrdla v GC (3/4)

Page 40: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Odhaľovanie úzkeho hrdla v GC (4/4)

● Prenášanie WebService attachmentov ako base64 encoded string – alokácie až do 300 MB!

● Je potrebné streamovať● Spracovávať veľké objekty po kusoch – DOM

vs SAX● Prehodnotiť 64bit java vs 32bit java – pozor 32

bit Java je výkonnejšia

Page 41: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

OutOfMemory

Leaking Container Object Type Leak Unit Object Type Number ofInstances

Heap Size of LeakContainer

sk.ditec.etax.ep.EPSingleton java.util.HashMap 3 517MBjava.util.HashMap sk.ditec.etax.ep.EPDocument 4103 517MBsk.ditec.etax.ep.EPDocument java.lang.String 34458 337MB

Page 42: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Hung process - problém3XMTHREADINFO "Servlet.Engine.Transports : 127" (TID:0x704E7A10, sys_thread_t:0x43E0EF28, state:R, native ID:0xE0EF) prio=5 4XESTACKTRACE at java.net.SocketOutputStream.socketWrite0(Native Method) 4XESTACKTRACE at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java(Compiled Code)) 4XESTACKTRACE at java.net.SocketOutputStream.write(SocketOutputStream.java(Compiled Code)) 4XESTACKTRACE at com.ibm.sslite.t.a(t.java(Compiled Code)) 4XESTACKTRACE at com.ibm.sslite.b.write(b.java(Compiled Code)) 4XESTACKTRACE at com.ibm.jsse.b.write(Unknown Source) 4XESTACKTRACE at com.ibm.rmi.util.buffer.SimpleByteBuffer.flushTo(SimpleByteBuffer.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.IIOPOutputStream.writeTo(IIOPOutputStream.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.Connection.sendFragment(Connection.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.IIOPOutputStream.sendFragment(IIOPOutputStream.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.CDROutputStream.grow(CDROutputStream.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.CDROutputStream.alignAndReserve(CDROutputStream.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.CDROutputStream.writeOctetArrayPiece(CDROutputStream.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.CDROutputStream.write_octet_array(CDROutputStream.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.CDROutputStream.write_octet_array(CDROutputStream.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.ClientRequestImpl.write_octet_array(ClientRequestImpl.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.ServiceContext.write(ServiceContext.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.RequestMessage.write(RequestMessage.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.ClientRequestImpl.<init>(ClientRequestImpl.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.GIOPImpl.createRequest(GIOPImpl.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.iiop.GIOPImpl.createRequest(GIOPImpl.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.corba.ClientDelegate._createRequest_WLM(ClientDelegate.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java(Compiled Code)) 4XESTACKTRACE at com.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java(Compiled Code)) 4XESTACKTRACE at com.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.java(Compiled Code)) 4XESTACKTRACE at com.ibm.rmi.corba.ClientDelegate.request(ClientDelegate.java(Compiled Code)) 4XESTACKTRACE at com.ibm.CORBA.iiop.ClientDelegate.request(ClientDelegate.java(Compiled Code)) 4XESTACKTRACE at org.omg.CORBA.portable.ObjectImpl._request(ObjectImpl.java(Compiled Code)) 4XESTACKTRACE at sk.novitech.etax.et.dt.docType._DocumentTypeHome_Stub.create(_DocumentTypeHome_Stub.java(Compiled Code)) 4XESTACKTRACE at sk.novitech.etax.et.dt.docType.DocumentTypeRemoteClient.getEjb(DocumentTypeRemoteClient.java(Compiled Code)) 4XESTACKTRACE at PodanieDPWAR.service(PodanieDPWAR.java(Compiled Code)) 4XESTACKTRACE at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code)) 4XESTACKTRACE at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java(Compiled Code)) 4XESTACKTRACE at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java(Compiled Code)) 4XESTACKTRACE at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java(Compiled Code))

Page 43: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Hung process – riešenie (1/2)public class LookupCache {

private static LookupCache instance;private static Logger logger = LoggerUtils.getLogger(LookupCache.class.getCanonicalName());private Context context;private Map<String, EJBHome> cache;private LookupCache() throws NamingException{

cache = new WeakHashMap<String, EJBHome>();context = new InitialContext();

}

public static LookupCache getInstance() throws NamingException{if(instance == null) {

instance = new LookupCache();}return instance;

}

public EJBHome lookupHome(String jndiRefName, String classToCast) throws NamingException, ClassCastException,ClassNotFoundException{

logger.entering(LookupCache.class.getCanonicalName(), "lookupHome");EJBHome home = null;if(logger.isLoggable(Level.FINEST)) {

logger.logp(Level.FINEST, LookupCache.class.getCanonicalName(), "lookupHome", "trying to lookup " + jndiRefName + " andnarrow it to " +classToCast);

}if(cache.containsKey(jndiRefName)) {

home = cache.get(jndiRefName);} else {

Object object = context.lookup(jndiRefName);home = (EJBHome) PortableRemoteObject.narrow(object, Class.forName(classToCast));cache.put(jndiRefName, home);

}logger.exiting(LookupCache.class.getCanonicalName(), "lookupHome",home);return home;

}}

Page 44: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Hung process – riešenie (2/2)

public class ServiceLocator {

public static DocumentType getDocumentType() {DocumentType documentType = null;DocumentTypeHome documentTypeHome = null;EJBHomeCache cache = EJBHomeCache.getInstance();try {

documentTypeHome = (DocumentTypeHome) cache.lookupHome(DOCUMENT_TYPE_JNDI_REF_NAME, DocumentTypeHome.class);documentType = documentTypeHome.create();

} catch (RemoteException e) {logger.log(Level.SEVERE, e.getMessage(), e);

} catch (NamingException e) {logger.log(Level.SEVERE, e.getMessage(), e);

} catch (CreateException e) {logger.log(Level.SEVERE, e.getMessage(), e);

}return documentType;

}

public class CacheRemoteServlet extends HttpServlet {

private DocumentType documentType;

public void init() throws ServletException {super.init();documentType = ServiceLocator.getDocumentType();

}//volanie v doGet alebo doPost

if (documentType != null) {String str = documentType.getDocumentTypeInfo();request.setAttribute(CacheHomeServlet.RETURN_VALUE_ATTR_NAME, str);

}//...

Page 45: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Logovanie – ako to nemá vyzerať2/16/10 13:09:03:298 CET] 6a2497ef SystemOut O 1. Nieje null dopytNaDanoveKalendare.[2/16/10 13:09:03:298 CET] 6a2497ef SystemOut O Ahoj urobil som dopytNaDanoveKalendare. [2/16/10 13:09:03:299 CET] 6a2497ef SystemOut O 2. Nieje null dopytNaDanoveKalendare. [2/16/10 13:09:03:387 CET] 6a2497ef SystemOut O nacitane bean.zobrazit 0[2/16/10 13:09:09:002 CET] 69ee97ef SystemOut O userId =null [2/16/10 13:09:09:003 CET] 69ee97ef SystemOut O ---adding--- SessionId:2108752105 [2/16/10 13:09:13:137 CET] 6a1897ef SystemOut O pripomienky nenacitavam... [2/16/10 13:09:13:144 CET] 6a2497ef SystemOut O pripomienky nenacitavam... [2/16/10 13:09:13:151 CET] c7e97ef SystemOut O pripomienky nenacitavam...

2/16/10 13:09:37:431 CET] 6a2497ef SystemOut O WPV5CURMRExample.V5WPSampleMemberRepositoryImpl.getUserByUniqueIdEJB() :ENDIPouzivatel=-----------------------------XUziv :1016074 XTitul :0 Meno :xxxxx Priezv : xxxxx Email :[email protected] :00000000000Fax :00000000000XUzivAutor :1 DPoslPrihl :2010-02-16 13:09:00.0 Rc :460416760 Ulica :Nitrianska COrient :3Obec :Senec Psc :90301 XStat :703 CPasu : XJazyk :2 Heslo :null identKod :tono koOdp1 :31323 koOdp2 :null koOdp3 :null PrznCert :1000 BlokDoD :null XPrac :0

Page 46: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Logovanie - odporúčania (1/2)

● vyvarovať sa volaniam System.out.println, System.err.println v aplikačnom kóde

● na logovanie použiť framework java.util.logging

● oddeliť systémové logy od aplikačných – teda logovať do samostatných súborov v rovnakom adresári ako sú logy aplikačného servera.

● Logovať len naozaj nevyhnutné informácie potrebné pre prevádzku

● presunúť debug informácie a osobné údaje o subjektoch do hlbšej úrovne logovania ako je info

Page 47: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Logovanie - odporúčania (2/2)String loggerNames [] = {"name1", "name2", "name3" } ;Handler myHandler = null ;try {

myHandler = new FileHandler("/tmp/MyOutput") ;} catch (Exception e) {

System.out.println("Do something on IOException");}

for (int i = 0; i < loggerNames.length; i++) {// Consider rbundle tooLogger myLogger = Logger.getLogger(loggerNames[i]) ;

myLogger.setUseParentHandlers(false) ;myLogger.addHandler(myHandler) ;

}

// vytvorenie util triedy so statickou metódouLoggerUtils.getLogger(String loggerName)// volanie v triede

import java.util.logging.Logger;public class MyClass {

private static Logger logger = LoggerUtils.getLogger(MyClass.class.getCanonicalName());

//....body of class}

Page 48: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Session replication

● HTTP session objekty sa replikujú na jednotlivé JVM

● Session dáta sa musia serializovať a deserializovať

● Čím je objekt väčší, tým negatívnejšie ovplyvňuje výkon – záťaž na infraštruktúru aj na zaplnienie heap-u

Page 49: Java a JEE - stuba.skpolasek/courses/ass-sk/files/JEEGirovsky.pdfJava™ Platform, Enterprise Edition (Java EE) specification Java EE 5 J2EE 1.4 J2EE 1.3 Java Platform, Standard Edition

Ďakujem za pozornosť