মূল লেখায় যান
LICENTIVO / INTEGRATION

ভাসমান লাইসেন্স সহ সমসাময়িক সফ্টওয়্যার ব্যবহার পরিচালনা করুন

ফ্লোটিং আসনে বৈধ লিজযুক্ত হার্ডওয়্যার গোনা হয়। একই হার্ডওয়্যারের একাধিক সেশন এক আসন ভাগ করে; হার্ডওয়্যার পরিচয় না থাকলে ডিভাইস ID ব্যবহৃত হয়।

সেশন ওয়ার্কফ্লো · নয়টি SDKআপডেট করা হয়েছে

1. একটি সমসাময়িক আসন সীমা সেট করুন

ফ্লোটিং আসনে বৈধ লিজযুক্ত হার্ডওয়্যার গোনা হয়। একই হার্ডওয়্যারের একাধিক সেশন এক আসন ভাগ করে; হার্ডওয়্যার পরিচয় না থাকলে ডিভাইস ID ব্যবহৃত হয়।

হার্টবিট ব্যবধান এবং সেশন লিজ একসাথে সেট করুন। ইজারা অবশ্যই হার্টবিট ব্যবধানকে অতিক্রম করতে হবে এবং এর সর্বোচ্চ ঝাঁকুনি এবং একটি 30-সেকেন্ড মার্জিন। একটি ছোট ইজারা পরিত্যক্ত আসনগুলি শীঘ্রই পুনরুদ্ধার করে তবে কম নেটওয়ার্ক ব্যাঘাত সহ্য করে।

লাইসেন্সের আসনসীমা ও ওয়ার্কস্পেসের ডিভাইস কোটা আলাদা সীমা। সাধারণ ও ফ্লোটিং লাইসেন্স উভয়ই বর্তমান বৈধ অ্যাক্টিভেশনের জন্য ওয়ার্কস্পেস কোটা ব্যবহার করে।

ডিভাইস কোটা বর্তমান সক্রিয়করণ অনুযায়ী গণনা হয় এবং মুক্ত করলে ফেরত আসে। সাধারণ লাইসেন্স অফলাইনেও গণনা হয়; ফ্লোটিং লাইসেন্সের লিজ শেষ হলেও কোটা স্বয়ংক্রিয়ভাবে ফেরত আসে।

১০টি ডিভাইস বদলালেও, প্রতিস্থাপিত ডিভাইস আগে ছেড়ে দিন এবং সব সময় সর্বোচ্চ ৩টি বৈধ অ্যাক্টিভেশন রাখুন; তাহলে সর্বোচ্চ ৩টি ডিভাইস কোটা লাগবে।

2. স্টার্টআপে একটি আসন অর্জন করুন

কনসোল > পণ্য থেকে পণ্যের ID কপি করুন। একই পণ্যের স্বাক্ষরের পাবলিক কী খুলে প্রতিটি কী ID/পাবলিক কী জোড়া ইনিশিয়ালাইজেশন কোডে বসান; YOUR_PRODUCT_ID, YOUR_KEY_ID এবং YOUR_PUBLIC_KEY বদলান। দ্রুত ইন্টিগ্রেশন থেকেও এই কোড পাওয়া যায়। পণ্যের কনফিগারেশন ফাইল লাগে না; SDK ডিফল্টভাবে https://www.licentivo.com ব্যবহার করে।

নিম্নলিখিত Go খণ্ডটি একটি অ্যাপ্লিকেশন ফাংশন রিটার্নিং ত্রুটির অন্তর্গত। এটির প্রসঙ্গ, ওএস, ওএস/সিগন্যাল এবং লগ আমদানি প্রয়োজন। এক্সপোর্ট রিপোর্ট আপনার বিদ্যমান ব্যবসা কলব্যাক; customerKey অ্যাক্টিভেশন ফর্ম থেকে আসে।

Go · application lifecycle
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
defer stop()

client, err := licentivo.OpenProduct(ctx, productID, trustedKeys, customerKey,
    func(err error) { log.Printf("License refresh: %v", err) })
if err != nil {
    return err // Show an activation error; do not start protected work.
}
defer client.Close() // Attempts to return a floating seat.

// Place this check inside each protected action, not only at startup.
if err := client.RunFeature("export", exportReport); err != nil {
    return err
}
<-ctx.Done()

3. SDK সময়সূচী হার্টবিট দিন

আপনার নিজের টাইমার লিখবেন না বা সমান্তরাল HTTP হার্টবিট অনুরোধ পাঠাবেন না। SDK অনুমোদিত ব্যবধান ব্যবহার করে এবং সেশনটি পুনর্নবীকরণ করে। অ্যাপ্লিকেশন চলাকালীন ক্লায়েন্টকে জীবিত রাখুন।

প্রতিটি সুরক্ষিত হ্যান্ডলারে রানফিচার রাখুন। যদি একটি চেক অস্বীকার করা হয়, সেই সুরক্ষিত ক্রিয়া বন্ধ করুন এবং একটি লাইসেন্সিং বার্তা দেখান৷ দরকারী পটভূমি সংযোগ ত্রুটি প্রদর্শন; একটি স্টার্টআপ চেক স্থায়ীভাবে পরবর্তী ক্রিয়াকলাপগুলিকে অনুমোদন করে বলে ধরে নিবেন না।

একটি মেয়াদোত্তীর্ণ ইজারা, প্রত্যাহারকৃত লাইসেন্স বা আসন অস্বীকার স্বাক্ষরিত অনুমোদনের নিয়ম দ্বারা পরিচালিত হয়। পুনঃসংযোগের জন্য একটি সফল সার্ভার চেক প্রয়োজন৷ স্থানীয় মেয়াদোত্তীর্ণ ডেটা সম্পাদনা করে কখনই একটি সেশন বাড়াবেন না।

4. একটি স্বাভাবিক প্রস্থান এ মুক্তি

স্বাভাবিকভাবে অ্যাপ বন্ধ করার সময় ক্লায়েন্ট বন্ধ করুন। Go-তে defer client.Close() ব্যবহৃত হয়। Java ও C# স্কোপ শেষ হলে রিসোর্স ছাড়ে; C++ ও Rust ডেস্ট্রাক্টর, Python কনটেক্সট ম্যানেজার এবং Ruby ও JavaScript close ব্যবহার করে।

যদি অ্যাপ্লিকেশনটি ক্র্যাশ হয় বা শাটডাউনের সময় সার্ভারের সাথে যোগাযোগ করতে না পারে, সার্ভারটি পরিত্যক্ত আসনটি পুনরুদ্ধার করে যখন তার সেশন লিজের মেয়াদ শেষ হয়। যে বিলম্ব প্রত্যাশিত; একটি পরিষ্কার বার্তা রাখুন যাতে অন্য ব্যবহারকারী বুঝতে পারে কখন একটি আসন উপলব্ধ হতে পারে।

ফ্লোটিং লাইসেন্সে বৈধ লিজ গণনা হয়। সংযোগ বিচ্ছিন্ন বা ক্র্যাশ হলে কোটা সঙ্গে সঙ্গে ফেরে না; শেষ সেশন মুক্ত হতে বা লিজের মেয়াদ শেষ হতে হবে।

5. দুটি পৃথক মেশিন দিয়ে পরীক্ষা করুন

  1. একটি ভাসমান আসনে একটি পরীক্ষার লাইসেন্স সেট করুন। কম্পিউটার এ অ্যাপ্লিকেশন শুরু করুন A.
  2. B কম্পিউটারে শুরু করুন: A-এর আসন থাকাকালীন দ্বিতীয় সুরক্ষিত অধিবেশনটি অস্বীকার করা উচিত।
  3. সাধারণভাবে A থেকে প্রস্থান করুন, তারপর যাচাই করুন B একটি আসন পেতে পারে।
  4. বিচ্ছিন্ন পরীক্ষার পরিবেশে, পরিচ্ছন্নতা ছাড়াই A বন্ধ করুন; কনফিগার করা ইজারা মেয়াদ শেষ হওয়ার পরে আসন ফেরত যাচাই করুন।

আসন দ্বন্দ্ব নিরসন

নোড-লকড এবং ফ্লোটিং মোডের ভিন্ন প্রস্থান আচরণ রয়েছে: নোড-লক শাটডাউন নিবন্ধন রাখে, যখন ভাসমান শাটডাউন একটি আসন ফেরত দেওয়ার চেষ্টা করে। প্রতিবার নোড-লক করা অ্যাপ্লিকেশন বন্ধ হলে ডিভাইসটিকে আনবাইন্ডে কল করবেন না।

একটি সিট-ইন-ব্যবহারের বার্তা অন্য একটি চলমান উদাহরণের কারণে হতে পারে বা ইজারার মেয়াদ শেষ হওয়ার জন্য অপেক্ষা করা সাম্প্রতিক ক্র্যাশ প্রক্রিয়ার কারণে হতে পারে। কেনা আসন সংখ্যা বাড়ানোর আগে কনসোলে বর্তমান সেশনগুলি পর্যালোচনা করুন৷

ফাইল-ভিত্তিক প্রথম অ্যাক্টিভেশন নোড-লকড লাইসেন্সের জন্য। ফ্লোটিং সেশনটি বৈধ হওয়া সত্ত্বেও মিটারযুক্ত অপারেশনগুলির জন্য এখনও অনলাইন রিজার্ভ এবং কল নিষ্পত্তির প্রয়োজন।