DSEDataSourceExplorer
DSE 1.0.1

أنظمة الحاسوب المركزي وأنظمة IBM

يغطي هذا الدليل مجموعة Mainframe في Data Source Explorer (DSE):

ملاحظة مصطلحية: يعمل IBM i على IBM Power وليس على IBM Z. يضعه DSE ضمن مجموعة Mainframe/legacy لتسهيل إدارة مصادر البيانات المؤسسية القديمة في مكان واحد.

مصادر Mainframe في DSE

1. البنية وطريقة الدعم

لا يقوم DSE بمحاكاة بروتوكولات الحاسوب المركزي الأصلية. بل يعتمد على طبقات وصول قياسية:

المصدر النقل ما يلزم خارج DSE
IBM i / AS400 ODBC برنامج تشغيل IBM i Access ODBC Driver ‏64-bit، شبكة، مستخدم IBM i
IBM z/OS Db2 ODBC IBM Data Server Driver for ODBC/CLI ‏64-bit، ترخيص Db2 Connect، منفذ DRDA
VSAM ODBC/REST middleware/virtualization أو محول
IMS REST/ODBC طبقة API/service أو virtualization
CICS REST/ODBC API gateway/service layer

التسلسل الموصى به: إعداد المضيف أو المحول، اختبار الاتصال خارج DSE عند الإمكان، اختيار النوع الصحيح ضمن Mainframe، حفظ connection string، تشغيل Test connection، تحميل الكائنات، ثم التحقق من Table info و Preview و Row details والاستعلام التجريبي.

2. قواعد الأمان

IBM i / AS400 — إعداد كامل

3. المتطلبات

تحتاج إلى IBM i يعمل ويمكن الوصول إليه، TCP/IP فعال، مستخدم عادي مثل DSELAB، host servers تعمل، Windows 64-bit مع IBM i Access ODBC، ومكتبة/جدول يمكن للمستخدم قراءته.

مختبر مرجعي اختياري: IBM Power Virtual Server (PowerVS)

إذا لم يتوفر لديك قسم IBM i قائم، يمكن استخدام IBM Power Virtual Server (PowerVS) يعمل بنظام IBM i كمختبر للتحقق من الموصل. استخدام PowerVS اختياري، وDSE لا يعتمد على IBM Cloud تحديداً.

التسلسل الموصى به:

  1. في IBM Cloud أنشئ أو اختر Power Virtual Server workspace في منطقة معتمدة لدى مؤسستك.
  2. أنشئ virtual server instance من صورة IBM i مسموح بها ضمن استحقاق IBM وخطة الاختبار لديك.
  3. خصص CPU وذاكرة وتخزيناً كافياً لإكمال IPL وتشغيل خدمات Db2 for i host بصورة مستقرة. اختبار الموصل لا يحتاج إلى حجم إنتاجي.
  4. اربط القسم بشبكة خاصة. أضف اتصالاً عاماً فقط إذا كانت البنية تتطلب ذلك، وقيد الوصول الوارد إلى عناوين معتمدة.
  5. انتظر حتى تصبح الحالة Active، ثم افتح وحدة التحكم/VNC التي يوفرها IBM وأكمل مهام البدء الأول المعتادة في IBM i، بما في ذلك قبول اتفاقيات البرامج إذا طلبت الصورة ذلك.
  6. سجل اسم المضيف أو عنوان IP القابل للتوجيه. إذا بقيت منافذ IBM i host server خاصة، فسجل أيضاً مسار SSH/bastion الذي سيستخدم للنفق.
  7. سجل الدخول إلى IBM i، وأنشئ حساب DSE للقراءة فقط ومكتبة الاختبار الموضحين أدناه، ثم شغل host servers.
  8. تحقق من الشبكة من Windows قبل إعداد DSE.

بنيتان موصى بهما للتحقق:

مسار مباشر/خاص:
Windows DSE -> IBM i host -> IBM i Access host servers -> Db2 for i

SSH tunnel:
Windows DSE -> منافذ محولة على 127.0.0.1 -> SSH IBM i/bastion -> host servers -> Db2 for i

فوترة PowerVS وترخيص IBM i منفصلان عن DSE. أوقف أو احذف موارد المختبر المؤقتة عند انتهاء الحاجة إليها وفق سياسة المؤسسة.

4. تسجيل الدخول إلى IBM i

استخدم 5250 أو وحدة التحكم الخاصة بالبيئة. استخدم حسابا إداريا فقط للخطوات التي تتطلب ذلك فعليا.

القائمة الرئيسية في IBM i

5. تشغيل host servers

STRHOSTSVR SERVER(*ALL)

إذا كنت تستخدم SSH tunnel:

STRTCPSVR SERVER(*SSHD)

المنافذ الشائعة بدون TLS هي 449 و8470 و8471 و8472 و8473 و8474 و8475 و8476. عادة يستخدم database المنفذ 8471 وsign-on المنفذ 8476. قد تستخدم مؤسستك منافذ SSL أو شبكة خاصة.

6. إنشاء مستخدم اختبار

CRTUSRPRF USRPRF(DSELAB) PASSWORD(<temporary-password>) USRCLS(*USER) STATUS(*ENABLED) TEXT('DSE read-only test user')

القيمة <temporary-password> مجرد placeholder. تأكد من أن الحساب enabled وكلمة المرور غير منتهية وأن الحساب لا يملك صلاحيات زائدة.

7. إنشاء مكتبة الاختبار

CRTLIB LIB(DSETEST) TEXT('DSE connector validation')
GRTOBJAUT OBJ(DSETEST) OBJTYPE(*LIB) USER(DSELAB) AUT(*USE)

8. إنشاء جدول SQL للتحقق

استخدم Run SQL Scripts في IBM i Access Client Solutions أو STRSQL إذا كان متاحا.

CREATE TABLE DSETEST.CUSTOMER
(
    CUSTOMER_ID INTEGER NOT NULL,
    NAME VARCHAR(80) NOT NULL,
    STATUS VARCHAR(20) NOT NULL,
    CREDIT_LIMIT DECIMAL(12,2),
    CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (CUSTOMER_ID)
);

إنشاء DSETEST.CUSTOMER على IBM i

INSERT INTO DSETEST.CUSTOMER (CUSTOMER_ID, NAME, STATUS, CREDIT_LIMIT)
VALUES
  (1001, 'ARCO INTERNATIONAL', 'ACTIVE', 25000.00),
  (1002, 'NORTHWIND IBM I LAB', 'ACTIVE', 15000.00),
  (1003, 'CONTOSO LEGACY', 'HOLD', 5000.00);

GRANT SELECT ON DSETEST.CUSTOMER TO USER DSELAB;
SELECT * FROM DSETEST.CUSTOMER ORDER BY CUSTOMER_ID;

مثال على بيانات جدول التحقق في IBM i:

بيانات DSETEST.CUSTOMER في IBM i

9. تثبيت IBM i ODBC على Windows

ثبت IBM i Access Client Solutions Windows Application Package الذي يتضمن برنامج التشغيل 64-bit. افتح:

C:\Windows\System32\odbcad32.exe

وتأكد من وجود:

IBM i Access ODBC Driver

في Windows 64-bit، الملف الموجود تحت System32 هو ODBC Administrator ‏64-bit.

يجب أن يظهر IBM i Access ODBC Driver في ODBC Administrator ذي 64 بت كما في المثال:

IBM i Access ODBC Driver مثبت في Windows

10. اتصال مباشر أو SSH tunnel

اتصال مباشر:

Test-NetConnection <ibmi-host> -Port 8471
Test-NetConnection <ibmi-host> -Port 8476

نفق SSH:

ssh -N -T `
  -L 449:127.0.0.1:449 `
  -L 8470:127.0.0.1:8470 `
  -L 8471:127.0.0.1:8471 `
  -L 8472:127.0.0.1:8472 `
  -L 8473:127.0.0.1:8473 `
  -L 8474:127.0.0.1:8474 `
  -L 8475:127.0.0.1:8475 `
  -L 8476:127.0.0.1:8476 `
  -o ExitOnForwardFailure=yes `
  -o ServerAliveInterval=15 `
  -o ServerAliveCountMax=3 `
  <ssh-user>@<ibmi-public-or-bastion-host>

اترك نافذة PowerShell مفتوحة. عدم ظهور output بعد نجاح ssh -N -T أمر طبيعي.

Test-NetConnection 127.0.0.1 -Port 449
Test-NetConnection 127.0.0.1 -Port 8471
Test-NetConnection 127.0.0.1 -Port 8476

11. إنشاء System DSN ‏64-bit

في System DSN أضف IBM i Access ODBC Driver. اسم مقترح:

DSE_IBMI_DEV

للاتصال المباشر استخدم host/IP الحقيقي. مع tunnel استخدم 127.0.0.1.

أضف المكتبات المطلوبة:

DBQ=DSETEST,QGPL;LIBVIEW=0;

إذا نجح الاتصال ولكن DSE يعرض QGPL فقط، راجع DBQ أولا.

12. اختبار ODBC خارج DSE

$cred = Get-Credential -UserName 'DSELAB' -Message 'IBM i ODBC credentials'
$password = $cred.GetNetworkCredential().Password
$connectionString = "DSN=DSE_IBMI_DEV;UID=$($cred.UserName);PWD=$password;DBQ=DSETEST,QGPL;LIBVIEW=0;"
$conn = New-Object System.Data.Odbc.OdbcConnection($connectionString)
$conn.Open()
$cmd = $conn.CreateCommand()
$cmd.CommandText = 'SELECT CUSTOMER_ID, NAME, STATUS, CREDIT_LIMIT FROM DSETEST.CUSTOMER ORDER BY CUSTOMER_ID'
$reader = $cmd.ExecuteReader()
$table = New-Object System.Data.DataTable
$table.Load($reader)
$table | Format-Table -AutoSize
$conn.Close()

إذا فشل هذا الاختبار، أصلح الشبكة أو driver أو الحساب أو الصلاحيات قبل الانتقال إلى DSE.

13. إعداد IBM i في DSE

اختر Mainframe → IBM i / AS400 (ODBC configure) ثم Edit connection.

DSN=DSE_IBMI_DEV;UID=DSELAB;PWD=<password>;DBQ=DSETEST,QGPL;LIBVIEW=0;

أو:

Driver={IBM i Access ODBC Driver};System=<ibmi-host>;Uid=DSELAB;Pwd=<password>;DBQ=DSETEST,QGPL;LIBVIEW=0;

مع SSH tunnel يكون host عادة 127.0.0.1. اختر IBM i / AS400 وليس Generic ODBC لأن connector الخاص بـ IBM i يحتوي على معالجة metadata وpreview مخصصة.

14. التحقق داخل DSE

  1. Test connection
  2. Load tables
  3. ابحث عن DSETEST.CUSTOMER
  4. تحقق من Table info
  5. افتح Preview
  6. اختر صفا وافتح Row details
  7. شغل استعلاما
SELECT * FROM "DSETEST"."CUSTOMER" FETCH FIRST 100 ROWS ONLY

يحتوي connector الخاص بـ IBM i على توافق مع بعض native/DDS objects التي ترفض FETCH FIRST؛ يمكن أن يطبق DSE حد الصفوف على client بدلا من server.

15. استكشاف أخطاء IBM i

IBM z/OS Db2

16. المتطلبات

تحتاج إلى z/OS يمكن الوصول إليه، Db2 LOCATION، منفذ DRDA، حساب Db2، IBM Data Server Driver for ODBC and CLI 64-bit ومسار ترخيص Db2 Connect صالح.

Driver={IBM DB2 ODBC DRIVER};Database=<location>;Hostname=<zos-host>;Port=<drda-port>;Protocol=TCPIP;Uid=<user>;Pwd=<password>;

اختبر driver والترخيص خارج DSE أولا، ثم Test connection وLoad tables وPreview وRow details والاستعلام.

VSAM و IMS و CICS

17. أوضاع المحول

ODBC:

Adapter=ODBC;ConnectionString="DSN=YOUR_VSAM_ADAPTER;Uid=<user>;Pwd=<password>";

REST:

Adapter=REST;BaseUrl=https://<adapter-host>;HealthPath=/health;ObjectsPath=/dse/objects;ColumnsPath=/dse/objects/{name}/columns;QueryPath=/dse/query;BearerToken=<token>;

لا يحتوي DSE على native protocol لـ VSAM/IMS/CICS؛ يجب أن يوفر middleware طبقة ODBC أو REST.

18. عقد REST

{
  "command": "SELECT * FROM CICSDEV.CUSTOMER_SERVICE FETCH FIRST 100 ROWS ONLY;",
  "sourceType": "CICS"
}

يدعم DSE أيضا get /some/path;. خيارات authentication: BearerToken، OAuth2 (TokenUrl, ClientId, ClientSecret, Scope)، Basic أو ApiKey.

19. CICS

Adapter=REST;BaseUrl=https://<cics-adapter>;HealthPath=/health;ObjectsPath=/dse/objects;ColumnsPath=/dse/objects/{name}/columns;QueryPath=/dse/query;BearerToken=<token>;

نتيجة CICS في DSE

بيانات أعمدة CICS

20. VSAM

استخدم ODBC virtualization أو REST. لا يوجد raw VSAM native access داخل DSE.

نتيجة VSAM KSDS في DSE

يجب أن يحول adapter المفاتيح وrecord layouts/copybooks والترميز إلى عقد DSE tabular/JSON.

21. IMS

Adapter=REST;BaseUrl=https://<ims-adapter>;HealthPath=/health;ObjectsPath=/dse/objects;ColumnsPath=/dse/objects/{name}/columns;QueryPath=/dse/query;BearerToken=<token>;

أو:

Adapter=ODBC;ConnectionString="DSN=YOUR_IMS_ADAPTER;Uid=<user>;Pwd=<password>";

تحدد طبقة middleware كيفية تحويل segments/hierarchies في IMS إلى objects وfields يقرأها DSE.

مثال على نتيجة استعلام IMS عبر محول DSE:

نتيجة IMS في DSE

قائمة التحقق

22. IBM i

23. z/OS Db2

24. VSAM / IMS / CICS

عند طلب الدعم، أرسل إصدار DSE ونوع المصدر وconnection string بعد إزالة الأسرار واسم/إصدار driver ونوع الشبكة ونص الخطأ والـ logs ونتيجة الاختبار نفسه خارج DSE. لا ترسل كلمة مرور أو SSH private key أو OAuth secret.