Hướng dẫn kết nối InfoSphere Information

Server với DB2 cho dòng System i

Hướng dẫn từng bước

IBM® Information Server hỗ trợ việc lấy và viết dữ liệu đến DB2 cho System i.

Chương trình này sẽ giúp bạn vượt quá khó khăn khi cài đặt kết nối từ Information

Server tới DB2 cho dòng System i, bài viết này sẽ hướng dẫn bạn đầy đủ từng

bước từ việc kiểm tra các thông tin và các chi tiết nhỏ nhất giúp bạn kết nối tới

DB2 cho dòng System i đồng thời giúp bạn hiểu rõ về các vai trò của DataStage.

Giới thiệu

DB2 cho dòng System i và DB2 cho Linux, UNIX và Windows có một vài điểm

khác biệt quan trọng, ví dụ, các thuật ngữ thông dụng, kiến trúc lưu trữ dữ liệu,

ngôn ngữ hỗ trợ. Đó là một số điểm khác biệt về khái niệm nhầm lẫn khi sử dụng

DataStage thiết lập kết nối tới DB2 cho i từ InfoSphere Information Server.

Vấn đề kết nối thường dễ dàng được loại ra. Tuy nhiên, các vấn đề kết nối liên

quan đến Information Server với System i đôi khi có thể là một thử thách. Một số

người dùng kết luận rằng vấn đề kết nối là một chức năng thiếu sót của

Information Server. Nhưng việc đưa ra ý kiến này một cách thường xuyên sẽ trở

thành một lỗ hổng kiến thức.

Với việc sử dụng Information Server rộng rãi cũng như công cụ ETL trong những

năm qua, lượng người đang sử dụng kết nối từ DB2 tới i thông qua Information

Server có thể sẽ được cải thiện. Bài viết này nhằm mục đích vượt qua các lỗ hổng

kiến thức bằng cách cung cấp một cách đơn giản, từng bước hướng dẫn kết nối từ

Information Server tới DB2 của System i dành cho quản trị viên, lập trình viên, kỹ

thuật viên, quản trị hệ thống và tất cả người dùng Information Server và System i.

Tìm hiểu về Information Server và DB2 cho System i

Giới thiệu DB2 cho System i

DB2 cho i là một hệ quản trị cơ sở dữ liệu được tích hợp hoàn toàn trong IBM

System i (trước đây được gọi là iSeries® và AS/400 ®). Đây là điểm khác biệt

chính giữa DB2 cho i và DB2 cho Linux, UNIX và Windows. DB2 cho Linux,

UNIX và Window là một ứng dụng được dùng trong hệ điều hành, trong khi DB2

cho i được kết hợp trong hệ điều hành làm cho nó trở nên linh hoạt, nâng cao hiệu

suất và có khả năng mở rộng. Nó tuân thủ các tiêu chuẩn sản suất nên chi phí cho

việc bảo hành thấp.

Để có thể truy cập DB2 cho i từ xa thì kiến trúc phân tán cơ sở dữ liệu quan hệ

(DRDA) phải được kích hoạt trong System i, và cơ sở dữ liệu quan hệ cục bộ phải

được định nghĩa bằng lệnh ADDRDBDIRE. Phần tiếp theo của bài này sẽ mô tả

cách thực hiện các việc này.

Giới thiệu kiến trúc InfoSphere Information Server

IBM InfoSphere Information Server là một bộ sản phẩm quản lý thông tin bao

gồm: Business Glossary Anywhere, FastTrack, Information Analyzer, Metadata

Workbench, DataStage, QualityStage, Information Services Director, và một số

phần mềm khác. Điểm ưu việt của InfoSphere Information Server là nền tảng cơ sơ

hạ tầng dùng chung của nó. Điều này cho phép chúng có thể chia sẻ siêu dữ liệu

giữa các mô đun cá nhân và làm cho việc tích hợp trở nên dễ dàng hơn. InfoSphere

Information Server bao gồm 4 tầng:

 Tầng lưu trữ (cơ sở dữ liệu như DB2, Oracle hay SQL Server)

 Tầng dịch vụ (WebSphere Application Server)

 Tầng công cụ (DSEngine, PXEngine)

 Tầng máy khách

Theo cách nhìn tổng quát, kiến trúc InfoSphere Information Server được hiển thị ở

Hình 1.

Hình 1. Kiến trúc InfoSphere Information Server

Kết nối với DB2 cho System i từ Information Server

Từ Information Server, có 2 phương pháp có thể sử dụng để truy cập DB2 cho

System i:

 DataDirect ODBC: Các trình điều khiển (driver) DataDirect ODBC được

xây dựng thành công trong tầng công cụ của Information Server. DB2 Wire

Protocol Driver được dùng để truy cập DB2 cho System i từ các tác vụ

DataStage.

 Ứng dụng khách DB2 trong tầng Information Server Engine: DB2

Connect phải được cài đặt trên Information Server Engine. Bằng cách sử

dụng phương pháp truy cập, DB2 UDB API stage có thể sử dụng trong tác

vụ DataStage.

Thu thập thông tin yêu cầu từ DB2 cho System i

Các thông tin cần thiết để truy cập DB2 cho System i:

IP address: Địa chỉ IP của DB2 cho System i.

 User name: Tên người dùng trên System i để truy cập vào DB2 cho System

i.

 Password: Mật khẩu người dùng.

 TCP port: Cổng dịch vụ DRDA. Thông thường, số của cổng là 446. Để vào

cổng, gõ lệnh WRKSRVTBLE từ giao diện gõ lệnh của System i và tìm

dòng với từ khóa là "drda" cho tên service và "tcp" cho protocol, như Hình

2.

Hình 2. Đầu ra của lệnh WRKSRVTBLE

 Location: Tên của cơ sở dữ liệu quan hệ trên System i mà bạn muốn truy

cập. Để lấy được tên vị trí, sử dụng lệnh DSPRDBDIRE từ giao diện dòng

lệnh của System i và sau đó tìm dòng có từ khóa "*LOCAL." Tên mục chính

là vị trí. Như ở Hình 3, DBONB01 là tên vị trí.

Hình 3. Đầu ra của lệnh DSPRDBDIRE

Kết nối tới DB2 sử dụng ODBC

Đây là phương pháp truy cập DB2 thông thường nhất cho hệ thống từ Information

Server DataStage bởi vì nó không yêu cầu những chi phí phụ cho kết nối DB2 và

tương đối đơn giản để cài đặt.

Cài đặt nguồn dữ liệu trong môi trường Windows

Bởi vì trình điều khiển ODBC (ODBC driver) đi kèm Information Server là 32-bit,

bạn cần sử dụng công cụ ODBC Administration Tool dung lượng 32–bit để cài đặt

hệ thống System Data Source. Nếu bạn đang chạy Windows 64-bit, hãy tham khảo

tài liệu cung cấp của Microsoft 942976 (xem phần Tài nguyên).

1. Mở Control Panel và chọn System and Security > Administrative Tools >

Data Sources(ODBC). Chọn thẻ System DSN và nhấn nút Add.

Hình 4. ODBC Data Source Administrator trên Windows

2. Chọn IBM DB2 Wire Protocol.

Hình 5. Trình điều khiển DB2 Wire Protocol

3. Điền vào các thông tin Data Source Name, IP Address, TCP Port, và

Location Name chứa trong phần trước. Chọn Test Connect để chắc chắn

rẳng kết nối đã được thiết lập thành công.

Hình 6. Cài đặt ODBC DB2 Wire Protocol Driver

Cài đặt nguồn dữ liệu trong môi trường UNIX hay LINUX

Trong UNIX và Linux, kết nối ODBC thừa hưởng môi trường từ dsenv và tìm

kiếm .odbc.ini file cho hệ thống chạy. Các bước cài đặt trên UNIX hay Linux như

sau:

1. Chắc chắn rằng thông tin trong dsenv là chính xác.

Môi trường cài đặt trong dsenv cho kết nối ODBC được cài đặt mặc định.

Nếu dsenv không được chỉnh sửa, dsenv của bạn sẽ giống như Liệt kê 1.

Liệt kê 1. Danh sách các biến môi trường trong tệp dsenv

ODBCINI=$DSHOME/.odbc.ini; export ODBCINI

LD_LIBRARY_PATH=`dirname $DSHOME`/branded_odbc/lib

Lưu ý rằng thư viện đường dẫn các biến môi trường là khác nhau giữa các

nền tảng UNIX khác nhau:

o Solaris: Linux – LD_LIBRARY_PATH

o HP-UX: SHLIB_PATH

o AIX: LIBPATH

2. Tạo ra một mục truy cập trong tệp .odbc.ini.

Tệp .odbc.ini được đặt trong thư mục $DSHOME theo mặc định (hoặc tham

khảo từ $ODBCINI trong dsenv như đã thảo luận ở bước 1). Sao lưu tập tin

.odbc.ini, rồi mở nó ra với trình soạn thảo. Có một ví dụ trong tập tin này

cho giao thức DB2 Wire. Sao chép và dán ví dụ cho việc tạo mục mới và

điền thông tin cho Location, LogonID, Password, và TcpPort. Liệt kê 2 là

một ví dụ.

Liệt kê 2. Ví dụ đang cài đặt DataDirect ODBC cho System i

[TORI6B01]

Driver=/opt/IBM/InformationServer/Server/branded_odbc/lib/VMdb225.so

Description=DataDirect DB2 Wire Protocol Driver

AddStringToCreateTable=

AlternateID=

Collection=

Database=

DynamicSections=100

GrantAuthid=PUBLIC

GrantExecute=1

IpAddress=9.26.103.178

IsolationLevel=CURSOR_STABILITY

Location=Location_name

LogonID=User_name

Password=Password

Package=DB2 package name

PackageOwner=

TcpPort=446

WithHold=1

Tên mục giữa dấu ngoặc vuông có thể là tên bất kỳ. Tuy nhiên, chúng tôi

khuyên bạn nên giữ tên vị trí để dễ nhận biết.

3. Sửa đổi tập tin uvodbc.config.

Sau khi tập tin .odbc.ini được tạo ra, bạn cần phải thêm mục tên nguồn dữ

liệu vào tập tin uvodbc.config trong từng thư mục dự án cho từng dự án yêu

cầu truy cập vào nguồn dữ liệu. Liệt kê 3 hiển thị ví dụ.

Liệt kê 3. Ví dụ trong uvodbc.config

DBMSTYPE = UNIVERSE

network = TCP/IP

service = uvserver

host = localhost

DBMSTYPE = ODBC

Lưu ý rằng tên nguồn dữ liệu giữa dấu ngoặc nhọn phải giống với tên nguồn

dữ liệu trong các tập tin ODBC.INI giữa dấu ngoặc vuông. Trong ví dụ

trước, TORI6B01 đã được sử dụng.

4. Tạo gói liên kết trên DB2 cho i.

Để giao thức DB2 Wire làm việc đúng, gói liên kết DB2 phải được tạo trên

DB2 cho System i. Tiện ích liên kết được đặt ở thư mục

../branded_odbc/bin. Cú pháp là:

Bindxx data_source_name

Lưu ý: xx là phiên bản tiện ích liên kết. Duyệt thư mục ../branded_odbc/bin/

và bạn nên tìm chính xác phiên bản của liên kết đi kèm với các trình điều

khiển ODBC. Liệt kê 4 là một ví dụ.

Liệt kê 4. Ví dụ gói liên kết

[root@rhel55iis87 bin]# ./bind25 TORI6B01

User Name: TEST

Password: ********

SecurityMechanism: ''

Creating packages ...Packages created and bound.

Bạn có thể sử dụng các chương trình mẫu để kiểm tra các kết nối tới nguồn dữ liệu.

Các ví dụ nằm trong thư mục ./branded_odbc/sample. Liệt kê 5 là một ví dụ.

Liệt kê 5. Ví dụ để kiểm tra kết nối sử dụng trình điều khiển ODBC.

[root@rhel55iis87 example]# pwd

/opt/IBM/InformationServer/Server/branded_odbc/samples/example

[root@rhel55iis87 example]# ./example

./example DataDirect Technologies, Inc. ODBC Example Application.

Enter the data source name : TORI6B01

Enter the user name : TEST

Enter the password : PASSWORD

Enter SQL statements (Press ENTER to QUIT)

SQL>

Khi bạn nhìn thấy thông báo "Enter SQL statements (Press ENTER to QUIT)" và

giao diện SQL xuất hiện, thì tức là kết nối với nguồn dữ liệu sử dụng ODBC đã

được thực hiện thành công.

Import (nhập vào) các định nghĩa bảng ODBC.

1. Sau khi kết nối ODBC được tạo, đăng nhập vào Information Server

Designer máy trạm. Từ Import > Table Definitions > ODBC Table

Definitions…, chọn DSN từ danh sách và nhập tên và mật khẩu giống như ở

Hình 7.

Hình 7. Nhập định nghĩa bảng ODBC - 1

Nhấn OK.

2. Từ cửa sổ tiếp theo, chọn bảng bạn muốn nhập.

Hình 8. Nhập định nghĩa bảng ODBC - 2

Sử dụng ODBC Connector, ODBC Enterprise, hay DRS stage để truy cập

DB2 cho i

Bạn có thể sử dụng định nghĩa bảng đã nhập vào để thiết kế một tác vụ DataStage

để đọc hoặc ghi vào bảng trên DB2 cho i sử dụng ODBC Connector, ODBC

Enterprise, hay DRS stage. Các bước sau đây sử dụng ODBC Connector stage.

1. Bắt đầu với ODBC Connector. Nhấn Load.

Hình 9. ODBC Connector

2. Tải định nghĩ bảng ODBC. Từ cửa sổ Table Definitions, chọn ODBC, chọn

nguồn dữ liệu, và chọn bảng.

Hình 10. Các định nghĩa bảng

3. Chọn các cột mà bạn muốn sử dụng, di chuyển chúng sang khung Selected

columns.

Hình 11. Chọn các cột

4. Hình tiếp theo (Hình 12) hiển thị các thông tin cột.

Hình 12. Các thông tin cột

5. Định nghĩa thông tin giao tiếp. Từ màn hình ODBC Connector, định nghĩa

chi tiết các thông tin trên thẻ Properties. Trong Connection, định nghĩa

nguồn dữ liệu của bạn, tên người dùng, và mật khẩu.

Hình 13. Các thông tin ODBC Connector

6. Chạy tác vụ DataStage từ InfoSphere DataStage Designer.

Hình 14. Quá trình chạy tác vụ hoàn thành

Ví dụ trên là đang đọc một bảng trong DB2 cho i. Kiểm tra để xác nhận rằng bạn

đã nhận được đầu ra chính xác. Quá trình ghi dữ liệu vào DB2 cho i cũng tương tự.

Điều quan trọng là chắc chắn siêu dữ liệu (schema) là giống như bảng mục tiêu từ

đầu vào.

Về đầu trang

Kết nối tới DB2 cho i sử dụng DB2 connect

DB2 Connect hay DB2 Enterprise Server Edition là một yêu cầu trên tầng

Information Server Engine để truy cập DB2 cho System i. Cài đặt DB2 Connect

hay DB2 Enterprise Server không nằm trong phạm vi của bài viết này. Tuy nhiên,

bạn có thể tham khảo tại Trung tâm Thông tin IBM DB2 để biết thêm chi tiết (xem

Tài nguyên).

Kiểm tra xem DB2 Connect hay DB2 Enterprise Server đã được cài đặt trên

tầng Information Server Engine

Cách kiểm tra nếu DB2 Connect or DB2 Enterprise Server đã được cài đặt:

 Nền tảng Windows: mở Windows command prompt, thay đổi thư mục DB2

BIN trong thư mục cài đặt DB2 (thường là SQLLIB), rồi thực hiện lệnh

db2licm -l. Xem Hình 15.

Hình 15. Kiểm tra sản phẩm DB2 trên nền tảng Windows.

 Nền tảng UNIX/Linux: Kiểm tra DB2 DBA của bạn theo tên DB2 instance

đã được cài đặt trong tầng Information Server Engine. Đăng nhập vào tầng

the Information Server Engine với vai trò là người sở hữu DB2 instance và

chạy db2licm để kiểm tra DB2 instance là DB2 Connect hay DB2

Enterprise. Enterprise. Xem ví dụ trong Liệt kê 6.

Liệt kê 6. Liệt kê 6. Mẫu kiểm tra DB2 product trên UNIX/Linux

# db2licm -l

Product name: "DB2 Enterprise Server Edition"

License type: "Restricted"

Expiry date: "Permanent"

Product identifier: "db2ese"

Version information: "9.7"

Tạo nút kết nối DB2 cho System i

Sau việc cài đặt điều kiện tiên quyết là thành phần DB2 Connect được xác nhận,

bạn có thể tạo danh mục cho System i bằng cách tạo nút kết nối DB2 cho System i

để xây dựng kết nối từ DB2 Connect tới System i. Các cú pháp được hiển thị ở Liệt

kê 7.

Liệt kê 7. Cú pháp để thiết lập nút DB2

db2 catalog tcpip node Node_Name remote IP_Address server Port

Tham số lệnh:

 Node_Name: Tên bí danh (alias) cho các nút để được xếp vào danh mục. Có

thể là một tên tuỳ ý trên tầng Information Server Engine và được sử dụng để

xác định các nút.

 IP_Address: Địa chỉ IP của các dòng máy i nơi đặt DB2 cho System i.

 Port: DB2 cho System i từ cổng dịch vụ DRDA, thường là 446, hoặc cổng

lấy từ "Thu thập thông tin yêu cầu từ DB2 cho System i."

Ví dụ:

Liệt kê 8. Ví dụ thiết lập nút DB2

$db2 catalog tcpip node TORI6B01 remote 9.26.103.178 server 446

DB20000I The CATALOG TCPIP NODE command completed successfully.

DB21056W Directory changes may not be effective until the directory cache is

refreshed.

Danh mục tới mục tiêu cơ sở dữ liệu trên System i

Bước tiếp theo là tạo danh mục cơ sở dữ liệu trên DB2 cho I để truy cập. Cú pháp

ở Liệt kê 9.

Liệt kê 9. Cú pháp để tạo danh mục cơ sở dữ liệu

db2 catalog db DB_Name_on_System_i as DB_Alias_on_Local at node

Node_Name

authentication Authentication_Mode

Tham số lệnh:

 DB_Name_on_System_i: Tên cơ sở dữ liệu trên System i, đó là Location

Name được lấy từ "Thu thập thông tin yêu cầu từ DB2 cho System i."

 DB_Alias_on_Local: Bí danh (alias) của cơ sở dữ liệu trên hệ thống cục bộ.

Lưu ý rằng tên bí danh này được sử dụng cho việc kết nối cơ sở dữ liệu sau

khi tạo danh mục cơ sở dữ liệu mục tiêu (Vị trí) trên DB2 cho System i.

Trong trường hợp bạn đang sử dụng một tên bí danh khác với tên vị trí, bạn

cần phải sử dụng tên bí danh này thay cho tên vị trí khi kết nối từ DB2

Connect trong Information Server tới cơ sở dữ liệu mục tiêu (Vị trí) trên

Db2 cho System i.

 Node_Name: Tên phải đặt giống với Node_Name trong phần "Tạo nút kết

nối DB2 cho System i" khi tạo nút DB2 cho System i;

 Authentication_Mode: Chế độ cho phép mặc định là máy chủ.

Ví dụ:

Liệt kê 10. Ví dụ tạo danh mục DB2 cho cơ sở dữ liệu i

$db2 catalog db DBONB01 as DBONB01 at node TORI6B01 authentication

server

DB20000I The CATALOG DATABASE command completed successfully.

DB21056W Directory changes may not be effective until the directory cache is

refreshed.

Kết nối tới DB2 cho i

Sau khi tạo thành công danh mục tới cơ sở dữ liệu mục tiêu, bạn đã có khả năng

kết nối tới cơ sở dữ liệu mục tiêu. Cú pháp ở Liệt kê 11

Liệt kê 11. Cú pháp kết nối tới cơ sở dữ liệu

db2 connect to DB_Alias_on_Local user System_i_user_name using

Password_for_System_i_user

Tham số lệnh:

 DB_Alias_on_Local: Giống như DB_Alias_on_Local đã được tạo trong "

Danh mục tới mục tiêu cơ sở dữ liệu trên System i."

 System_i_user_name: Tên người sử dụng để truy cập vào vị trí trên DB2

cho System i. Người dùng này phải được cho phép đọc và ghi vào vị trí mục

tiêu.

 Password_for_System_i_user: Mật khẩu cho người dùng trong System i.

Ví dụ:

Liệt kê 12. Ví dụ kết nối tới DB2 cho cơ sở dữ liệu i

$db2 connect to DBONB01 user TEST using PASSWORD

Database Connection Information

Database server = OS/400 6.1.0

SQL authorization ID = TEST

Local database alias = DBONB01

Thiết lập môi trường cho Information Server

Information Server kết nối với cơ sở dữ liệu DB2 trên System i sử dụng DB2

Connect trong bài viết này. Như vậy, môi trường DB2 phải được đọc bởi

Information Server.

Trong môi trường Windows, Information Server lấy thông tin môi trường DB2 từ

môi trường hệ thống. Khi máy chủ DB2 Connect hay DB2 Enterprise được cài đặt,

quá trình cài đặt tạo ra các mục trong Windows System Environment Variables >

System Variables. Tuy nhiên, bạn có thể kiểm tra lại để xác minh rằng các đường

dẫn thư viện DB2 được thiết lập chính xác.

Hình 16. Kiểm tra biến hệ thống Windows

Trong môi trường UNIX hay Linux, Information Server được thừa hưởng môi

trường từ dsenv, môi trường dự án và môi trường người dùng đăng nhập. Điều này

khuyến khích mạnh mẽ việc thiết lập môi trường DB2 Connect từ dsenv để tránh

nhầm lẫn không cần thiết.

Đường dẫn thư viện cho DB2 Connect phải được thiết lập trong dsenv. Ví dụ ở

Liệt kê 13.

Liệt kê 13. Ví dụ về biến môi trường trong UNIX/Linux

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/IBM/db2/V9/lib64

Liệt kê 13 là từ một môi trường Linux. Xin lưu ý rằng các đường dẫn biến môi

trường là khác nhau trên nền tảng UNIX khác nhau :

 Solaris and Linux: LD_LIBRARY_PATH

 HP-UX: SHLIB_PATH

 AIX: LIBPATH

Information Server DataStage phải được khởi động lại sau khi sửa đổi dsenv để các

thay đổi môi trường có hiệu lực.

Nhập định nghĩa bảng dữ liệu Plug-in Meta Data

Bây giờ bạn đã có khả năng kết nối tới cơ sở dữ liệu trên DB2 cho i. Đăng nhập

vào Information Server Designer máy khách. Từ Import > Table Definitions >

Plug-in Meta Data Table Definitions…, chọn DSDB2.

Hình 17. Nhập định nghĩa bảng dữ liệu Plug-in Meta Data - 1

Nhấn OK. Từ cửa sổ bên cạnh, chọn Server Name từ thanh cuộn, nhập User

Name và Password, kiểm tra bảng và chọn Fully Quantified Table Name..

Hình 18. Nhập định nghĩa bảng dữ liệu Plug-in Meta Data - 2

Nhấn Next và chọn bảng bạn muốn nhập.

Hình 19. Nhập định nghĩa bảng dữ liệu Plug-in Meta Data - 3

Sử dụng DB2 API để đọc và ghi vào cơ sở dữ liệu trên DB2 cho i từ tác vụ của

DataStage.

Bạn có thể sử dụng các định nghĩa bảng đã nhập để đọc hoặc ghi vào bảng trên

DB2 cho System i thông qua DB2 API stage từ tác vụ của Data Stage.

Hình 20. DB2 UDB API stage - Stage chung

Hình 21. DB2 UDB API stage - Đầu ra chung

Hình 22. DB2 UDB API stage - Hiển thị cột

Hình 23. DB2 UDB API stage - Chọn cột

Hình 24. DB2 UDB API stage - Các cột đầu ra

Lưu ý: Bạn có thể gặp lỗi khi cố gắng xem dữ liệu từ bảng. Lỗi này có thể được

giải quyết bằng cách loại bỏ tất cả các mục Derivation từ Output > Columns Tab

theo như hình 24.

Hình 25. Lỗi khi xem dữ liệu

Hình 26. Loại bỏ tất cả các mục Derivation

Chạy tác vụ.

Hình 27. Hoàn thành quá trình chạy tác vụ

Ví dụ trên đây là cho các hoạt động đọc từ DB2 API stage. Tuy nhiên, việc ghi vào

DB2 cho i cũng tương tự. Điều duy nhất phải được lưu ý là các siêu dữ liệu

(schema) giống như các bảng mục tiêu từ đầu vào.

Kết luận

Khả năng kết nối từ Information Server đến DB2 cho i không quá phức tạp. Như

đã được nói đến trong bài viết này, điều quan trọng nhất là giải quyết các vấn đề

kết nối, là có các điều kiện tiên quyết để cài đặt và thiết lập đúng môi trường.