اس مضمون کا ماڈیول: Message Monitor
SAP CPI میں TRACE log level: یہ کیوں بند ہو جاتا ہے اور اسے محفوظ طریقے سے آن کیسے رکھیں
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 ڈپلائے شدہ iFlow پر سیٹ ہوتا ہے، اس لیے جب تک سیٹ رہے یہ اس iFlow کے process کیے گئے ہر message پر لاگو ہوتا ہے۔
TRACE خود کیوں بند ہو جاتا ہے
TRACE ہر step کا payload، headers اور properties ٹیننٹ کے database میں لکھتا ہے۔ مصروف iFlow پر یہ بہت سا ڈیٹا ہوتا ہے، اور اس میں ذاتی یا خفیہ مواد شامل ہو سکتا ہے۔ اس لیے SAP اسے وقت میں محدود رکھتا ہے: TRACE level تقریباً 10 منٹ کے لیے مؤثر رہتا ہے، جس کے بعد iFlow کم level پر واپس چلا جاتا ہے، اور trace کا مواد خود تقریباً ایک گھنٹہ رکھا جاتا ہے۔
کسی ٹیننٹ کو اس طرح بھی سیٹ کیا جا سکتا ہے کہ وہ TRACE کی بالکل اجازت نہ دے۔ تب اسے سیٹ کرنا ناکام ہو جاتا ہے، چاہے کوئی بھی کوشش کرے۔
TRACE ہاتھ سے سیٹ کرنا
- Monitor میں Manage Integration Content کھولیں اور ڈپلائے شدہ iFlow منتخب کریں۔
- اس کی log configuration میں log level Trace پر سیٹ کریں۔
- اپنے test messages اگلے 10 منٹ میں بھیجیں، اور ان کے 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 اس گاہک کا ڈیٹا ایک گھنٹے کے لیے ٹیننٹ میں محفوظ کر دیتا ہے۔
- Production میں اتنی ہی دیر trace کریں جتنی سوال کا جواب پانے کے لیے ضروری ہو، اور اپنی کمپنی کے منظوری کے قواعد پر عمل کریں۔
- Debug یا Trace کو iFlow کا مستقل log level نہ چھوڑیں: اس کی قیمت ہر message ادا کرتا ہے۔
- Passwords یا tokens کو headers یا properties میں نہ لکھیں، جہاں trace انہیں دکھا دے گا۔
- جب آپ کو باقاعدگی سے log میں payload چاہیے ہو تو اسے کسی script سے message processing log کے ساتھ attach کریں، اور صرف تب جب کوئی سوئچ آن ہو:
TRACE صرف کام کے دوران آن رکھیں
Kitegra میں کھلے iFlow کے "پیغامات" panel میں ایک سوئچ ہے جس پر "Trace: بند" لکھا ہوتا ہے۔ ایک کلک log level TRACE پر سیٹ کرتا ہے۔ جب تک سوئچ آن ہو اور اس iFlow کا ڈیزائنر ٹیب کھلا ہو، ایکسٹینشن ہر 9 منٹ بعد، SAP کے ہٹانے سے پہلے، TRACE دوبارہ سیٹ کرتی ہے، اور iFlow میں آپ کی آخری سرگرمی کے 20 منٹ بعد رک جاتی ہے۔ بند کرنے سے وہ level واپس آ جاتا ہے جو iFlow کا پہلے تھا۔ یہ حالت صفحہ reload ہونے کے بعد بھی برقرار رہتی ہے، اور Alt+Shift+R اسے کی بورڈ سے آن یا بند کرتا ہے۔
یہ ایک واضح پیغام کے ساتھ انکار کرتی ہے جب iFlow منتخب runtime پر ڈپلائے نہ ہو، جب ٹیننٹ TRACE کی اجازت نہ دے، یا جب اختیارات میں "tenant بدلنے والے اقدامات کی اجازت دیں" بند ہو۔
Trace نے جو ریکارڈ کیا اسے پڑھنے کے لیے ڈایاگرام پر message کو مرحلہ وار trace کرنا دیکھیں۔
Kitegra کیسے مدد کرتا ہے
Trace، Kitegra کے ان چار اقدامات میں سے ایک ہے جو آپ کا ٹیننٹ تبدیل کرتے ہیں، اور یہ صرف آپ کے کلک پر چلتا ہے۔ Go-live سے پہلے iFlow Inspector کا ڈیزائن چیک "تفصیلی لاگ لیول" ایسے iFlow کی نشاندہی کرتا ہے جس کا مستقل log level ہر message کو trace یا debug کرے گا؛ iFlow ریویو چیک لسٹ اسے باقی checks کے ساتھ بیان کرتی ہے۔
Helper، Message Monitor، iFlow Inspector اور iFlow Docs میں سے ہر ایک ان iFlows کو گنتا ہے جن پر آپ اسے استعمال کرتے ہیں: Kitegra اکاؤنٹ کے بغیر ہر ماڈیول میں 5، Free پلان پر 50، Starter پر 100 اور Pro پر 300؛ Business میں کوئی حد نہیں۔ Toolbox اور ورک اسپیس کی اضافی سہولتیں مفت ہیں۔ پلانز کا موازنہ کریں۔
اپنے اگلے iFlow میں آزمائیں
پڑھیں کہ Kitegra، SAP Integration Suite ڈیزائنر کے ارد گرد کیا اضافہ کرتا ہے، یا اسے Kitegra کی دوسری Chrome ایکسٹینشنز کے ساتھ دیکھیں۔
اکثر پوچھے جانے والے سوالات
SAP CPI میں TRACE خود بخود کیوں بند ہو جاتا ہے؟
TRACE ہر step کا payload ٹیننٹ میں محفوظ کرتا ہے۔ ڈیٹا کو محدود رکھنے کے لیے SAP، TRACE level تقریباً 10 منٹ اور trace کا مواد تقریباً ایک گھنٹہ رکھتا ہے۔
Trace ڈیٹا کتنی دیر رکھا جاتا ہے؟
تقریباً ایک گھنٹہ۔ اس کے بعد message کا log باقی رہتا ہے، لیکن اس کی trace شدہ body، headers اور properties ختم ہو جاتی ہیں۔
کیا production میں TRACE استعمال کرنا محفوظ ہے؟
یہ ٹیننٹ میں اصل payloads محفوظ کرتا ہے، اس لیے اسے اتنی ہی دیر استعمال کریں جتنی سوال کا جواب پانے کے لیے ضروری ہو، جہاں ممکن ہو test data پر، اور اپنی کمپنی کے قواعد کے تحت۔
Debug اور Trace میں کیا فرق ہے؟
Debug ہر step کی ایک entry ریکارڈ کرتا ہے۔ Trace اس کے ساتھ ہر step سے پہلے کی body، headers اور exchange properties شامل کرتا ہے۔
میرے ٹیننٹ پر TRACE سیٹ کرنا کیوں ناکام ہوتا ہے؟
ہو سکتا ہے ٹیننٹ TRACE کی اجازت نہ دیتا ہو، iFlow اس runtime پر ڈپلائے نہ ہو، یا آپ کے user کے پاس مطلوبہ role نہ ہو۔ ایکسٹینشن میں ٹیننٹ والے اقدامات اختیارات میں بند بھی ہو سکتے ہیں۔
کیا کام روکنے کے بعد بھی ایکسٹینشن TRACE آن رکھتی ہے؟
نہیں۔ یہ TRACE کی تجدید صرف تب تک کرتی ہے جب تک سوئچ آن ہو اور آپ iFlow میں کام کر رہے ہوں، اور آپ کی آخری سرگرمی کے 20 منٹ بعد رک جاتی ہے۔