ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: NoSQL
تشرح هذه المقالة كيفية التحويل بين تنسيقات رمز الجلسة المختلفة لضمان التوافق بين إصدارات SDK.
إشعار
بشكل افتراضي ، تتعقب SDK الرمز المميز للجلسة تلقائيًا وستستخدم أحدث رمز للجلسة. لمزيد من المعلومات ، يرجى زيارة استخدام الرموز المميزة للجلسة. التعليمات الواردة في هذه المقالة تنطبق فقط على الشروط التالية:
- يستخدم حساب Azure Cosmos DB تناسق الجلسة.
- أنت تدير الرموز المميزة للجلسة يدوياً.
- أنت تستخدم إصدارات متعددة من SDK في نفس الوقت.
تنسيقات رمز الجلسة
يوجد تنسيقان لرمز الجلسة: بسيط و متجه. هذان التنسيقان غير قابلين للتبديل ، لذا يجب تحويل التنسيق عند التمرير إلى تطبيق العميل بإصدارات مختلفة.
- يتم استخدام تنسيق الرمز المميز للجلسة البسيط بواسطة .NET SDK V1 (Microsoft.Azure.DocumentDB -version 1.x)
- يتم استخدام تنسيق الرمز المميز للجلسة المتجه بواسطة .NET SDK V2 (Microsoft.Azure.DocumentDB-الإصدار 2.x)
رمز جلسة بسيط
رمز الجلسة البسيط له التنسيق التالي: {pkrangeid}:{globalLSN}
رمز جلسة المتجه
الرمز المميز لجلسة المتجه له التنسيق التالي: {pkrangeid}:{Version}#{GlobalLSN}#{RegionId1}={LocalLsn1}#{RegionId2}={LocalLsn2}....#{RegionIdN}={LocalLsnN}
التحويل إلى رمز جلسة بسيط
لتمرير رمز جلسة إلى عميل باستخدام .NET SDK V1 ، استخدم تنسيق رمز الجلسة البسيط . على سبيل المثال ، استخدم نموذج التعليمات البرمجية التالي لتحويله.
private static readonly char[] SegmentSeparator = (new[] { '#' });
private static readonly char[] PkRangeSeparator = (new[] { ':' });
// sessionTokenToConvert = session token from previous response
string[] items = sessionTokenToConvert.Split(PkRangeSeparator, StringSplitOptions.RemoveEmptyEntries);
string[] sessionTokenSegments = items[1].Split(SessionTokenHelpers.SegmentSeparator, StringSplitOptions.RemoveEmptyEntries);
string sessionTokenInSimpleFormat;
if (sessionTokenSegments.Length == 1)
{
// returning the same token since it already has the correct format
sessionTokenInSimpleFormat = sessionTokenToConvert;
}
else
{
long version = 0;
long globalLSN = 0;
if (!long.TryParse(sessionTokenSegments[0], out version)
|| !long.TryParse(sessionTokenSegments[1], out globalLSN))
{
throw new ArgumentException("Invalid session token format", sessionTokenToConvert);
}
sessionTokenInSimpleFormat = string.Format("{0}:{1}", items[0], globalLSN);
}
التحويل إلى رمز جلسة Vector
لتمرير رمز جلسة مميز إلى العميل باستخدام .NET SDK V2 ، استخدم تنسيق الرمز المميز للجلسة المتجه . على سبيل المثال ، استخدم نموذج التعليمات البرمجية التالي لتحويله.
private static readonly char[] SegmentSeparator = (new[] { '#' });
private static readonly char[] PkRangeSeparator = (new[] { ':' });
// sessionTokenToConvert = session token from previous response
string[] items = sessionTokenToConvert.Split(PkRangeSeparator, StringSplitOptions.RemoveEmptyEntries);
string[] sessionTokenSegments = items[1].Split(SegmentSeparator, StringSplitOptions.RemoveEmptyEntries);
string sessionTokenInVectorFormat;
if (sessionTokenSegments.Length == 1)
{
long globalLSN = 0;
if (long.TryParse(sessionTokenSegments[0], out globalLSN))
{
sessionTokenInVectorFormat = string.Format("{0}:-2#{1}", items[0], globalLSN);
}
else
{
throw new ArgumentException("Invalid session token format", sessionTokenToConvert);
}
}
else
{
// returning the same token since it already has the correct format
sessionTokenInVectorFormat = sessionTokenToConvert;
}
الخطوات التالية
اقرأ المقالات التالية: