1. ایک ساتھ سیٹ کی حد مقرر کریں۔
فلوٹنگ نشستیں درست لیز والے ہارڈویئر گنتی ہیں۔ ایک ہی ہارڈویئر کے کئی سیشن ایک نشست بانٹتے ہیں؛ ہارڈویئر شناخت نہ ہو تو ڈیوائس ID استعمال ہوتی ہے۔
دل کی دھڑکن کا وقفہ اور سیشن لیز ایک ساتھ سیٹ کریں۔ لیز دل کی دھڑکن کے وقفے کے علاوہ اس کے زیادہ سے زیادہ گھماؤ اور 30 سیکنڈ کے مارجن سے زیادہ ہونی چاہیے۔ ایک مختصر لیز ترک شدہ نشستوں کو جلد بحال کرتی ہے لیکن نیٹ ورک میں کم رکاوٹ کو برداشت کرتی ہے۔
لائسنس نشستوں کی حد اور ورک اسپیس ڈیوائس کوٹا الگ حدیں ہیں۔ عام اور فلوٹنگ دونوں لائسنس موجودہ درست ایکٹیویشن کے لیے ورک اسپیس کوٹا لیتے ہیں۔
آلات کا کوٹا موجودہ فعال رجسٹریشن کے مطابق گنا جاتا ہے اور آزاد کرنے پر واپس ملتا ہے۔ عام لائسنس آف لائن بھی شمار ہوتے ہیں؛ فلوٹنگ لائسنس کی لیز ختم ہونے پر بھی کوٹا خود واپس ملتا ہے۔
10 ڈیوائس بدلنے پر بھی، تبدیل ہونے والی ڈیوائس پہلے ریلیز کریں اور ہمیشہ زیادہ سے زیادہ 3 درست ایکٹیویشن رکھیں؛ تب زیادہ سے زیادہ 3 ڈیوائس کوٹا اکائیاں استعمال ہوں گی۔
2. آغاز پر سیٹ حاصل کریں۔
کنسول > مصنوعات سے پروڈکٹ ID کاپی کریں۔ اسی پروڈکٹ کی دستخطی عوامی کلیدیں کھولیں اور ہر کلید ID/عوامی کلید کا جوڑا ابتدائی کوڈ میں درج کریں؛ YOUR_PRODUCT_ID، YOUR_KEY_ID اور YOUR_PUBLIC_KEY تبدیل کریں۔ فوری انضمام یہ کوڈ بھی بنا سکتا ہے۔ پروڈکٹ کی کنفیگریشن فائل درکار نہیں؛ SDK بطورِ طے شدہ https://www.licentivo.com استعمال کرتا ہے۔
درج ذیل Go فریگمنٹ کا تعلق ایپلیکیشن فنکشن کی واپسی کی خرابی سے ہے۔ اسے سیاق و سباق، او ایس، او ایس/سگنل اور لاگ درآمدات کی ضرورت ہے۔ ایکسپورٹ رپورٹ آپ کا موجودہ کاروباری کال بیک ہے۔ customerKey ایکٹیویشن فارم سے آتی ہے۔
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. دو الگ الگ مشینوں سے ٹیسٹ کریں۔
- ایک فلوٹنگ سیٹ پر ٹیسٹ لائسنس سیٹ کریں۔ کمپیوٹر A پر ایپلیکیشن شروع کریں۔
- کمپیوٹر B پر شروع کریں: دوسرا محفوظ سیشن مسترد کر دیا جائے جب کہ A سیٹ رکھتا ہے۔
- عام طور پر A سے باہر نکلیں، پھر تصدیق کریں کہ B سیٹ حاصل کر سکتا ہے۔
- الگ تھلگ ٹیسٹ ماحول میں، بغیر صفائی کے A کو روکیں۔ کنفیگر شدہ لیز کی میعاد ختم ہونے کے بعد سیٹ کی واپسی کی تصدیق کریں۔
نشستوں کے تنازعات کا ازالہ کرنا
نوڈ لاکڈ اور فلوٹنگ موڈز میں باہر نکلنے کا رویہ مختلف ہوتا ہے: نوڈ لاک شٹ ڈاؤن رجسٹریشن کو برقرار رکھتا ہے، جبکہ فلوٹنگ شٹ ڈاؤن سیٹ واپس کرنے کی کوشش کرتا ہے۔ جب بھی نوڈ لاک شدہ ایپلیکیشن بند ہو جائے تو آلے کو ان بائنڈ کو کال نہ کریں۔
سیٹ میں استعمال کا پیغام کسی اور چل رہی مثال یا لیز کی میعاد ختم ہونے کے انتظار میں حال ہی میں کریش ہونے والے عمل کی وجہ سے ہو سکتا ہے۔ خریدی گئی سیٹوں کی تعداد بڑھانے سے پہلے کنسول میں موجودہ سیشنز کا جائزہ لیں۔
فائل پر مبنی پہلی ایکٹیویشن نوڈ لاکڈ لائسنسوں کے لیے ہے۔ میٹرڈ آپریشنز کے لیے اب بھی آن لائن ریزرو کی ضرورت ہوتی ہے اور کالیں سیٹل کرنے کی ضرورت ہوتی ہے یہاں تک کہ جب فلوٹنگ سیشن ہی درست ہو۔