Vai al contenuto
Kitegra
← Torna al blog

Modulo di questo articolo: Message Monitor

Livello di log TRACE in SAP CPI: perché si disattiva e come tenerlo attivo in sicurezza

Perché il livello di log TRACE in SAP CPI torna indietro dopo circa 10 minuti, cosa memorizza e per quanto, i rischi in produzione e come tenerlo attivo solo mentre lavori.

Livello di log TRACE in SAP CPI: perché si disattiva e come tenerlo attivo in sicurezza

Imposti il livello di log di un iFlow su Trace, provi altro per un quarto d'ora, invii il messaggio che conta e il trace è vuoto. SAP Cloud Integration (SAP CPI) ha riportato indietro il livello senza dire nulla. È voluto, e una volta capito il perché, le regole per usare TRACE vengono da sé.

Questo articolo spiega cosa memorizza ogni livello di log, perché TRACE scade, come usarlo in sicurezza e come tenerlo attivo esattamente per il tempo in cui lavori.

I livelli di log e cosa aggiunge TRACE

Livello di logCosa viene conservato per ogni messaggio
InfoLo stato complessivo, i tempi e l'eventuale errore
DebugUna voce per ogni step eseguito dal messaggio
TraceCome Debug, più body, header ed exchange property prima di ogni step

Il livello si imposta sull'iFlow distribuito, quindi vale per ogni messaggio che quell'iFlow elabora finché resta impostato.

Perché TRACE si disattiva da solo

TRACE scrive payload, header e proprietà di ogni step nel database del tenant. Su un iFlow molto usato sono tanti dati, e possono includere contenuti personali o riservati. Per questo SAP lo limita nel tempo: il livello TRACE vale per circa 10 minuti, dopodiché l'iFlow torna a un livello inferiore, e il contenuto del trace viene conservato per circa un'ora.

Un tenant può anche essere configurato per non consentire affatto TRACE. In quel caso l'impostazione fallisce, chiunque ci provi.

Impostare TRACE a mano

  1. Nel monitor, apri Manage Integration Content e seleziona l'iFlow distribuito.
  2. Nella sua configurazione dei log, imposta il livello di log su Trace.
  3. Invia i messaggi di test entro i 10 minuti successivi e leggi i loro trace entro l'ora.
  4. In una sessione più lunga, reimposta Trace ogni 10 minuti.

Usare TRACE in sicurezza

import com.sap.gateway.ip.core.customdev.util.Message

def Message processData(Message message) {
    // Set the exchange property logPayload to "true" (for example from an
    // externalized parameter) only while you investigate.
    if (message.getProperty("logPayload") == "true") {
        def log = messageLogFactory.getMessageLog(message)
        log?.addAttachmentAsString("Payload before mapping", message.getBody(String), "text/plain")
    }
    return message
}
  • Preferisci i dati di test. Il trace di un messaggio di produzione memorizza nel tenant i dati di quel cliente per un'ora.
  • In produzione, traccia per il tempo minimo che risponde alla domanda e segui le regole di approvazione della tua azienda.
  • Non lasciare Debug o Trace come livello di log configurato di un iFlow: ogni messaggio ne paga il prezzo.
  • Non scrivere password o token in header o proprietà, dove un trace li mostrerebbe.
  • Quando ti serve regolarmente un payload nel log, allegalo al message processing log da uno script, e solo mentre un interruttore è attivo:

Tenere TRACE attivo solo mentre lavori

In Kitegra, il pannello Messaggi dell'iFlow aperto ha un interruttore che indica «Trace: disattivato». Un clic imposta il livello di log su TRACE. Finché l'interruttore è attivo ed è aperta una scheda del designer di quell'iFlow, l'estensione reimposta TRACE ogni 9 minuti, prima che SAP lo tolga, e smette 20 minuti dopo la tua ultima attività nell'iFlow. Disattivato ripristina il livello che l'iFlow aveva prima. Lo stato sopravvive al ricaricamento della pagina, e Alt+Shift+R lo attiva o disattiva da tastiera.

Rifiuta con un messaggio chiaro quando l'iFlow non è distribuito sul runtime scelto, quando il tenant non consente TRACE o quando «Consenti le azioni che modificano il tenant» è disattivato nelle opzioni.

Per leggere ciò che il trace ha registrato, vedi tracciare un messaggio step by step sul diagramma.

Come aiuta Kitegra

Trace è una delle quattro azioni di Kitegra che modificano il tuo tenant, e viene eseguita solo quando fai clic. Prima del go-live, il controllo di design «Livello di log dettagliato» dell'iFlow Inspector segnala un iFlow il cui livello di log configurato traccerebbe o registrerebbe in debug ogni messaggio; la checklist di revisione degli iFlow lo tratta insieme agli altri controlli.

Helper, Message Monitor, iFlow Inspector e iFlow Docs contano ciascuno gli iFlow su cui li usi: 5 per modulo senza un account Kitegra, 50 con il piano Free, 100 con Starter e 300 con Pro; Business non ha limiti. La Toolbox e gli extra dell'area di lavoro sono gratuiti. Confronta i piani.

Provalo nel tuo prossimo iFlow

Scopri cosa aggiunge Kitegra attorno al designer di SAP Integration Suite, oppure guardalo accanto alle altre estensioni Chrome di Kitegra.

Domande frequenti

Perché TRACE si disattiva da solo in SAP CPI?

TRACE memorizza nel tenant il payload di ogni step. Per limitare i dati, SAP mantiene il livello TRACE per circa 10 minuti e il contenuto del trace per circa un'ora.

Per quanto tempo vengono conservati i dati del trace?

Circa un'ora. Dopo, il log del messaggio resta, ma body, header e proprietà tracciati non ci sono più.

È sicuro usare TRACE in produzione?

Memorizza payload reali nel tenant, quindi usalo per il tempo minimo che risponde alla tua domanda, su dati di test quando puoi e secondo le regole della tua azienda.

Qual è la differenza tra Debug e Trace?

Debug registra una voce per ogni step. Trace aggiunge body, header ed exchange property prima di ogni step.

Perché l'impostazione di TRACE fallisce sul mio tenant?

Il tenant potrebbe non consentire TRACE, l'iFlow potrebbe non essere distribuito su quel runtime, oppure il tuo utente potrebbe non avere il ruolo necessario. Nell'estensione, le azioni sul tenant potrebbero anche essere disattivate nelle opzioni.

L'estensione mantiene TRACE attivo dopo che ho smesso di lavorare?

No. Rinnova TRACE solo finché l'interruttore è attivo e lavori nell'iFlow, e smette 20 minuti dopo la tua ultima attività.

Lavora sugli iFlow senza uscire dal designer

Aggiungi Kitegra a Chrome o Microsoft Edge. Inizia gratis, senza bisogno di un account.