Questa è una vecchia versione del documento!
Indice
Descrizione log applicativi di DocWay4, MSA e Equinotifier
Questo documento ha lo scopo di fornire alcune descrizioni relative alla lettura e analisi dei log prodotti dagli applicativi di 3D Informatica.
DocWay4
In DocWay la produzione dei log è affidata alla libreria di logging Apache log4j 1.2.
La configurazione di base prevede la produzione di log ciclici: docway4.log, docway4.log.1…docway4.log.<n> e docway4-service.log, docway4-service.log.1…docway4-service.log.<n>:
- docway4.log: si tratta dei log dell'applicativo DocWay vero e proprio, ossia della web application scritta utilizzando il framework Java Server Faces. Questi log sostanzialmente hanno come scopo quello di tracciare eventuali errori applicativi per facilitarne l'individuazione e la risoluzione.
- docway4-service.log: in questi log vengono tracciate tutte le richieste HTTP che vengono effettuate dalla web application DocWay4 verso la web application di backend denominata Service. Il Service identifica ossia lo strato software che riceve tutte le richieste, le elabora e restituisce il risultato. Questo log è destinato ad un utilizzo prettamente sistemistico per l'individuazione degli errori anche se traccia tutte le operazioni del sistema: utente, timestamp, parametri.
Questi log vengono creati nella directory logs di Apache Tomcat 7.
docway4.log
In questi log vengono tracciati gli accessi applicativi e il caricamento dei template utilizzati da Docway4:
Esempio accesso utente: 2017-01-24 09:44:39,096 [ajp-bio-8009-exec-24] INFO - LoginFilter.doFilter(), remoteUser caricato: GRGNNL64B56D205V Esempio caricamento home: 2017-01-24 09:44:39,111 [ajp-bio-8009-exec-24] INFO - /DocWay4/docway/home.jsf entering request #37666 Esempio caricamento template: 2017-01-24 09:44:39,111 [ajp-bio-8009-exec-25] INFO - /DocWay4/docway/showdoc@arrivo.jsf exiting request #37665 (187ms)
Non tutti gli errori riscontrati nel log sono significativi e pertanto possono essere tralasciati. Ad esempio i seguenti:
2017-01-24 09:44:40,299 [ajp-bio-8009-exec-23] ERROR - NumConverter.getAsString(): got exception... For input string: "" 2017-01-24 09:44:34,767 [ajp-bio-8009-exec-23] ERROR - ClassifConverter.getAsObject(): got exception... For input string: "A3.2"
docway4-service.log
Tutte le richieste in ingresso vengono tracciate tramite una stringa del tipo:
<acl o docway jsp (resource path)> entering request #<request number> {key-value pairs (http parameters)}
Esempio:
2017-02-13 16:49:27,646 [http-bio-8080-exec-66] INFO - /DocWay4-service/application/xdocway/engine/xdocway.jsp entering request #292 {fascicoli_MostraGerarchia=, cuttingBranch=, personalView=, physDoc_infasc=, pwdLock=, cod_uff_infasc=, resourceFileCustomDir=, pwdInfo=, hierStatus=0, soggetto_infasc=, pos=0, qopt=0, lookup_xq=, physDoc=, selid=, languageMarker=traduzione@lingua, mansioni=Checker$#$RL0035;Sviluppatore$#$RL0003;Capo progetto$#$RL0002;Archivista professionista$#$RL0036, docStart=0, groups=, opt=0, currDate=20170213, pwdChangeInfo=, pageCount=12, host=, selTable=, cName=, qadj=0, lookup_campi=, propertyEntry=, jReportInfo=, selRac=, descrizione_rep=, stpTitle=, view=, language=it, showdocUOR=, qext=, cCount=, respUOR=, dt=xdocwaydoc, port=-1, _hca=, wfId=, appStringPreferences=§10§§§§§Si§Si§Si§A§No§§§3, query=, cIsPublic=, colsSize=, hierCount=24, dw4customTemplate=, revSel=, sele=0 0 ,103979, xdocwaydoc ;0, childLast=1, _hcf=, rangeDocs=, lookup_alias=, browser=, _r=, warnings=, verbo=query, rolesManagement=true, allotri=, qord=, matricola=PI000156, keypath='', globalFormRestore=, urlToLaunch=, enableIW=false, opNomePersona=Amministratore Docway, classif_infasc=, pwd=, nome_uff_infasc=, keyCount=12, userRights=, tipo_uff_infasc=, specificDbCode=, klAll=, lookup_db=, xMode=, count=0, jsessionid=F47BA65FC3BBA5F28C42F06EFBD9247B, noRef=, thBackPage=thBackPage, bAssegnaLinkFasc=, pathFiles=, wfPos=, wfAction=, codice_rep=, lookup_fieldVal=, nome_persona_infasc=, login=, wfMode=, db=xdocwaydoc, classif_cod_infasc=, dbTable=@qmainpage, thVOptions=, relation='', fromLookup=, wfLock=, flap=, xverb=, transformJava=, uri=/DocWay4-service/application/xdocway/engine/xdocway.jsp, xslExportFilterName=, docInGestioneUOR=#|#ç00003|Servizio Tecnico Bologna, WfFunctionInteractionManagerClass=, diritto_infasc=, keylist=, opCodPersona=PI000156, toDo=, appPreferences=2, doceditUOR=, startkey='', currYear=2017, wfText=, pwdPhysdoc=, uorInGestioneSelected=00003, qordIdx1=, classifFormat=, klRac=, embeddedApp=, repVisComp=, userInfo=Amministratore Docway (Servizio Tecnico Bologna) [fgrillini@3di.it] %Programmatore%, jReportParams=, _cd=&h3Story=false&dicitCategoria=Categoria|Categorie&dicitComunicazione=Comunicazione|Comunicazioni&organi=BOL-ORG_PROVA|Organo di prova||Flusso_liquidazione_fatturaPA_asolo|01|Inserimento punto all'odg|Flusso_liquidazione_fatturaPA_asolo|delibera#|#BOL-aa|aaaaa||Flusso_di_prova|aa| Inserimento punto all odg|Flusso di prova|delibera#|#BOL-3DI|Consigli di amministrazione|1.rtf|Giunta_informativa_responsabili_area;Giunta_informativa_responsabili_area|01;02|Proposta CDA;Comunicazione CDA|Giunta informativa responsabili area;Giunta informativa responsabili area|delibera;comunicazione&lista_odg=BOL-ORG_PROVA:#|#BOL-aa:#|#BOL-3DI:ncandelora@3di.it&lista_risultati=BOL-ORG_PROVA:#|#BOL-aa:#|#BOL-3DI:ncandelora@3di.it&lista_verbali=BOL-ORG_PROVA:#|#BOL-aa:#|#BOL-3DI:ncandelora@3di.it&lista_seduta=BOL-ORG_PROVA:#|#BOL-aa:#|#BOL-3DI:ncandelora@3di.it&baseDocUrl=http://docway-test.3di.it:80/DocWay4/docway/&, acl=, hierSearchShow=none, qordIdx=, errorMsgHandType=, inclusionFields=, specificAppCode=, exclusionFields=, wfFCount=, cod_persona_infasc=, hierSearchList=, wfActive=true, selectedWfDocs=, lookup_new=, wfDoc=, lookup_titolo=, cId=, user=, wfSelId=, aclDb=acl}
La fine delle richieste viene tracciata tramite una stringa del tipo:
<acl o docway jsp (resource path)> exiting request #<request number> (<elapsed time>ms)
Esempio:
2017-02-13 16:49:29,009 [http-bio-8080-exec-66] INFO - /DocWay4-service/application/xdocway/engine/xdocway.jsp exiting request #292 (1364ms)
Anche in questo caso nel log vengono scritti errori non significativi che posso essere ignorati:
2017-02-14 16:56:22,545 [http-bio-8080-exec-388] ERROR - invalid query="" 2017-02-14 16:56:51,551 [http-bio-8080-exec-519] ERROR - 2017.02.14 16:56:51.551 conn 2 Errore di apertura 2017-02-14 16:56:51,551 [http-bio-8080-exec-519] ERROR - Error page caught an exception! java.sql.SQLException: Errore di apertura 2017-02-14 17:00:57,327 [http-bio-8080-exec-404] ERROR - 2017.02.14 17:00:57.327 conn 2 Attenzione: non trovato documento figlio java.sql.SQLException: Attenzione: non trovato documento figlio
Altre tipologie di errori sono invece gestiti applicativamente con un messaggio di errore proposto all’utente; anche questi pertanto possono essere ignorati:
2017-02-14 17:02:04,236 [http-bio-8080-exec-420] ERROR - Email.sendWithMatricola(): got exception looking for email address for matricola PI001027 java.lang.Exception: Indirizzo email non valido 2017-02-14 17:05:35,401 [http-bio-8080-exec-470] ERROR - 2017.02.14 17:05:35.401 conn 2 Valore non univoco. Value is not unique Required Append (Violate 1337639) java.sql.SQLException: Valore non univoco. Value is not unique Required Append (Violate 1337639)
MailStorage Agent
Il MailStorage è il servizio che si occupa di recuperare i messaggi di posta dalle casella configurate in ACL e generare bozze/protocolli nell’archivio Docway. I log sono ciclici e localizzati al seguente percorso:
/opt/3di.it/docway_extra/MailStorage/logs/msa_agent.log , msa_agent.log.1, …
Se fossero presenti più istanze di MSA, i log di troverebbero nella directrory logs di ogni singola istanza.
La procedura di acquisizione dei messaggi inizia con l’accesso alla casella tramite le credenziali inserite in ACL; in questa fase possono verificarsi errori di autenticazione che sono mappati nel log:
Accesso a casella di posta semplice:
2017-01-20 07:16:03,690 INFO - storing email for mailbox 50 2017-01-20 07:16:03,690 INFO - connected to xdocwaydoc 2017-01-20 07:16:03,690 INFO - Connessione.connect(String): dbName: xdocwaydoc 2017-01-20 07:16:03,690 INFO - Connessione.connect(String): connection already connected to db "xdocwaydoc" --> doRestore = 49 2017-01-20 07:16:03,690 INFO - Notifying User: xw.msa 2017-01-20 07:16:03,690 INFO - Connessione.notifyUser(): getting ip address of localhost… 2017-01-20 07:16:03,690 INFO - Connessione.notifyUser(): notifying user "xw.msa" with ip address 10.55.240.107 on connection 0 2017-01-20 07:16:03,690 INFO - ...checking for new mail: protocol: pop3 popHost: webmail.equitaliaonline.it popPort: 110 login: Eqtspapop000378 2017-01-20 07:16:03,766 INFO - ... found 0 new messages
Accesso a casella di posta semplice con errore di autenticazione:
2017-01-19 19:36:48,286 INFO - storing email for mailbox 56 2017-01-19 19:36:48,286 INFO - connected to xdocwaydoc 2017-01-19 19:36:48,286 INFO - Connessione.connect(String): dbName: xdocwaydoc 2017-01-19 19:36:48,286 INFO - Connessione.connect(String): connection already connected to db "xdocwaydoc" --> doRestore = 10 2017-01-19 19:36:48,286 INFO - Notifying User: xw.msa 2017-01-19 19:36:48,286 INFO - Connessione.notifyUser(): getting ip address of localhost... 2017-01-19 19:36:48,286 INFO - Connessione.notifyUser(): notifying user "xw.msa" with ip address 10.55.240.107 on connection 0 2017-01-19 19:36:48,286 INFO - ...checking for new mail: protocol: pop3 popHost: webmail.equitaliaonline.it popPort: 110 login: eqtserpop000540 2017-01-19 19:36:48,417 ERROR - error retrieving mail for: protocol: pop3 popHost: webmail.equitaliaonline.it popPort: 110 login: eqtserpop000540 javax.mail.AuthenticationFailedException: Logon failure: unknown user name or bad password. at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:209) at javax.mail.Service.connect(Service.java:364) at it.highwaytech.util.mailer.ReceiveSession.<init>(ReceiveSession.java:90) at it.highwaytech.apps.generic.mailarchiver.MailBoxManager.storeEmail(MailBoxManager.java:366) at it.highwaytech.apps.generic.mailarchiver.MailStorageAgent.main(MailStorageAgent.java:308)