SlideShare a Scribd company logo
1 of 4
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                                                                                                                                                  Blog:	
  http://musarra.wordpress.com	
  
                                                                                                                                                                                                                                   Mail:	
  antonio.musarra@gmail.com	
  
	
  

Configure	
  Kettle	
  debug	
  session	
  
          Durante	
   lo	
   sviluppo	
   e	
   test	
   di	
   un	
   plugin	
   per	
   Spoon,	
   che	
   ricordo	
   essere	
  
l’ambiente	
   dedicato	
   al	
   disegno	
   dei	
   processi	
   ETL	
   di	
   Kettle,	
   potrebbe	
   essere	
   utile	
  
avviare	
   delle	
   sessioni	
   di	
   debug1	
  utili	
   per	
   l’individuazione	
   di	
   eventuali	
   errori	
  
(bug)	
   rilevati.	
   In	
   questo	
   breve	
   articolo	
   vedremo	
   come	
   sia	
   possibile	
   per	
   un	
   plugin	
  
Kettle,	
   avviare	
   una	
   sessione	
   di	
   debug	
   dal	
   nostro	
   ambiente	
   di	
   sviluppo,	
   che	
  
ipotizziamo,	
   essere	
   Eclipse.	
   Il	
   plugin	
   oggetto	
   di	
   debug	
   che	
   prenderemo	
   come	
  
esempio	
   è	
   quello	
   distribuito	
   da	
   Pentaho	
   stessa	
   che	
   prende	
   il	
   nome	
   di	
  
DummyPlugin	
   3,	
   maggiori	
   dettagli	
   su	
   questo	
   plugin	
   sono	
   reperibili	
   all’indirizzo	
  
http://wiki.pentaho.com/display/EAI/DummyPlugin+3+plugin+page.	
  
          Esistono	
   diversi	
   modi	
   per	
   avviare	
   Kettle	
   in	
   modalità	
   di	
   debug,	
   la	
   via	
   più	
  
semplice	
   è	
   quella	
   di	
   modificare	
   le	
   opzioni	
   di	
   avvio	
   della	
   JVM	
   indicando	
   delle	
  
impostazioni	
  tali	
  per	
  cui	
  il	
  debugger	
  di	
  Eclipse	
  ma	
  in	
  generale	
  qualunque	
  tipo	
  di	
  
debugger	
  sarà	
  in	
  grado	
  di	
  connettersi	
  al	
  processo.	
  Le	
  nuove	
  opzioni	
  da	
  impostare	
  
alla	
  JVM	
  sono:	
  
	
  
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
Listato	
  1	
  Opzioni	
  di	
  avvio	
  della	
  JVM	
  

         Le	
   opzioni	
   indicate	
   nel	
   Listato	
   1	
   avvieranno	
   Kettle	
   in	
   modalità	
   di	
   debug	
  
aprendo	
  una	
  connessione	
  TCP/IP	
  in	
  listen	
  sulla	
  porta	
  8000	
  su	
  tutte	
  le	
  interfacce	
  
di	
  rete	
  della	
  propria	
  workstation.	
  Le	
  nuove	
  istruzioni	
  per	
  la	
  JVM	
  devono	
  essere	
  
indicate	
  sui	
  seguenti	
  file	
  posizionati	
  sulla	
  root	
  d’installazione	
  di	
  Kettle:	
  
         	
  
                • spoon.sh	
  per	
  gli	
  ambienti	
  Unix/Linux	
  
                • spoon.bat	
  per	
  gli	
  ambienti	
  Windows	
  
                • Info.plist	
   per	
   gli	
   ambienti	
   Mac	
   OS	
   X.	
   Questo	
   file	
   risiede	
   in	
   due	
  
                     locazioni	
  diverse:	
  
                          o Data	
  Integration	
  64-­‐bit.app/Contents	
  
                          o Data	
  Integration	
  32-­‐bit.app/Contents	
  
	
  
         Nel	
   Listato	
   2	
   e	
   Listato	
   3	
   sono	
   evidenziate	
   le	
   modifiche	
   apportate	
   ai	
   file	
  
spoon.sh	
  e	
  Info.plist,	
  in	
  modo	
  analogo	
  andrà	
  fatto	
  con	
  il	
  file	
  spoon.bat.	
  
	
  
OPT="$OPT $PENTAHO_DI_JAVA_OPTIONS -Djava.library.path=$LIBPATH -DKETTLE_HOME=$KETTLE_HOME -
DKETTLE_REPOSITORY=$KETTLE_REPOSITORY -DKETTLE_USER=$KETTLE_USER -
DKETTLE_PASSWORD=$KETTLE_PASSWORD -DKETTLE_PLUGIN_PACKAGES=$KETTLE_PLUGIN_PACKAGES -
DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT -Xdebug -Xnoagent -Djava.compiler=NONE -
Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
Listato	
  2	
  Modifica	
  apportata	
  al	
  file	
  spoon.sh.	
  

	
  
<key>VMOptions</key>
         <string>-Xmx256m -Xms256m -XX:MaxPermSize=128m -Xdebug -Xnoagent -
Djava.compiler=NONE -
Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000</string>
Listato	
  3	
  Modifica	
  apportata	
  al	
  file	
  Info.plist.	
  

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
1	
  Debugging	
  (o	
  semplicemente	
  debug)	
  è	
  un'attività	
  che	
  consiste	
  nell’individuazione	
  della	
  porzione	
  di	
  software	
  affetta	
  da	
  
errore	
  (bug)	
  rilevati	
  nei	
  software	
  a	
  seguito	
  dell'utilizzo	
  del	
  programma	
  (vedi	
  http://it.wikipedia.org/wiki/Debugging).	
  
30/03/11	
                                                                                                                                                                1	
  

                  This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                                                                                                                                               	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                         Blog:	
  http://musarra.wordpress.com	
  
                                                                                                          Mail:	
  antonio.musarra@gmail.com	
  
	
  
tcp4                  0             0     *.8000                       *.*                   LISTEN

[0x0-0x72072].Data Integration 64-bit[1556]: Listening for transport dt_socket at address: 8000                                                 	
  
Log	
  1	
  Output	
  del	
  comando	
  netstat	
  e	
  syslog	
  

      Al	
  Log	
  1	
  è	
  evidenziata	
  l’apertura	
  della	
  connessione	
  TCP/IP	
  dopo	
  l’avvio	
  di	
  
Spoon.	
  
      Dopo	
  aver	
  configurato	
  l’ambiente	
  Kettle	
  in	
  modalità	
  di	
  debug,	
  non	
  resta	
  che	
  
procedere	
   con	
   la	
   configurazione	
   del	
   debugger	
   di	
   Eclipse.	
   L’operazione	
   di	
  
configurazione	
   è	
   molto	
   semplice,	
   basta	
   aprire	
   la	
   configurazione	
   del	
   debugger	
   dal	
  
menu	
   Run-­‐>Debug	
   Configurations	
   e	
   creare	
   una	
   nuova	
   configurazione	
   come	
  
Remote	
  Java	
  Application,	
  così	
  come	
  indicato	
  in	
  Figura	
  1.	
  
	
  
	
  




                                                                                                                                                            	
  
	
  Figura	
  1	
  Configurazione	
  dei	
  debug	
  per	
  il	
  plugin	
  DummyPlugin3.	
  

         Una	
   volta	
   impostate	
   le	
   proprietà	
   di	
   connessione,	
   è	
   possibile	
   cliccare	
   sul	
  
pulsante	
  debug	
  per	
  avviare	
  la	
  connessione	
  con	
  il	
  server	
  di	
  debug	
  Kettle	
  in	
  listen	
  
sulla	
  porta	
  TCP/IP	
  8000.	
  
         A	
   questo	
   punto,	
   l’avvio	
   di	
   una	
   sessione	
   di	
   debug	
   diviene	
   veramente	
  
semplice,	
   è	
   necessario	
   impostare	
   un	
   breakpoint,	
   per	
   esempio	
   sul	
   metodo	
  
setValue()	
   della	
   classe	
   DummyPluginMeta	
   (vedi	
   Figura	
   2)	
   e	
   successivamente	
  
provare	
   a	
   modificare	
   i	
   metadati	
   del	
   plugin	
   dal	
   designer	
   Spoon.	
   Alla	
   conferma	
  
della	
  modifica	
  dei	
  metadati,	
  sarà	
  avviata	
  la	
  sessione	
  di	
  debug	
  dentro	
  Eclipse.	
  Le	
  
illustrazioni	
   a	
   seguire	
   mostrano	
   una	
   sintesi	
   degli	
   step	
   che	
   consentono	
   l’avvio	
  
della	
  sessione	
  di	
  debug.	
  
         Consiglio	
  la	
  lettura	
  dell’articolo	
  Developing	
  a	
  custom	
  Kettle	
  Plugin:	
  Looking	
  
up	
  values	
  in	
  Voldemort	
  e	
  del	
  blog	
  dello	
  stesso	
  autore	
  Slawomir	
  Chodnicki.	
  
30/03/11	
                                                                                                                                             2	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                          	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                         Blog:	
  http://musarra.wordpress.com	
  
                                                                                                          Mail:	
  antonio.musarra@gmail.com	
  
	
  
	
  
	
  




                                                                    	
  
Figura	
  2	
  Debug	
  breakpoint	
  sul	
  metodo	
  setValue()	
  della	
  classe	
  DummyPluginMeta.	
  

	
  




                                                                                                  	
  
Figura	
  3	
  Trasformazione	
  che	
  include	
  il	
  plugin	
  DummyPlugin.	
  

	
  




                                                                           	
  
Figura	
  4	
  Modifica	
  dei	
  metadati	
  del	
  plugin	
  DummyPlugin.	
  

	
  




                                                                           	
  
Figura	
  5	
  Cambio	
  prospettiva	
  di	
  Eclipse.	
  

	
  




30/03/11	
                                                                                                                                            3	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                         	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                         Blog:	
  http://musarra.wordpress.com	
  
                                                                                                          Mail:	
  antonio.musarra@gmail.com	
  
	
  




                                                                                                                                                           	
  
Figura	
  6	
  Prospettiva	
  di	
  Debug	
  di	
  Eclipse	
  durante	
  la	
  sessione	
  di	
  debug.	
  




30/03/11	
                                                                                                                                            4	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                         	
  
	
  

More Related Content

Similar to Configure Kettle debug session

Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMAntonio Musarra
 
Costruire un client Java per SugarCRM
Costruire un client Java per SugarCRMCostruire un client Java per SugarCRM
Costruire un client Java per SugarCRMAntonio Musarra
 
TYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaTYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaRoberto Torresani
 
TYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaTYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaRoberto Torresani
 
Manuale Configurazione Docebo
Manuale Configurazione DoceboManuale Configurazione Docebo
Manuale Configurazione DoceboFormaLms
 
Wordpress la guida
Wordpress la guidaWordpress la guida
Wordpress la guidalajonard
 
Distribuzione delle sessioni in PHP in caso di load balancing su più server
Distribuzione delle sessioni in PHP in caso di load balancing su più serverDistribuzione delle sessioni in PHP in caso di load balancing su più server
Distribuzione delle sessioni in PHP in caso di load balancing su più serverGianluca Gimigliano
 
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novitàTYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novitàRoberto Torresani
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaRoberto Torresani
 
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...Xhoi Kerbizi
 
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"GiacomoVassallo
 
Liferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomLiferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomAntonio Musarra
 
Guida al computer - Lezione 98 - Pannello di Controllo – Account Utente Parte 2
Guida al computer - Lezione 98 - Pannello di Controllo – Account Utente Parte 2Guida al computer - Lezione 98 - Pannello di Controllo – Account Utente Parte 2
Guida al computer - Lezione 98 - Pannello di Controllo – Account Utente Parte 2caioturtle
 
Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Valerio Radice
 
TYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novitàTYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novitàRoberto Torresani
 

Similar to Configure Kettle debug session (20)

Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRM
 
Costruire un client Java per SugarCRM
Costruire un client Java per SugarCRMCostruire un client Java per SugarCRM
Costruire un client Java per SugarCRM
 
TYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novitàTYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novità
 
TYPO3 CMS 9.1 - Le novità
TYPO3 CMS 9.1 - Le novitàTYPO3 CMS 9.1 - Le novità
TYPO3 CMS 9.1 - Le novità
 
TYPO3 CMS 8.0 - Le novità
TYPO3 CMS 8.0 - Le novitàTYPO3 CMS 8.0 - Le novità
TYPO3 CMS 8.0 - Le novità
 
TYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaTYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novita
 
TYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaTYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novita
 
Manuale Configurazione Docebo
Manuale Configurazione DoceboManuale Configurazione Docebo
Manuale Configurazione Docebo
 
Wordpress la guida
Wordpress la guidaWordpress la guida
Wordpress la guida
 
Distribuzione delle sessioni in PHP in caso di load balancing su più server
Distribuzione delle sessioni in PHP in caso di load balancing su più serverDistribuzione delle sessioni in PHP in caso di load balancing su più server
Distribuzione delle sessioni in PHP in caso di load balancing su più server
 
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novitàTYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novita
 
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
 
TYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novitaTYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novita
 
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"
 
Liferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomLiferay: Esporre Web Services Custom
Liferay: Esporre Web Services Custom
 
Corso java
Corso javaCorso java
Corso java
 
Guida al computer - Lezione 98 - Pannello di Controllo – Account Utente Parte 2
Guida al computer - Lezione 98 - Pannello di Controllo – Account Utente Parte 2Guida al computer - Lezione 98 - Pannello di Controllo – Account Utente Parte 2
Guida al computer - Lezione 98 - Pannello di Controllo – Account Utente Parte 2
 
Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]
 
TYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novitàTYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novità
 

More from Antonio Musarra

Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cAntonio Musarra
 
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Antonio Musarra
 
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cAntonio Musarra
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.comAntonio Musarra
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseAntonio Musarra
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Antonio Musarra
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleAntonio Musarra
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
SugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceSugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceAntonio Musarra
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMAntonio Musarra
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelAntonio Musarra
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioAntonio Musarra
 
Introduzione a Liferay Message BUS
Introduzione a Liferay Message BUSIntroduzione a Liferay Message BUS
Introduzione a Liferay Message BUSAntonio Musarra
 
Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Antonio Musarra
 
SugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientSugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientAntonio Musarra
 
Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRMAntonio Musarra
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleAntonio Musarra
 

More from Antonio Musarra (20)

Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
 
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
 
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.com
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
 
OSGi e Liferay 7
OSGi e Liferay 7OSGi e Liferay 7
OSGi e Liferay 7
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
SugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceSugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual Appliance
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRM
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio Excel
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo Episodio
 
Introduzione a Liferay Message BUS
Introduzione a Liferay Message BUSIntroduzione a Liferay Message BUS
Introduzione a Liferay Message BUS
 
Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0
 
SugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientSugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF Client
 
Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRM
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per Oracle
 

Configure Kettle debug session

  • 1. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     Configure  Kettle  debug  session   Durante   lo   sviluppo   e   test   di   un   plugin   per   Spoon,   che   ricordo   essere   l’ambiente   dedicato   al   disegno   dei   processi   ETL   di   Kettle,   potrebbe   essere   utile   avviare   delle   sessioni   di   debug1  utili   per   l’individuazione   di   eventuali   errori   (bug)   rilevati.   In   questo   breve   articolo   vedremo   come   sia   possibile   per   un   plugin   Kettle,   avviare   una   sessione   di   debug   dal   nostro   ambiente   di   sviluppo,   che   ipotizziamo,   essere   Eclipse.   Il   plugin   oggetto   di   debug   che   prenderemo   come   esempio   è   quello   distribuito   da   Pentaho   stessa   che   prende   il   nome   di   DummyPlugin   3,   maggiori   dettagli   su   questo   plugin   sono   reperibili   all’indirizzo   http://wiki.pentaho.com/display/EAI/DummyPlugin+3+plugin+page.   Esistono   diversi   modi   per   avviare   Kettle   in   modalità   di   debug,   la   via   più   semplice   è   quella   di   modificare   le   opzioni   di   avvio   della   JVM   indicando   delle   impostazioni  tali  per  cui  il  debugger  di  Eclipse  ma  in  generale  qualunque  tipo  di   debugger  sarà  in  grado  di  connettersi  al  processo.  Le  nuove  opzioni  da  impostare   alla  JVM  sono:     -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 Listato  1  Opzioni  di  avvio  della  JVM   Le   opzioni   indicate   nel   Listato   1   avvieranno   Kettle   in   modalità   di   debug   aprendo  una  connessione  TCP/IP  in  listen  sulla  porta  8000  su  tutte  le  interfacce   di  rete  della  propria  workstation.  Le  nuove  istruzioni  per  la  JVM  devono  essere   indicate  sui  seguenti  file  posizionati  sulla  root  d’installazione  di  Kettle:     • spoon.sh  per  gli  ambienti  Unix/Linux   • spoon.bat  per  gli  ambienti  Windows   • Info.plist   per   gli   ambienti   Mac   OS   X.   Questo   file   risiede   in   due   locazioni  diverse:   o Data  Integration  64-­‐bit.app/Contents   o Data  Integration  32-­‐bit.app/Contents     Nel   Listato   2   e   Listato   3   sono   evidenziate   le   modifiche   apportate   ai   file   spoon.sh  e  Info.plist,  in  modo  analogo  andrà  fatto  con  il  file  spoon.bat.     OPT="$OPT $PENTAHO_DI_JAVA_OPTIONS -Djava.library.path=$LIBPATH -DKETTLE_HOME=$KETTLE_HOME - DKETTLE_REPOSITORY=$KETTLE_REPOSITORY -DKETTLE_USER=$KETTLE_USER - DKETTLE_PASSWORD=$KETTLE_PASSWORD -DKETTLE_PLUGIN_PACKAGES=$KETTLE_PLUGIN_PACKAGES - DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT -Xdebug -Xnoagent -Djava.compiler=NONE - Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" Listato  2  Modifica  apportata  al  file  spoon.sh.     <key>VMOptions</key> <string>-Xmx256m -Xms256m -XX:MaxPermSize=128m -Xdebug -Xnoagent - Djava.compiler=NONE - Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000</string> Listato  3  Modifica  apportata  al  file  Info.plist.                                                                                                                   1  Debugging  (o  semplicemente  debug)  è  un'attività  che  consiste  nell’individuazione  della  porzione  di  software  affetta  da   errore  (bug)  rilevati  nei  software  a  seguito  dell'utilizzo  del  programma  (vedi  http://it.wikipedia.org/wiki/Debugging).   30/03/11   1   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 2. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     tcp4 0 0 *.8000 *.* LISTEN [0x0-0x72072].Data Integration 64-bit[1556]: Listening for transport dt_socket at address: 8000   Log  1  Output  del  comando  netstat  e  syslog   Al  Log  1  è  evidenziata  l’apertura  della  connessione  TCP/IP  dopo  l’avvio  di   Spoon.   Dopo  aver  configurato  l’ambiente  Kettle  in  modalità  di  debug,  non  resta  che   procedere   con   la   configurazione   del   debugger   di   Eclipse.   L’operazione   di   configurazione   è   molto   semplice,   basta   aprire   la   configurazione   del   debugger   dal   menu   Run-­‐>Debug   Configurations   e   creare   una   nuova   configurazione   come   Remote  Java  Application,  così  come  indicato  in  Figura  1.          Figura  1  Configurazione  dei  debug  per  il  plugin  DummyPlugin3.   Una   volta   impostate   le   proprietà   di   connessione,   è   possibile   cliccare   sul   pulsante  debug  per  avviare  la  connessione  con  il  server  di  debug  Kettle  in  listen   sulla  porta  TCP/IP  8000.   A   questo   punto,   l’avvio   di   una   sessione   di   debug   diviene   veramente   semplice,   è   necessario   impostare   un   breakpoint,   per   esempio   sul   metodo   setValue()   della   classe   DummyPluginMeta   (vedi   Figura   2)   e   successivamente   provare   a   modificare   i   metadati   del   plugin   dal   designer   Spoon.   Alla   conferma   della  modifica  dei  metadati,  sarà  avviata  la  sessione  di  debug  dentro  Eclipse.  Le   illustrazioni   a   seguire   mostrano   una   sintesi   degli   step   che   consentono   l’avvio   della  sessione  di  debug.   Consiglio  la  lettura  dell’articolo  Developing  a  custom  Kettle  Plugin:  Looking   up  values  in  Voldemort  e  del  blog  dello  stesso  autore  Slawomir  Chodnicki.   30/03/11   2   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 3. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com           Figura  2  Debug  breakpoint  sul  metodo  setValue()  della  classe  DummyPluginMeta.       Figura  3  Trasformazione  che  include  il  plugin  DummyPlugin.       Figura  4  Modifica  dei  metadati  del  plugin  DummyPlugin.       Figura  5  Cambio  prospettiva  di  Eclipse.     30/03/11   3   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 4. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com       Figura  6  Prospettiva  di  Debug  di  Eclipse  durante  la  sessione  di  debug.   30/03/11   4   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike