মূল কনটেন্টে যান
← ব্লগে ফিরে যান

এই নিবন্ধের মডিউল: Message Monitor

SAP CPI log level TRACE: কেন এটি নিজে থেকে বন্ধ হয় এবং কীভাবে নিরাপদে চালু রাখবেন

SAP CPI-তে TRACE log level কেন প্রায় 10 মিনিট পর নেমে যায়, এটি কী ও কতক্ষণ রাখে, production-এর ঝুঁকি, এবং কাজের সময়টুকুতেই কীভাবে এটি চালু রাখবেন।

SAP CPI log level TRACE: কেন এটি নিজে থেকে বন্ধ হয় এবং কীভাবে নিরাপদে চালু রাখবেন

আপনি একটি 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, যদি থাকে
DebugMessage যে প্রতিটি step চালিয়েছে তার একটি entry
TraceDebug-এর মতো, সঙ্গে প্রতিটি step-এর আগের body, headers ও exchange properties

Level ডিপ্লয় করা iFlow-এ সেট হয়, তাই এটি সেট থাকা অবস্থায় সেই iFlow যত message প্রসেস করে সবগুলোর ওপর প্রযোজ্য।

TRACE কেন নিজে থেকে বন্ধ হয়

TRACE প্রতিটি step-এর payload, headers ও properties tenant-এর database-এ লেখে। ব্যস্ত iFlow-এ এটি অনেক ডেটা, আর এতে ব্যক্তিগত বা গোপনীয় content থাকতে পারে। তাই SAP এটিকে সময়ে সীমিত রাখে: TRACE level প্রায় 10 মিনিট বৈধ থাকে, তারপর iFlow নিচের level-এ ফিরে যায়, আর trace content নিজে প্রায় এক ঘণ্টা রাখা হয়।

কোনো tenant এমনভাবেও সেট করা থাকতে পারে যে সেখানে TRACE-এর অনুমতিই নেই। তখন যে-ই চেষ্টা করুক, এটি সেট করা ব্যর্থ হয়।

হাতে TRACE সেট করা

  1. Monitor-এ Manage Integration Content খুলুন এবং ডিপ্লয় করা iFlow বেছে নিন।
  2. তার log configuration-এ log level Trace-এ সেট করুন।
  3. পরের 10 মিনিটের মধ্যে আপনার test messages পাঠান, এবং এক ঘণ্টার মধ্যে তাদের traces পড়ুন।
  4. দীর্ঘ 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 ফিরে আসে। পেজ reload করলেও অবস্থা বজায় থাকে, আর Alt+Shift+R keyboard থেকে এটি চালু-বন্ধ করে।

iFlow বেছে নেওয়া runtime-এ ডিপ্লয় করা না থাকলে, 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 প্রত্যেকে সেই iFlow-গুলো গণনা করে যেগুলোতে আপনি এগুলো ব্যবহার করেন: 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 সেট করা কেন ব্যর্থ হয়?

হয়তো tenant TRACE-এর অনুমতি দেয় না, iFlow সেই runtime-এ ডিপ্লয় করা নেই, অথবা আপনার user-এর দরকারি role নেই। এক্সটেনশনে options থেকে tenant-এর কাজগুলোও বন্ধ থাকতে পারে।

কাজ থামানোর পরও কি এক্সটেনশন TRACE চালু রাখে?

না। এটি TRACE শুধু তখনই renew করে যখন switch চালু থাকে এবং আপনি iFlow-এ কাজ করেন, আর আপনার শেষ কাজের 20 মিনিট পর থামে।

ডিজাইনার না ছেড়েই iFlows-এ কাজ করুন

Kitegra Chrome বা Microsoft Edge-এ যোগ করুন। ফ্রিতে শুরু করুন, কোনো অ্যাকাউন্ট লাগবে না।