giovedì 16 ottobre 2025

ODI 12c/14c - How to use Function Listagg and Group by condition in ODI Mappings

 Di seguito un esempio di come integrare la funzione di  oracle Listagg in ODI.

Supponiamo di dover fare una aggregazione ed inserire in una tabella il risultato, consideriamo una tabella dello schema HR di oracle ed ineriamo in una tabella copia,

Questo sarà il mapping:



Occorre inserire la funzione di Listagg all'interno di un componente AGGREGATE.

A questo punto quando verrà generato in simulazione la query avremo la select corretta.



Per verificare che la funzione Listagg sia vista come una funzione di aggregazione possiamo verificare sulla topologia che sia presente nel linguaggio come funzione di Aggregazione.



Nota: in alcune versioni di ODI MarketPlace 14c su Cloud ci potrebbe essere un bug. 



mercoledì 1 ottobre 2025

ODI 14c - Come concedere grant di esecuzioni di uno scenario ad un utente ODI

Per concedere i diritti di esecuzione di uno scenario ODI 14c a un utente presente nel repository ODI, occorre agire tramite il modulo di sicurezza di ODI. 

I passi principali sono:

  1. Aprire ODI Studio e accedere alla sezione di Sicurezza (Security).
  2. Nella vista utenti (Users), selezionare o aggiungere l'utente a cui concedere i diritti.
  3. Nei permessi degli oggetti (Objects), individuare lo scenario o il progetto che contiene lo scenario.

Per concedere il permesso di esecuzione (Execute) sull'oggetto scenario occorre trascinare questo sull'utente o assegnando i relativi metodi legati al progetto o scenario.

Confermare e salvare le modifiche.

L'utente deve avere almeno i permessi di connessione (Connect) e i permessi specifici per eseguire lo scenario. 

I permessi si gestiscono tramite profili o direttamente all’utente nel Security Navigator. 


Cliccando due volte sullo scenario indicato sopra si apre la schermata relativa alla security dell'utente con l'indicazione che quest'ultimo ha ricevuto le grant di execute dello scenario.



lunedì 22 settembre 2025

ODI 14c - Start e Stop Agent ODI Marketplace

Di seguito i comandi per effettuare lo start, stop e status di un agent ODI Marketplace in cloud oracle.

Il tutto è stato preso dalla nota del supporto oracle MOS_DOCUMENT_ID: 2921533.1

  • Start e stop utilizzando opc
    • Il servizio presente in cloud ha il seguente nome manageappsodi.service. Posizionato  in /usr/lib/systemd/system
      • sudo systemctl status manageappsodi.service
      • sudo systemctl stop manageodiapps.service
      • sudo systemctl start manageodiapps.service
  • Se invece utilizziamo l'utente oracle si possono utilizzare gli script posti in 
    • /u01/oracle/mwh/odi/common/scripts 
    • Per verificare lo stato:
      • python /u01/oracle/mwh/odi/common/scripts/manageOdiApps.py status
    • Per effettuare lo start invece possiamo utilizzare il seguente comandi ridirigendo l'output in un file manageappsodi.log file:
      • nohup python /u01/oracle/mwh/odi/common/scripts/manageOdiApps.py start > manageappsodi.log 2>&1 &
    • Lo stop / start dell'agent application lo possiamo effettuare con i seguenti comanti se jetty è up and running):
      • python /u01/oracle/mwh/odi/common/scripts/manageOdiApps.py stop -apps=APPODIAGENT
      • python /u01/oracle/mwh/odi/common/scripts/manageOdiApps.py start -apps=APPODIAGENT
    • Restart the agent:
      • python /u01/oracle/mwh/odi/common/scripts/manageOdiApps.py restart
    • Shutdown di  jetty and the agent:
      • python /u01/oracle/mwh/odi/common/scripts/manageOdiApps.py shutdown
    In alcuni casi si rende necessario effettuato uno stop forzato effettuando un kill -9 dei processi, per individuare i corretti processi si può effettuare il comando jps che indica gli ID Java in esecuzione di cui l'utente unix è proprietario.

    Di seguito alcuni esempi di status:






    martedì 16 settembre 2025

    ODI 14c - Utilizzo di OdiSqlUnload - OdiTools

     Per poter effettuare una select e relativo spool su filesystem si può utilizzare l'OdiTools OdiSqlUnload. Questo permette di eseguire una select utilizzando una connessione jdbc ed effettuare uno spool dei dati su un file su filesystem. Nelle versioni precedenti era permesso il passaggio delle password sia in chiaro che criptato, adesso nella versione 14c hanno risolto eventuali bug di sicurezza impedendo l'utilizzo di variabili con la password in chiaro.

    Se si vuole quindi utilizzare l'OdiTools si possono seguire due strade.

    -1- Inserire nell'OdiStudio la password in chiaro che viene criptata immediatamente dal Tools

    -2- Creare una procedura che estrae i dati prendendo la password dalla Topologia di ODI.


    1.  Creare un package nel quale inseriamo l'OdiTools e configuriamo i vari campi presenti nelle property.

      In questo caso verrà prodotto un file su filesystem


    2. Creazione di una procedura che richiama il comando dell'OdiTools che può essere estrapolato da quanto indicato sopra. In questo caso però non viene inserita alcuna password, questa viene estratta direttamente dalla topologia.

    Iniziamo creando una procedura con due Task, dove il primo ci serve per controllo, e può essere eliminato, il secondo invece contiene l'istruzione del comando relativo all'OdiTools con l'indicazione di estrarre la password dalla Topology. Questo implica che nella Topology occorre inserire le informazioni per la connessione al DB.


    Nel primo task sono stati inseriti alcuni comandi per effettuare un check visivo di quanto viene estratto e può essere tranquillamente rimosso.


    Nel secondo Task invece è riportato il comando di esecuzione dell'OdiTools:


    Di seguito il comando relativo all'OdiTools,in questo caso utilizziamo un utente DB che si chiama ODI_WORK. Al termine occorre inserire la query di estrazione dei dati. In grassetto la parte di estrazione della password dell'utente dalla Topology:

    OdiSqlUnload 
    "-FILE=/fd_MDM_TI/FileOutput/Test_OdiSqlUnload1.txt" 
    "-DRIVER=oracle.jdbc.OracleDriver" 
    "-URL=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=....." 
    "-USER=ODI_WORK" 
    "-PASS=<%=odiRef.getInfo( "SRC_ENCODED_PASS" )%>" 
    "-FILE_FORMAT=VARIABLE" 
    "-FIELD_SEP=;" 
    "-ROW_SEP=\r\n" 
    "-DATE_FORMAT=yyyy/MM/dd" 
    "-TIME_FORMAT=HH:mm:ss" 
    "-CHARSET_ENCODING=ISO8859_1" 
    "-XML_CHARSET_ENCODING=ISO-8859-1"
    select 'aamm' as pippo, 'sjsjssjj' paperino from dual

    Per ulteriori informazioni su quanto indicato sopra fare riferimento alla documentazione ODI.
    Nella nuova versione di ODI 14c non sembra essere più possibile, come per la versione 12c, fornire in input al comando delle variabili di ambiente per quanto riguarda la password.
    Da tenere presente che questo risolve alcuni eventuali problemi di vulnerabilità del software in fase di esecuzione. 

    martedì 29 luglio 2025

    ODI 12c - How to aumentare la dimensione dell'heap in Oracle Data Integrator (ODI) Studio

    Per aumentare la dimensione dell'heap in Oracle Data Integrator (ODI) Studio, è necessario modificare il file di configurazione di ODI e riavviare lo studio.

    Nello specifico si deve modificare la direttiva:

    1. -Xms (dimensione minima dell'heap)
    2. -Xmx (dimensione massima dell'heap)

    nel file odi.conf.

    Ecco i passaggi dettagliati:

    1. Chiudere ODI Studio:
      1. Assicurarsi che ODI Studio sia completamente chiuso prima di apportare modifiche.
    1. Individuare il file odi.conf:
      1. Il file odi.conf si trova generalmente nella directory di installazione di ODI, nella sottocartella oracledi/agent/bin.
    1. Eseguire il backup del file:
      1. Prima di apportare modifiche, è consigliabile creare una copia di backup del file odi.conf.
    1. Aprire il file odi.conf per la modifica:
      1. Aprire il file odi.conf con un editor di testo.
    1. Modificare le direttive -Xms e -Xmx:
      1. Cercare le direttive -Xms e -Xmx. Queste direttive controllano rispettivamente la dimensione minima e massima dell'heap. Modificare i valori numerici per aumentarne la dimensione. Ad esempio, per impostare la dimensione massima dell'heap a 2GB, si potrebbe usare -Xmx2048m.
    1. Salvare e chiudere il file:
      1. Salvare le modifiche apportate al file odi.conf e chiuderlo.
    1. Riavviare ODI Studio:
      1. Avviare ODI Studio per applicare le modifiche. La nuova dimensione dell'heap verrà utilizzata al prossimo avvio.

    È importante notare che:

    La dimensione dell'heap deve essere appropriata per le risorse disponibili sul sistema. Iniziare con incrementi moderati e aumentare gradualmente se necessario.

    Se si utilizzano più agent, è necessario modificare il file odi.conf per ciascun agente. 

    • NOTE:
      • How To Clear The Cache For ODI Studio (Doc ID 1943854.1)
      • Unable to Launch ODI Studio Error - "Initial heap size set to a larger value than the maximum heap size" (Doc ID 2288151.1)
      • La directory dove è presente il file odi.conf sul Cloud in ODIMarketPlace è la seguente:
        • /u01/oracle/mwh/odi/studio/bin