इस लेख का मॉड्यूल: Message Monitor
SAP CPI log level TRACE: यह अपने-आप बंद क्यों होता है और इसे सुरक्षित रूप से चालू कैसे रखें
SAP CPI में TRACE log level लगभग 10 मिनट बाद क्यों लौट जाता है, यह क्या और कितनी देर रखता है, production के जोखिम, और इसे सिर्फ़ काम के दौरान चालू कैसे रखें।

आप किसी iFlow का log level Trace पर सेट करते हैं, पंद्रह मिनट तक कुछ और टेस्ट करते हैं, फिर वह message भेजते हैं जो मायने रखता है, और trace खाली मिलता है। SAP Cloud Integration (SAP CPI) ने चुपचाप level वापस गिरा दिया है। यह जानबूझकर होता है, और वजह समझ आते ही TRACE इस्तेमाल करने के नियम उसी से निकल आते हैं।
यह लेख बताता है कि हर log level क्या रखता है, TRACE की अवधि क्यों ख़त्म होती है, इसे सुरक्षित रूप से कैसे इस्तेमाल करें, और इसे ठीक उतनी देर चालू कैसे रखें जितनी देर आप काम करते हैं।
Log levels और TRACE क्या जोड़ता है
| Log level | हर message के लिए क्या रखा जाता है |
|---|---|
| Info | कुल status, समय और error, अगर कोई हो |
| Debug | Message के चलाए हर step की एक entry |
| Trace | Debug जैसा, साथ में हर step से पहले की body, headers और exchange properties |
Level deploy किए गए iFlow पर सेट होता है, इसलिए यह उन सभी messages पर लागू होता है जिन्हें वह iFlow इसके सेट रहते हुए प्रोसेस करता है।
TRACE अपने-आप बंद क्यों होता है
TRACE हर step का payload, headers और properties tenant के database में लिखता है। व्यस्त iFlow पर यह बहुत सारा डेटा होता है, और इसमें निजी या गोपनीय content भी हो सकता है। इसलिए SAP इसे समय में सीमित रखता है: TRACE level लगभग 10 मिनट तक मान्य रहता है, उसके बाद iFlow कम level पर लौट जाता है, और trace content ख़ुद लगभग एक घंटे तक रखा जाता है।
किसी tenant को इस तरह भी सेट किया जा सकता है कि वह TRACE की अनुमति ही न दे। तब इसे सेट करना fail होता है, चाहे कोई भी कोशिश करे।
TRACE हाथ से सेट करना
- Monitor में Manage Integration Content खोलें और deploy किया गया iFlow चुनें।
- उसकी log configuration में log level Trace पर सेट करें।
- अगले 10 मिनट के अंदर अपने test messages भेजें, और एक घंटे के अंदर उनके traces पढ़ें।
- लंबे session में हर 10 मिनट पर Trace फिर से सेट करें।
TRACE का सुरक्षित इस्तेमाल
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
}- Test data को प्राथमिकता दें। Production message का trace उस ग्राहक का डेटा एक घंटे तक tenant में रखता है।
- Production में उतनी ही देर trace करें जितनी सवाल का जवाब पाने के लिए ज़रूरी हो, और अपनी कंपनी के approval नियमों का पालन करें।
- Debug या Trace को iFlow का configured log level न छोड़ें: इसकी क़ीमत हर message चुकाता है।
- Passwords या tokens को headers या properties में न लिखें, जहाँ trace उन्हें दिखा देगा।
- जब आपको log में नियमित रूप से payload चाहिए, तो उसे किसी script से message processing log में attach करें, और सिर्फ़ तब जब कोई switch चालू हो:
TRACE को सिर्फ़ काम के दौरान चालू रखें
Kitegra में, खुले iFlow के "मैसेज" panel में एक switch है जो "Trace: बंद" दिखाता है। एक क्लिक log level को TRACE कर देता है। जब तक switch चालू है और उस iFlow का कोई डिज़ाइनर tab खुला है, एक्सटेंशन SAP के हटाने से पहले हर 9 मिनट पर TRACE फिर से सेट करता है, और iFlow में आपकी आख़िरी गतिविधि के 20 मिनट बाद रुक जाता है। बंद करने पर iFlow का पहले वाला level लौट आता है। यह स्थिति page reload के बाद भी बनी रहती है, और Alt+Shift+R इसे keyboard से चालू-बंद करता है।
यह साफ़ संदेश के साथ मना कर देता है जब iFlow चुने गए runtime पर deploy नहीं है, जब tenant TRACE की अनुमति नहीं देता, या जब options में "tenant बदलने वाली क्रियाओं की अनुमति दें" बंद है।
Trace ने क्या रिकॉर्ड किया, यह पढ़ने के लिए देखें diagram पर message को step by step trace करना।
Kitegra कैसे मदद करता है
Trace, Kitegra की उन चार क्रियाओं में से एक है जो आपका tenant बदलती हैं, और यह सिर्फ़ आपके क्लिक करने पर चलती है। Go-live से पहले, iFlow Inspector की design जाँच "विस्तृत लॉग स्तर" ऐसे iFlow को चिह्नित करती है जिसका configured log level हर message को trace या debug करेगा; iFlow review checklist इसे बाकी जाँचों के साथ कवर करती है।
Helper, Message Monitor, iFlow Inspector और iFlow Docs हर एक उन iFlows को गिनते हैं जिन पर आप उन्हें इस्तेमाल करते हैं: Kitegra खाते के बिना हर मॉड्यूल में 5, Free प्लान में 50, Starter में 100 और Pro में 300; Business में कोई सीमा नहीं। Toolbox और workspace की अतिरिक्त सुविधाएँ मुफ़्त हैं। प्लान की तुलना करें।
अपने अगले iFlow में आज़माएँ
पढ़ें कि Kitegra, SAP Integration Suite के डिज़ाइनर में क्या-क्या जोड़ता है, या इसे Kitegra के बाकी Chrome एक्सटेंशन के साथ देखें।
अक्सर पूछे जाने वाले प्रश्न
SAP CPI में TRACE अपने-आप बंद क्यों हो जाता है?
TRACE हर step का payload tenant में सहेजता है। डेटा सीमित रखने के लिए SAP, TRACE level को लगभग 10 मिनट और trace content को लगभग एक घंटे तक रखता है।
Trace data कितनी देर रखा जाता है?
लगभग एक घंटे। उसके बाद message का log बना रहता है, लेकिन उसकी trace की गई body, headers और properties हट जाती हैं।
क्या production में TRACE इस्तेमाल करना सुरक्षित है?
यह tenant में असली payloads सहेजता है, इसलिए इसे उतनी ही देर इस्तेमाल करें जितनी आपके सवाल का जवाब पाने के लिए ज़रूरी हो, जहाँ हो सके test data पर, और अपनी कंपनी के नियमों के तहत।
Debug और Trace में क्या अंतर है?
Debug हर step की एक entry रिकॉर्ड करता है। Trace उसमें हर step से पहले की body, headers और exchange properties जोड़ता है।
मेरे tenant पर TRACE सेट करना fail क्यों होता है?
हो सकता है tenant TRACE की अनुमति न देता हो, iFlow उस runtime पर deploy न हो, या आपके user के पास ज़रूरी role न हो। एक्सटेंशन में options से tenant वाली क्रियाएँ भी बंद हो सकती हैं।
क्या काम बंद करने के बाद भी एक्सटेंशन TRACE चालू रखता है?
नहीं। यह TRACE सिर्फ़ तब renew करता है जब switch चालू हो और आप iFlow में काम कर रहे हों, और आपकी आख़िरी गतिविधि के 20 मिनट बाद रुक जाता है।