CICS - Hướng dẫn nhanh

CICS là một hệ thống DB / DC được sử dụng trong các ứng dụng trực tuyến. CICS được phát triển bởi vì hệ điều hành hàng loạt chỉ có thể thực thi các chương trình hàng loạt. Các chương trình CICS có thể được viết bằng COBOL, C, C ++, Java, v.v. Ngày nay, người dùng muốn có thông tin trong vài giây và theo thời gian thực. Để cung cấp dịch vụ nhanh chóng như vậy, chúng tôi cần một hệ thống có thể xử lý thông tin trực tuyến. CICS cho phép người dùng giao tiếp với hệ thống back-end để có được thông tin mong muốn. Ví dụ về các chương trình trực tuyến bao gồm hệ thống ngân hàng trực tuyến, đặt vé máy bay, v.v. Hình ảnh sau đây cho thấy các thành phần của CICS và cách chúng liên quan với nhau -

Chức năng của CICS

Các chức năng chính được thực hiện bởi CICS trong một ứng dụng như sau:

  • CICS quản lý các yêu cầu từ người dùng đồng thời trong một ứng dụng.

  • Mặc dù, nhiều người dùng đang làm việc trên hệ thống CICS nhưng nó tạo cảm giác cho người dùng rằng anh ta chỉ là người dùng duy nhất.

  • CICS cung cấp quyền truy cập vào các tệp dữ liệu để đọc hoặc cập nhật chúng trong một ứng dụng.

Đặc điểm của CICS

Các tính năng của CICS như sau:

  • Bản thân CICS là một hệ điều hành, vì nó quản lý bộ lưu trữ bộ xử lý của riêng mình, có trình quản lý tác vụ riêng xử lý việc thực thi nhiều chương trình và cung cấp các chức năng quản lý tệp của riêng nó.

  • CICS cung cấp môi trường trực tuyến trong hệ điều hành hàng loạt. Các công việc được gửi được thực hiện ngay lập tức.

  • CICS là một giao diện xử lý giao dịch tổng quát.

  • Có thể có hai hoặc nhiều vùng CICS cùng một lúc, vì CICS chạy như một công việc hàng loạt trong hệ điều hành ở phía sau.

Bản thân CICS hoạt động như một hệ điều hành. Công việc của nó là cung cấp một môi trường để thực thi trực tuyến các chương trình ứng dụng. CICS chạy trong một vùng hoặc phân vùng hoặc không gian địa chỉ. CICS xử lý việc lập lịch cho các chương trình chạy dưới nó. CICS chạy như một công việc hàng loạt và chúng ta có thể xem nó trong bộ đệm bằng cách ra lệnh PREFIX CICS *. Có năm dịch vụ chính do CICS cung cấp. Tất cả các dịch vụ này cùng thực hiện một nhiệm vụ.

Môi trường CICS

Sau đây là các dịch vụ mà chúng ta sẽ thảo luận chi tiết từng bước -

  • Dịch vụ hệ thống
  • Dịch vụ Truyền thông Dữ liệu
  • Dịch vụ xử lý dữ liệu
  • Dịch vụ lập trình ứng dụng
  • Dịch vụ giám sát
  • Dịch vụ hệ thống

CICS duy trì các chức năng kiểm soát để quản lý việc phân bổ hoặc không phân bổ các nguồn lực trong hệ thống như sau:

  • Task Control- Kiểm soát tác vụ cung cấp các tính năng lập lịch tác vụ và đa nhiệm. Nó xử lý tình trạng của tất cả các nhiệm vụ CICS. Task Control phân bổ thời gian xử lý giữa các tác vụ CICS đồng thời. Đây được gọi làmultitasking. CICS cố gắng ưu tiên thời gian phản hồi cho nhiệm vụ quan trọng nhất.

  • Program Control- Kiểm soát chương trình quản lý việc tải và phát hành các chương trình ứng dụng. Ngay sau khi một nhiệm vụ bắt đầu, cần phải liên kết nhiệm vụ với chương trình ứng dụng thích hợp. Mặc dù nhiều tác vụ có thể cần sử dụng cùng một chương trình ứng dụng, CICS chỉ tải một bản sao mã vào bộ nhớ. Mỗi tác vụ phân luồng theo cách của nó thông qua mã này một cách độc lập, vì vậy nhiều người dùng có thể đang chạy các giao dịch đồng thời sử dụng cùng một bản sao vật lý của một chương trình ứng dụng.

  • Storage Control- Kiểm soát lưu trữ quản lý việc mua và phát hành bộ nhớ chính. Kiểm soát bộ nhớ mua, kiểm soát và giải phóng bộ nhớ động. Lưu trữ động được sử dụng cho các khu vực đầu vào / đầu ra, chương trình, v.v.

  • Interval Control - Kiểm soát khoảng thời gian cung cấp các dịch vụ hẹn giờ.

Dịch vụ Truyền thông Dữ liệu

Giao diện Dịch vụ Truyền dữ liệu với các phương pháp truy cập viễn thông như BTAM, VTAM và TCAM để xử lý các yêu cầu truyền dữ liệu từ các chương trình ứng dụng.

  • CICS giải phóng các chương trình ứng dụng khỏi gánh nặng xử lý các vấn đề phần cứng đầu cuối thông qua việc sử dụng Hỗ trợ lập bản đồ cơ bản (BMS).

  • CICS cung cấp Hoạt động đa vùng (MRO) qua đó nhiều vùng CICS trong cùng một hệ thống có thể giao tiếp.

  • CICS cung cấp Giao tiếp giữa các hệ thống (ISC) qua đó một vùng CICS trong một hệ thống có thể giao tiếp với vùng CICS trên một hệ thống khác.

Dịch vụ xử lý dữ liệu

Giao diện Dịch vụ Xử lý Dữ liệu với các phương pháp truy cập dữ liệu như BDAM, VSAM, v.v.

  • CICS tạo điều kiện cho việc phục vụ các yêu cầu xử lý dữ liệu từ các chương trình ứng dụng. CICS cung cấp cho người lập trình ứng dụng một tập hợp các lệnh để xử lý tập dữ liệu và truy cập cơ sở dữ liệu và các hoạt động liên quan.

  • Dịch vụ Xử lý Dữ liệu giao diện với các phương thức truy cập cơ sở dữ liệu như IMS / DB, DB2, v.v. và tạo điều kiện phục vụ các yêu cầu cơ sở dữ liệu từ các chương trình ứng dụng.

  • CICS tạo điều kiện thuận lợi cho việc quản lý tính toàn vẹn của dữ liệu bằng cách kiểm soát cập nhật hồ sơ đồng thời, bảo vệ dữ liệu theo nhiệm vụ XUẤT HIỆN và bảo vệ dữ liệu khi hệ thống gặp lỗi.

Dịch vụ lập trình ứng dụng

Giao diện Dịch vụ Lập trình Ứng dụng với các chương trình ứng dụng. Các dịch vụ lập trình ứng dụng của CICS cung cấp các tính năng như dịch cấp lệnh, CEDF (cơ sở gỡ lỗi) và CECI (cơ sở thông dịch lệnh). Chúng tôi sẽ thảo luận chi tiết hơn trong các mô-đun sắp tới.

Dịch vụ giám sát

Dịch vụ Giám sát giám sát các sự kiện khác nhau trong không gian địa chỉ CICS. Nó cung cấp một loạt thông tin thống kê có thể được sử dụng để điều chỉnh hệ thống.

Chúng ta phải có kiến ​​thức về các thuật ngữ cơ bản được sử dụng trong CICS để hiểu rõ hơn về cách thức hoạt động của nó. Các chương trình ứng dụng sử dụng CICS để liên lạc với các thiết bị đầu cuối và hệ thống con từ xa và cục bộ.

Thiết bị đầu cuối 3270 của IBM

Hệ thống hiển thị thông tin 3270 là một họ màn hình và thiết bị đầu cuối máy in. 3270 thiết bị đầu cuối đã được sử dụng để kết nối với máy tính lớn thông qua bộ điều khiển IBM. Ngày nay, phần mềm giả lập 3270 đã có sẵn, có nghĩa là ngay cả những PC bình thường cũng có thể được sử dụng làm thiết bị đầu cuối 3270. Các thiết bị đầu cuối 3270 là thiết bị đầu cuối câm và không tự thực hiện bất kỳ quá trình xử lý nào. Tất cả quá trình xử lý cần được thực hiện bởi chương trình ứng dụng. Thiết bị đầu cuối của IBM bao gồm các thành phần sau:

Màn hình CRT

Màn hình CRT hiển thị đầu ra hoặc các trường đầu vào của chương trình ứng dụng. Ảnh chụp màn hình của Model 3278 của màn hình CRT được hiển thị bên dưới. Nó có các đặc điểm sau:

  • Nó có khả năng hiển thị 1920 ký tự.

  • Mỗi vị trí trong số 1920 ký tự này có thể được định địa chỉ riêng.

  • Một chương trình ứng dụng COBOL có thể gửi dữ liệu đến tất cả các vị trí trên màn hình.

  • Các đặc điểm hiển thị như cường độ, được bảo vệ, không được bảo vệ của trường có thể được thiết lập bằng BMS mà chúng ta sẽ thảo luận chi tiết trong các mô-đun sắp tới.

Bàn phím

Các phím bàn phím IBM được chia thành hai loại sau:

  • Non-AID Keys- Tất cả các phím khác cho bảng chữ cái, số, dấu câu, v.v. đều là các phím Non-Aid. Khi người dùng nhập văn bản hoặc số bằng các phím không hỗ trợ, CICS thậm chí sẽ không biết liệu người dùng có đang nhập bất cứ thứ gì hay không.

  • AID Keys- Các khóa AID được gọi là Khóa Nhận dạng Chú ý. CICS chỉ có thể phát hiện các khóa AID. Sau khi nhập tất cả các đầu vào, chỉ khi người dùng nhấn một trong các phím AID, CICS mới có quyền kiểm soát. Phím AID: ENTER, PF1 đến PF24, PA1 đến PA3, XÓA. Khóa AID được chia thành hai loại:

    • PF Keys- Phím PF được gọi là phím chức năng. Các phím PF cho phép chuyển dữ liệu từ thiết bị đầu cuối đến CICS. Phím PF là ENTER và PF1 đến PF24.

    • PA Keys- Các phím PA được gọi là các phím Truy cập Chương trình. Các phím PA không cho phép chuyển dữ liệu giữa thiết bị đầu cuối và CICS. Các phím PA là PA1 đến PA3 và CLEAR.

    Giao dịch

    Một chương trình CICS được gọi thông qua một giao dịch. Giao dịch CICS là một tập hợp các chương trình liên quan đến logic trong một ứng dụng. Toàn bộ ứng dụng có thể được chia thành nhiều giao dịch một cách hợp lý.

    • Số nhận dạng giao dịch có độ dài từ 1 đến 4 ký tự được sử dụng để xác định các giao dịch mà người dùng muốn thực hiện.

    • Một lập trình viên liên kết một chương trình với mã định danh giao dịch được sử dụng để gọi tất cả các chương trình ứng dụng cho giao dịch cụ thể đó.

    Bài tập

    Nhiệm vụ là một đơn vị công việc dành riêng cho người dùng.

    • Người dùng gọi một ứng dụng bằng cách sử dụng một trong các số nhận dạng giao dịch. CICS tìm kiếm mã định danh giao dịch để tìm ra chương trình nào sẽ gọi trước để thực hiện công việc được yêu cầu. Nó tạo ra một nhiệm vụ để thực hiện công việc và chuyển quyền kiểm soát cho chương trình được đề cập.

    • Một giao dịch có thể được hoàn thành thông qua một số nhiệm vụ.

    • Một tác vụ có thể nhận dữ liệu từ và gửi dữ liệu đến thiết bị đầu cuối đã khởi động nó. Nó có thể đọc và ghi các tập tin và cũng có thể bắt đầu các tác vụ khác.

    Nhiệm vụ so với Giao dịch

    Sự khác biệt giữa giao dịch và nhiệm vụ là một số người dùng có thể gọi một giao dịch nhưng mỗi người dùng bắt đầu tác vụ của riêng mình.

    LUW

    LUW là viết tắt của Logical Unit of Work. LUW nói rằng một phần công việc nên được thực hiện hoàn toàn hoặc hoàn toàn không được thực hiện. Một nhiệm vụ có thể chứa một số Đơn vị logic của Công việc trong CICS. Chúng tôi sẽ thảo luận thêm về nó trong các mô-đun sắp tới.

    Ứng dụng

    Ứng dụng là một loạt các chương trình được nhóm lại một cách hợp lý để tạo thành một số giao dịch được sử dụng để hoàn thành một nhiệm vụ cụ thể cho người dùng cuối.

    Năm thành phần hệ thống CICS được mô tả trước đó là một nhóm các chương trình hệ thống CICS thuận tiện, mỗi thành phần thực hiện các chức năng chuyên biệt của riêng mình. Cốt lõi của CICS được gọi là Hạt nhân CICS bao gồm các Chương trình Điều khiển CICS và Bảng Điều khiển do IBM cung cấp.

    Chương trình kiểm soát

    Hạt nhân CICS được xây dựng bởi các chương trình điều khiển và bảng điều khiển tương ứng. Nó cung cấp những lợi thế độc đáo. Nó làm cho hệ thống CICS có tính linh hoạt cao và do đó dễ bảo trì. Sau đây là các chương trình kiểm soát quan trọng của CICS -

    TCP

    TCP được gọi là Chương trình Điều khiển Đầu cuối.

    • TCP được sử dụng để nhận tin nhắn từ thiết bị đầu cuối.

    • Nó duy trì các yêu cầu giao tiếp phần cứng.

    • Nó yêu cầu CICS bắt đầu các nhiệm vụ.

    KCP

    KCP được gọi là Chương trình Kiểm soát Tác vụ.

    • KCP được sử dụng để kiểm soát đồng thời việc thực thi các tác vụ và các thuộc tính liên quan của nó.

    • Nó xử lý tất cả các vấn đề liên quan đến đa tác vụ.

    PCP

    PCP được gọi là Chương trình Kiểm soát Chương trình.

    • PCP được sử dụng để định vị và tải các chương trình để thực thi.

    • Nó chuyển quyền điều khiển giữa các chương trình và cuối cùng, nó trả lại quyền điều khiển cho CICS.

    FCP

    FCP được gọi là Chương trình Kiểm soát Tệp.

    • FCP được sử dụng để cung cấp các chương trình ứng dụng với các dịch vụ như đọc, chèn, cập nhật hoặc xóa các bản ghi trong một tệp.

    • Nó giữ quyền kiểm soát độc quyền đối với các bản ghi để duy trì tính toàn vẹn của dữ liệu trong quá trình cập nhật hồ sơ.

    SCP

    SCP được gọi là Chương trình Kiểm soát Lưu trữ. Nó được sử dụng để kiểm soát việc phân bổ và phân bổ lưu trữ trong khu vực CICS.

    Bảng điều khiển

    CICS bao gồm các chương trình và bảng điều khiển CICS do IBM cung cấp. Các bảng này cần được cập nhật phù hợp với thông tin ứng dụng để thực hiện thành công các chương trình ứng dụng CICS. Sau đây là các Bảng điều khiển quan trọng -

    TCT

    TCT được gọi là Bảng điều khiển đầu cuối.

    • Khi chúng tôi đăng nhập vào thiết bị đầu cuối CICS, một mục nhập sẽ được thực hiện trong bảng TCT.

    • TCT chứa ID đầu cuối được kết nối với vùng CICS hiện tại.

    • Chương trình điều khiển thiết bị đầu cuối cùng với bảng điều khiển thiết bị đầu cuối nhận dạng dữ liệu đến từ thiết bị đầu cuối.

    PCT

    PCT được gọi là Bảng điều khiển chương trình.

    • Nó chứa ID giao dịch (TRANSID) và tên chương trình hoặc ID chương trình tương ứng.

    • TRANSID là duy nhất trong bảng PCT.

    PPT

    PPT được gọi là Bảng chương trình xử lý. PPT chứa Tên chương trình hoặc tên Mapset, Bộ đếm sử dụng tác vụ, Ngôn ngữ, Kích thước, Địa chỉ lưu trữ chính, Địa chỉ thư viện tải, v.v.

    • Tên chương trình hoặc Mapset là duy nhất trong bảng PPT.

    • CICS nhận giao dịch và tên chương trình tương ứng được cấp cho giao dịch từ PCT. Nó kiểm tra xem chương trình đã được tải hay chưa. Nếu nó được tải, thì bộ đếm sử dụng tác vụ sẽ tăng lên 1. Nếu chương trình không được tải, thì chương trình được tải đầu tiên và bộ đếm sử dụng tác vụ được đặt thành 1. Nó nhận địa chỉ thư viện tải từ bảng PPT.

    thuế nhà thầu

    FCT được gọi là Bảng kiểm soát tệp.

    • Nó chứa tên tệp, loại tệp, độ dài bản ghi, v.v.

    • Tất cả các tệp được sử dụng trong chương trình CICS phải được khai báo trong FCT và chúng được mở và đóng bởi chính CICS.

    Giao dịch

    Khi số nhận dạng giao dịch TP02 được nhập trên thiết bị đầu cuối CICS, trước tiên nó sẽ kiểm tra xem có chương trình nào được liên kết với số nhận dạng giao dịch này trong bảng PCT hay không. Nếu nó tìm thấy một, thì nó sẽ kiểm tra trong bảng PPT để tìm vị trí của Chương trình để thực thi nó.

    Nếu chương trình đã có sẵn trong bộ nhớ, nó sẽ bắt đầu thực hiện chương trình cụ thể đó; nếu không, nó sẽ tải chương trình vào bộ nhớ từ bộ nhớ thứ cấp và sau đó bắt đầu thực thi.

    Vòng đời giao dịch

    Vòng đời giao dịch có các bước sau:

    Bước 1

    Nhà điều hành thiết bị đầu cuối bắt đầu giao dịch bằng cách nhập id giao dịch từ 1 đến 4 ký tự và nhấn phím ENTER.

    Bước 2

    TCP định kỳ kiểm tra tất cả các thiết bị đầu cuối để tìm đầu vào. Khi một tin nhắn được nhận, nó sẽ làm như sau:

    • Hướng dẫn SCP tạo TIOA.

    • Đặt tin nhắn trong TIOA.

    • Chuyển quyền kiểm soát cho KCP.

    Bước 3

    KCP nắm quyền kiểm soát từ TCP và thực hiện những việc sau:

    • Xác thực id giao dịch và bảo mật.

    • Hướng dẫn SCP tạo khu vực kiểm soát nhiệm vụ.

    • Chỉ định mức độ ưu tiên cho nhiệm vụ dựa trên Mức độ ưu tiên của thiết bị đầu cuối (Đặt trong TCT), Mức độ ưu tiên của nhà khai thác (Đặt trong SNT) và Mức độ ưu tiên giao dịch (Đặt trong PCT).

    • Thêm nhiệm vụ vào hàng đợi các chương trình đang chờ.

    • Gửi các chương trình chờ theo thứ tự ưu tiên.

    • Chuyển quyền kiểm soát cho PCP.

    Bước 4

    PCP nắm quyền kiểm soát từ KCP và thực hiện những việc sau:

    • Định vị chương trình và tải nó, nếu cần.

    • Chuyển quyền điều khiển sang chương trình Ứng dụng.

    Bước 5

    Chương trình Ứng dụng có quyền kiểm soát từ PCP và thực hiện những việc sau:

    • Yêu cầu TCP đặt thông báo vào vùng LƯU TRỮ LÀM VIỆC của chương trình.

    • Yêu cầu FCP truy xuất bản ghi từ các tệp.

    Bước 6

    FCP nắm quyền kiểm soát từ chương trình Ứng dụng và thực hiện những việc sau:

    • Yêu cầu một khu vực làm việc Tệp từ SCP.

    • Thông báo cho KCP rằng tác vụ này có thể đợi cho đến khi I / O hoàn tất.

    Bước 7

    KCP thực hiện những điều sau:

    • Gửi nhiệm vụ tiếp theo trong hàng đợi.

    • Gửi lại tác vụ cũ khi I / O hoàn tất.

    • Chuyển giao quyền kiểm soát cho FCP.

    Bước 8

    FCP trả lại quyền kiểm soát cho chương trình Ứng dụng.

    Bước 9

    Chương trình Ứng dụng thực hiện những việc sau:

    • Xử lý dữ liệu tệp.

    • Yêu cầu TCP gửi một thông báo I / O.

    • Trả lại quyền kiểm soát cho PCP.

    Bước 10

    PCP trả lại quyền kiểm soát cho KCP yêu cầu nó kết thúc nhiệm vụ.

    Bước 11

    KCP hướng dẫn SCP giải phóng tất cả bộ nhớ được phân bổ cho nhiệm vụ (ngoại trừ TIOA).

    Bước 12

    TCP thực hiện những việc sau:

    • Gửi đầu ra đến thiết bị đầu cuối.

    • Yêu cầu SCP giải phóng TIOA.

    Các giao dịch CICS được sử dụng để thực hiện nhiều hoạt động trong khu vực CICS. Chúng ta sẽ thảo luận chi tiết về các giao dịch CICS quan trọng do IBM cung cấp.

    CESN

    CESN được gọi là CICS Execute Sign On.

    • CESN được sử dụng để đăng nhập vào khu vực CICS.

    • Chúng tôi cần cung cấp User-Id và Password do quản trị viên CICS cung cấp để đăng nhập vào CICS. Ảnh chụp màn hình sau đây cho thấy màn hình đăng nhập trông như thế nào:

    CEDA

    CEDA được gọi là Định nghĩa và Quản trị Thực thi CICS. Nó được sử dụng bởi Quản trị viên Hệ thống CICS để xác định các mục nhập bảng CICS và các hoạt động quản trị khác.

    CEMT

    CEMT được gọi là CICS Execute Master Terminal. Nó được sử dụng để hỏi và cập nhật trạng thái của môi trường CICS cũng như cho các hoạt động hệ thống khác.

    • Sử dụng lệnh CEMT, chúng ta có thể quản lý các giao dịch, tác vụ, tệp, chương trình, v.v.

    • Để có được tất cả các tùy chọn có thể, hãy nhập CEMT và nhấn ENTER. Nó sẽ hiển thị tất cả các tùy chọn.

    • CEMT về cơ bản được sử dụng để tải một chương trình mới vào CICS hoặc để tải một bản sao mới của chương trình vào CICS sau khi chương trình hoặc tập bản đồ được thay đổi.

    Thí dụ

    Người ta có thể ghi đè trạng thái của tệp được hiển thị để thay đổi nó. Ví dụ sau đây cho thấy cách đóng một tệp:

    CEMT 
      
    ** Press ENTER & Following Screen is displayed **  
    
    STATUS: ENTER ONE OF THE FOLLOWING 
    Inquire 
    Perform 
    Set 
     
    ** Command to close a file **
      
    CEMT SET FILE (file-name) 
    CEMT I FILE (file-name)

    CECI

    CECI được biết đến như là CICS Execute Command Interpreter. Nhiều lệnh CICS có thể được thực hiện bằng CECI.

    • CECI được sử dụng để kiểm tra cú pháp của lệnh. Nó thực thi lệnh, chỉ khi cú pháp đúng.

    • Nhập tùy chọn CECI trên màn hình CICS trống sau khi đăng nhập. Nó cung cấp cho bạn danh sách các tùy chọn có sẵn.

    Thí dụ

    Ví dụ sau cho thấy cách gửi dữ liệu đầu ra được ánh xạ tới thiết bị đầu cuối. Chúng ta sẽ thảo luận về MAPS trong các học phần sắp tới.

    CECI SEND MAP (map-name) MAPSET (mapset-name) ERASE

    CEDF

    CEDF được gọi là Cơ sở gỡ lỗi thực thi CICS. Nó được sử dụng để gỡ lỗi chương trình từng bước, giúp tìm ra lỗi.

    Nhập CEDF và nhấn enter trong vùng CICS. Thiết bị đầu cuối đang ở chế độ EDF thông báo sẽ được hiển thị. Bây giờ gõ id giao dịch và nhấn phím enter. Sau khi khởi tạo, với mỗi phím enter, một dòng được thực thi. Trước khi thực hiện bất kỳ lệnh CICS nào, nó sẽ hiển thị màn hình trong đó chúng ta có thể sửa đổi các giá trị trước khi tiếp tục.

    CMAC

    CMAC được gọi là Thông điệp CICS dành cho Mã Abend. Nó được sử dụng để tìm lời giải thích và lý do cho CICS Abend Codes.

    Thí dụ

    Ví dụ sau cho thấy cách kiểm tra chi tiết cho mã Abend:

    CMAC abend-code

    CESF

    CESF được gọi là CICS Execute Sign Off. Nó được sử dụng để Đăng xuất khỏi khu vực CICS.

    Thí dụ

    Ví dụ sau cho thấy cách đăng xuất khỏi khu vực CICS -

    CESF LOGOFF

    CEBR

    CEBR được biết đến như là CICS Execute Temporary Storage Browse. Nó được sử dụng để hiển thị nội dung của hàng đợi lưu trữ tạm thời hoặc TSQ.

    CEBR được sử dụng trong khi gỡ lỗi để kiểm tra xem các mục của hàng đợi có đang được ghi và truy xuất đúng cách hay không. Chúng tôi sẽ thảo luận thêm về TSQ trong các học phần sắp tới.

    Thí dụ

    Ví dụ sau cho thấy cách gọi lệnh CEBR:

    CEBR queue-id

    Các khái niệm CICS

    Mỗi lệnh có thể đạt được bằng cách thực hiện một loạt các macro CICS. Chúng ta sẽ thảo luận về một số tính năng cơ bản sẽ giúp chúng ta hiểu các khái niệm tốt hơn -

    Đa nhiệm

    Tính năng này của hệ điều hành cho phép thực hiện đồng thời nhiều tác vụ. Tác vụ có thể chia sẻ cùng một chương trình hoặc sử dụng các chương trình khác nhau. CICS lập lịch trình cho nhiệm vụ trong khu vực của riêng mình.

    Đa luồng

    Tính năng này của hệ điều hành cho phép nhiều tác vụ được thực hiện đồng thời trong cùng một chương trình. Để có thể thực hiện đa luồng, một chương trình ứng dụng phải làre-entrant program theo hệ điều hành hoặc quasi-reentrant theo CICS.

    Re-entrancy

    Chương trình đăng nhập lại là chương trình không tự sửa đổi và có thể tự nhập lại và tiếp tục xử lý sau khi hệ điều hành gián đoạn.

    Quasi-reentrancy

    Một chương trình gần như tái đăng ký là một chương trình tái đăng ký trong môi trường CICS. CICS đảm bảo tính hấp dẫn lại bằng cách có được một vùng lưu trữ duy nhất cho mỗi tác vụ. Giữa các lệnh CICS, CICS có độc quyền sử dụng tài nguyên CPU và nó có thể thực hiện các lệnh CICS khác của các tác vụ khác.

    Có những lúc nhiều người dùng đồng thời sử dụng cùng một chương trình; đây là những gì chúng ta gọimulti-threading. Ví dụ, giả sử 50 người dùng đang sử dụng một chương trình A. Ở đây CICS sẽ cung cấp 50 bộ lưu trữ làm việc cho chương trình đó nhưng một Bộ phận Thủ tục. Và kỹ thuật này được gọi làquasi-reentrancy.

    Các chương trình CICS được viết bằng ngôn ngữ COBOL trong Mainframe. Chúng ta sẽ thảo luận về cách viết một chương trình COBOL-CICS đơn giản, biên dịch nó và sau đó thực thi nó.

    Chương trình CICS

    Chúng tôi sẽ viết một chương trình COBOL-CICS đơn giản hiển thị một số thông báo trên màn hình xuất CICS. Chương trình này là để chứng minh các bước liên quan đến việc thực hiện một chương trình COBOL-CICS. Sau đây là các bước để viết mã một chương trình đơn giản -

    Bước 1

    Đăng nhập vào Máy tính lớn và mở Phiên TSO.

    Bước 2

    Tạo một PDS mới mà chúng tôi sẽ mã hóa chương trình của mình.

    Bước 3

    Tạo một thành viên mới bên trong PDS và viết mã chương trình sau:

    IDENTIFICATION DIVISION.
    PROGRAM-ID. HELLO.
    DATA DIVISION.
    FILE SECTION.
    WORKING-STORAGE SECTION.
    01 WS-MESSAGE PIC X(40).
    01 WS-LENGTH  PIC S9(4) COMP.
    PROCEDURE DIVISION.
    A000-MAIN-PARA.
       MOVE 'Hello World' TO WS-MESSAGE
       MOVE '+12' TO WS-LENGTH
       EXEC CICS SEND TEXT 
          FROM (WS-MESSAGE)
          LENGHT(WS-LENGTH)  
       END-EXEC
       EXEC CICS RETURN
       END-EXEC.

    Bước 4

    Sau khi mã hóa chương trình, chúng ta cần phải biên dịch nó. Chúng ta có thể biên dịch chương trình bằng cách sử dụng JCL sau:

    //SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C  
    //CICSCOB  EXEC CICSCOB,                                                
    //COPYLIB = ABC.XYZ.COPYLIB,                            
    //LOADLIB = ABC.XYZ.LOADLIB 
    //LIB        JCLLIB ORDER = CICSXXX.CICS.XXXPROC                
    //CPLSTP     EXEC DFHEITVL                                
    //TRN.SYSIN  DD DSN = ABC.XYZ.PDS(HELLO),DISP = SHR     
    //LKED.SYSIN DD *                                        
       NAME HELLO(R)                                          
    //

    Bước 5

    Mở một phiên CICS.

    Bước 6

    Bây giờ chúng ta sẽ cài đặt chương trình bằng lệnh sau:

    CEMT SET PROG(HELLO) NEW.

    Bước 7

    Thực thi chương trình bằng id giao dịch được liên kết. Id giao dịch được cung cấp bởi Quản trị viên. Nó sẽ hiển thị kết quả sau:

    Biên soạn chương trình

    Lưu đồ sau đây cho thấy các bước được sử dụng để biên dịch một chương trình COBOL-CICS -

    Người phiên dịch

    Chức năng của trình dịch là kiểm tra lỗi cú pháp trong các lệnh CICS. Nó chuyển chúng thành các câu lệnh COBOL tương đương.

    Trình biên dịch

    Chức năng của trình biên dịch là mở rộng các sách sao chép COBOL. Nó biên dịch mã sau khi kiểm tra mã nguồn để tìm lỗi cú pháp.

    Trình chỉnh sửa liên kết

    Chức năng của Trình soạn thảo liên kết là liên kết các mô-đun đối tượng khác nhau để tạo một mô-đun tải duy nhất.

    BMS được gọi là Hỗ trợ lập bản đồ cơ bản. Một ứng dụng bao gồm các màn hình được định dạng hoạt động như một cầu nối giữa thiết bị đầu cuối và các chương trình CICS. Để giao tiếp diễn ra giữa thiết bị đầu cuối và các chương trình CICS, chúng tôi sử dụng các dịch vụ đầu vào / đầu ra của thiết bị đầu cuối CICS. Chúng tôi sử dụng BMS để tạo ra các thiết kế màn hình với các vị trí và thuộc tính thích hợp. Sau đây là các chức năng của BMS:

    • BMS hoạt động như một giao diện giữa thiết bị đầu cuối và các chương trình CICS.

    • Thiết kế và định dạng của màn hình tách biệt với logic của ứng dụng.

    • BMS làm cho phần cứng ứng dụng độc lập.

    Màn hình được định dạng

    Màn hình hiển thị bên dưới là Màn hình Menu và có thể được thiết kế bằng BMS. Các điểm chính của nó như sau:

    • Màn hình có thể có Tiêu đề, ngày tháng và bất kỳ thông tin nào khác sẽ được hiển thị.

    • Tùy chọn 1, 2 và 3 là các trường Không tên là tiêu đề của màn hình.

    • Trong trường Lựa chọn, chúng ta cần cung cấp đầu vào. Đầu vào này sau đó được gửi đến chương trình CICS để xử lý thêm.

    • Ở cuối màn hình, các phím Hành động được hiển thị.

    • Tất cả các trường và bản thân màn hình được xác định bằng macro BMS. Khi toàn bộ bản đồ được xác định, chúng ta có thể sử dụng JCL để tập hợp nó.

    Điều khoản cơ bản của BMS

    Sau đây là các thuật ngữ cơ bản mà chúng tôi sẽ sử dụng trong các học phần sắp tới -

    Bản đồ

    Bản đồ là một định dạng màn hình duy nhất có thể được thiết kế bằng cách sử dụng macro BMS. Nó có thể có tên chứa 1 đến 7 ký tự.

    Mapset

    Mapset là một tập hợp các bản đồ được liên kết với nhau để tạo thành một mô-đun tải. Nó phải có một mục PPT. Nó có thể có tên từ 1 đến 7 ký tự.

    Macro BMS

    Bản đồ BMS là một chương trình được viết bằng ngôn ngữ Assembly để quản lý các màn hình. Ba macro được sử dụng để xác định màn hình là DFHMSD, DFHMDI và DFHMDF.

    DFHMSD

    Macro DFHMSD tạo ra định nghĩa Mapset. Đây là mã định danh macro cho thấy rằng chúng tôi đang bắt đầu một tập bản đồ. Tên tập bản đồ là tên mô-đun tải và phải có mục nhập trong bảng PPT. Bảng sau đây cho thấy danh sách các tham số có thể được sử dụng trong DFHMSD:

    Sr.No Mô tả về Thông Số
    1

    TYPE

    TYPE được sử dụng để xác định loại bản đồ. Nếu TYPE =
    MAP - Bản đồ vật lý được tạo
    DSECT - Bản đồ tượng trưng được tạo
    && SYSPARM - Vật lý & Biểu tượng, cả hai đều được tạo
    CUỐI CÙNG - Để biểu thị sự kết thúc của mã hóa tập bản đồ.

    2

    MODE

    MODE được sử dụng để chỉ ra các hoạt động đầu vào / đầu ra. IF MODE =
    IN - Chỉ cho bản đồ đầu vào
    OUT - Chỉ cho bản đồ đầu ra
    INOUT Đối với cả bản đồ đầu vào và đầu ra

    3

    LANG

    LANG = ASM / COBOL / PL1
    Nó quyết định ngôn ngữ của cấu trúc DSECT để sao chép vào chương trình ứng dụng.

    4

    STORAGE

    If STORAGE =
    AUTO - Để có được một khu vực bản đồ tượng trưng riêng biệt cho mỗi bộ bản đồ
    BASE - Để có cùng một cơ sở lưu trữ cho các bản đồ tượng trưng của nhiều hơn một bộ bản đồ

    5

    CTRL

    CRTL được sử dụng để xác định các yêu cầu điều khiển thiết bị. Nếu CTRL =
    FREEKB - Để mở khóa bàn phím
    FRSET - Để đặt lại MDT về trạng thái 0
    ALARM - Để đặt báo thức tại thời điểm hiển thị trên màn hình
    IN - Để cho biết bộ bản đồ sẽ được gửi đến máy in.

    6

    TERM

    TERM = loại đảm bảo tính độc lập của thiết bị, được yêu cầu nếu đang sử dụng thiết bị đầu cuối khác ngoài 3270.

    7

    TIOAPFX

    TIOAPFX = YES / NO
    YES - Để dành không gian tiền tố (12 byte) cho các lệnh BMS để truy cập TIOA đúng cách. Bắt buộc đối với cấp lệnh CICS.

    Thí dụ

    Ví dụ sau đây cho thấy cách viết mã định nghĩa tập bản đồ:

    MPST01  DFHMSD TYPE = &SYSPARM, X
       CTRL = (FREEKB,FRSET), X
       LANG = COBOL, X 
       STORAGE = AUTO, X
       TIOAPFX = YES, X
       MODE = INOUT, X
       TERM = 3270
       DFHMSD TYPE = FINAL 
    END

    DFHMDI

    Macro DFHMDI tạo ra các định nghĩa bản đồ. Nó cho thấy rằng chúng tôi đang bắt đầu một bản đồ mới. Mapname được theo sau bởi macro DFHMDI. Tên bản đồ được sử dụng để gửi hoặc nhận bản đồ. Bảng sau đây cho thấy các tham số mà chúng tôi sử dụng bên trong macro DFHMDI:

    Sr.No Mô tả về Thông Số
    1

    SIZE

    SIZE = (Dòng, Cột)
    Tham số này cho biết kích thước của bản đồ. BMS cho phép chúng ta xây dựng một màn hình bằng cách sử dụng một số bản đồ và thông số này trở nên quan trọng khi chúng ta đang sử dụng nhiều bản đồ trong một tập bản đồ.

    2

    LINE

    Nó chỉ ra số dòng bắt đầu của bản đồ.

    3

    COLUMN

    Nó chỉ ra số cột bắt đầu của bản đồ.

    4

    JUSTIFY

    Nó được sử dụng để chỉ định toàn bộ bản đồ hoặc các trường bản đồ được căn trái hoặc phải.

    5

    CTRL

    CRTL được sử dụng để xác định các yêu cầu điều khiển thiết bị. Nếu CTRL =
    FREEKB - Để mở khóa bàn phím
    FRSET - Để đặt lại MDT về trạng thái 0
    ALARM - Để đặt báo thức tại thời gian hiển thị trên màn hình
    PRINT - Để cho biết bản đồ sẽ được gửi đến máy in

    6

    TIOAPFX

    TIOAPFX = CÓ / KHÔNG

    CÓ - Để dành không gian tiền tố (12 byte) cho các lệnh BMS để truy cập TIOA đúng cách. Bắt buộc đối với cấp lệnh CICS.

    Thí dụ

    Ví dụ sau đây cho thấy cách viết mã định nghĩa bản đồ:

    MAPSTD DFHMDI SIZE = (20,80), X
       LINE = 01, X
       COLUMN = 01, X
       CTRL = (FREEKB,FRSET)

    DFHMDF

    Macro DFHMDF được sử dụng để xác định tên trường. Tên trường được đề cập dựa trên macro DFHMDF được mã hóa. Tên trường này được sử dụng bên trong chương trình. Chúng tôi không viết tên trường chống lại trường hằng số mà chúng tôi không muốn sử dụng bên trong chương trình. Bảng sau đây hiển thị danh sách các tham số có thể được sử dụng bên trong macro DFHMDF:

    Sr.No Mô tả về Thông Số
    1

    POS

    Đây là vị trí trên màn hình mà trường sẽ xuất hiện. Một trường bắt đầu bằng byte thuộc tính của nó, vì vậy nếu bạn đặt mã POS = (1,1), byte thuộc tính cho trường đó nằm trên dòng 1 trong cột 1 và dữ liệu thực tế bắt đầu ở cột 2.

    2

    LENGTH

    Đây là độ dài của trường, không tính byte thuộc tính.

    3

    INITIAL

    Đây là dữ liệu ký tự cho một trường đầu ra. Chúng tôi sử dụng điều này để chỉ định nhãn và tiêu đề cho màn hình và giữ chúng độc lập với chương trình. Ví dụ: đối với trường đầu tiên trong màn hình menu, chúng tôi sẽ viết mã: INITIAL = 'MENU'.

    4

    JUSTIFY

    Nó được sử dụng để chỉ định toàn bộ bản đồ hoặc các trường bản đồ được căn trái hoặc phải.

    5

    ATTRB

    ATTRB = (ASKIP / PROT / UNPROT, NUM, BRT / NORM / DRK, IC, FSET) Nó mô tả các thuộc tính của trường.

    HỎI - Autoskip. Không thể nhập dữ liệu vào trường này. Con trỏ bỏ qua trường tiếp theo.

    PROT - Trường được bảo vệ. Không thể nhập dữ liệu vào trường này. Nếu dữ liệu được nhập, nó sẽ gây ra trạng thái ngăn chặn đầu vào.

    UNPROT - Trường không được bảo vệ. Dữ liệu có thể được nhập và điều này được sử dụng cho tất cả các trường đầu vào.

    NUM - Trường số. Chỉ cho phép các số (0 đến 9) và các ký tự đặc biệt ('.' Và '-').

    BRT - Hiển thị sáng của một trường (vùng sáng).

    NORM - Hiển thị bình thường.

    DRK - Màn hình tối.

    IC - Chèn con trỏ. Con trỏ sẽ được định vị trong trường này. Trong trường hợp, IC được chỉ định nhiều hơn một lần, con trỏ sẽ được đặt trong trường cuối cùng.

    FSET - Tập hợp trường. MDT được thiết lập để dữ liệu trường được gửi từ thiết bị đầu cuối đến máy tính chủ bất kể trường có thực sự được sửa đổi bởi người dùng hay không.

    6

    PICIN

    PICIN áp dụng cho trường dữ liệu được sử dụng làm đầu vào như PICIN = 9 (8).

    7

    PICOUT

    PICIN áp dụng cho trường dữ liệu được sử dụng làm đầu ra như PICOUT = Z (8).

    Thí dụ

    Ví dụ sau đây cho thấy cách viết mã định nghĩa trường:

    DFHMDF POS = (01,01), X
       LENGTH = 7, X
       INITIAL = ‘SCREEN1’, X
          ATTRB = (PROT,NORM)
          STDID DFHMDF POS = (01,70), X
          LENGTH = 08, X
          ATTRB = (PROT,NORM)

    BMS nhận dữ liệu do người dùng nhập vào và sau đó định dạng thành vùng bản đồ tượng trưng. Chương trình ứng dụng chỉ có quyền truy cập vào dữ liệu có trong bản đồ tượng trưng. Chương trình ứng dụng xử lý dữ liệu và đầu ra được gửi đến bản đồ tượng trưng. BMS sẽ kết hợp đầu ra của dữ liệu biểu tượng với bản đồ vật lý.

    Bản đồ vật lý

    Bản đồ Vật lý là một mô-đun tải trong thư viện tải chứa thông tin về cách hiển thị bản đồ.

    • Nó chứa thông tin chi tiết về các thuộc tính của tất cả các trường trong bản đồ và vị trí của chúng.

    • Nó chứa định dạng hiển thị của bản đồ cho một thiết bị đầu cuối nhất định.

    • Nó được mã hóa bằng macro BMS. Nó được tập hợp riêng biệt và liên kết được chỉnh sửa vào thư viện CICS.

    Bản đồ tượng trưng

    Bản đồ tượng trưng là một cuốn sách Sao chép trong thư viện. Sách Copy được chương trình ứng dụng CICS sử dụng để gửi và nhận dữ liệu từ thiết bị đầu cuối.

    • Nó chứa tất cả dữ liệu biến được sao chép vào phần WORKINGSTORAGE của chương trình.

    • Nó có tất cả các trường được đặt tên. Người lập trình ứng dụng sử dụng các trường này để đọc và ghi dữ liệu vào bản đồ.

    Trường Skipper và Stopper

    Đối với trường có tên không được bảo vệ, trong bản đồ, nếu chúng tôi đã chỉ định độ dài là 10, điều này có nghĩa là trường tên có thể nhận các giá trị có độ dài không được vượt quá 10. Nhưng khi bạn hiển thị bản đồ này bằng CICS và bắt đầu nhập giá trị cho trường này trên màn hình, chúng ta có thể nhập hơn 10 ký tự, tức là, cho đến cuối màn hình và chúng ta có thể nhập ngay cả ở dòng tiếp theo. Để ngăn chặn điều này, chúng tôi sử dụng trường Skipper hoặc trường chặn. Trường Skipper nói chung sẽ là trường Không tên có độ dài 1, được chỉ định sau trường được đặt tên.

    Trường Skipper

    Nếu chúng ta đặt trường bỏ qua sau trường không được bảo vệ đã đặt tên, thì trong khi nhập giá trị, khi đạt đến độ dài được chỉ định, con trỏ sẽ tự động chuyển sang trường không được bảo vệ tiếp theo. Ví dụ sau cho thấy cách thêm trường bỏ qua:

    NUMBER  DFHMDF POS = (01,01), X
       LENGTH = 5, X
       ATTRB = (UNPROT,IC)
          DFHMDF POS = (01,07), X
          LENGTH = 1, X
          ATTRB = (ASKIP)

    Trường nút

    Nếu chúng ta đặt trường nút chặn sau trường không được bảo vệ đã đặt tên, thì trong khi nhập giá trị, khi đạt đến độ dài được chỉ định, con trỏ sẽ dừng vị trí của nó. Ví dụ sau đây cho thấy cách thêm trường nút:

    NUMBER  DFHMDF POS = (01,01), X
       LENGTH = 5, X
    	ATTRB = (UNPROT,IC)
    	   DFHMDF POS = (01,07), X
          LENGTH = 1, X
          ATTRB = (PROT)

    Thuộc tính Byte

    Byte thuộc tính của bất kỳ trường nào lưu trữ thông tin về các thuộc tính vật lý của trường. Sơ đồ sau và bảng giải thích ý nghĩa của từng bit.

    Vị trí bit Sự miêu tả Cài đặt bit
    0 & 1   Được xác định bởi nội dung của bit 2 đến bit 7
    2 & 3 Bảo vệ & Dịch chuyển 00 - Chữ và số không được bảo vệ
    01 - Chữ số
    10 không được bảo vệ - Điểm dừng được bảo vệ
    11 - Bỏ qua được bảo vệ
    4 & 5 Cường độ 00 - Bình thường
    01 - Bình thường
    10 - Sáng
    11 - Không hiển thị (Tối)
    6   Phải luôn luôn bằng 0
    7 Thẻ dữ liệu được sửa đổi 0 - Trường chưa được sửa đổi
    1 - Trường đã được sửa đổi

    Thẻ dữ liệu được sửa đổi

    Thẻ dữ liệu sửa đổi (MDT) là bit cuối cùng trong byte thuộc tính.

    • MDT là một cờ chứa một bit duy nhất. Nó chỉ định liệu giá trị có được chuyển vào hệ thống hay không.

    • Giá trị mặc định của nó là 1, khi giá trị trường được thay đổi.

    • Nếu MDT bằng 0, thì không thể chuyển dữ liệu; và nếu MDT là 1, thì dữ liệu có thể được chuyển.

    Gửi bản đồ

    Lệnh gửi bản đồ ghi đầu ra được định dạng vào thiết bị đầu cuối. Nó được sử dụng để gửi bản đồ đến thiết bị đầu cuối từ chương trình ứng dụng. Đoạn mã sau đây cho thấy cách gửi bản đồ đến thiết bị đầu cuối:

    EXEC CICS SEND 
       MAP('map-name')
       MAPSET('mapset-name')
       [FROM(data-area)]
       [LENGTH(data_value)]
       [DATAONLY]
       [MAPONLY]
       [CURSOR]
       [ERASE/ERASEAUP]
       [FREEKB] 
       [FRSET]
    END-EXEC

    Bảng sau liệt kê các tham số được sử dụng trong lệnh gửi bản đồ cùng với ý nghĩa của chúng.

    Sr.No Mô tả về Thông Số
    1

    Map-name

    Đó là tên của bản đồ mà chúng tôi muốn gửi. Nó là bắt buộc.

    2

    Mapset-name

    Nó là tên của tập bản đồ có chứa tên bản đồ. Tên tập bản đồ là cần thiết trừ khi nó giống với tên bản đồ.

    3

    FROM

    Nó được sử dụng nếu chúng ta quyết định sử dụng một tên DSECT khác, chúng ta phải sử dụng tùy chọn FROM (dsect-name) cùng với lệnh SEND MAP.

    4

    MAPONLY

    Nó có nghĩa là không có dữ liệu nào từ chương trình của bạn được hợp nhất vào bản đồ và chỉ thông tin trong bản đồ được truyền đi.

    5

    DATAONLY

    Nó đối lập hợp lý với MAPONLY. Chúng tôi sử dụng nó để sửa đổi dữ liệu biến trong một màn hình đã được tạo. Chỉ dữ liệu từ chương trình của bạn được gửi đến màn hình. Các hằng số trong bản đồ không được gửi.

    6

    ERASE

    Nó khiến toàn bộ màn hình bị xóa trước khi những gì chúng ta đang gửi được hiển thị.

    7

    ERASEUP

    Nó chỉ khiến các trường không được bảo vệ bị xóa.

    số 8

    FRSET

    Flag Reset sẽ tắt thẻ dữ liệu đã sửa đổi trong byte thuộc tính cho tất cả các trường trên màn hình trước khi những gì bạn đang gửi được đặt ở đó.

    9

    CURSOR

    Nó có thể được sử dụng để định vị con trỏ trên màn hình đầu cuối. Con trỏ có thể được đặt bằng cách di chuyển -1 đến phần L của trường và sau đó gửi bản đồ.

    10

    ALARM

    Nó làm cho báo động âm thanh được phát ra.

    11

    FREEKB.

    Bàn phím được mở khóa nếu chúng tôi chỉ định FREEKB trong bản đồ hoặc lệnh GỬI.

    12

    PRINT

    Nó cho phép in đầu ra của lệnh SEND trên máy in.

    13

    FORMFEED

    Thao tác này khiến máy in khôi phục giấy lên đầu trang tiếp theo trước khi in đầu ra.

    Nhận bản đồ

    Khi chúng ta muốn nhận đầu vào từ một thiết bị đầu cuối, chúng ta sử dụng lệnh RECEIVE MAP. Các tham số MAP và MAPSET có ý nghĩa chính xác như đối với lệnh SEND MAP. Đoạn mã sau đây cho thấy cách nhận bản đồ -

    EXEC CICS RECEIVE 
       MAP('map-name')
       MAPSET('mapset-name')
       [INTO(data-area)]
       [FROM(data-area)]
       [LENGTH(data_value)]
    END-EXEC

    Thực thi Mapset

    Các bước sau là cần thiết để phát triển và thực thi một bộ bản đồ:

    • Step 1 - Mở phiên TSO.

    • Step 2 - Tạo một PDS mới.

    • Step 3 - Mã một bộ bản đồ trong một thành viên mới theo yêu cầu.

    • Step 4 - Lắp ráp bộ bản đồ bằng JCL do quản trị viên CICS cung cấp.

    • Step 5 - Mở một phiên CICS.

    • Step 6 - Cài đặt chương trình bằng lệnh -

      CEMT SET PROG (tên tập bản đồ) MỚI

    • Step 7 - Gõ lệnh sau để gửi Bản đồ đến thiết bị đầu cuối -

      CECI GỬI BẢN ĐỒ (tên-bản đồ) MAPSET (tên-tập bản đồ) XÓA FREEKB

    Bất kỳ chương trình ứng dụng nào cũng yêu cầu một giao diện để tương tác với CICS. EIB (Khối giao diện thực thi) hoạt động như một giao diện cho phép các chương trình ứng dụng giao tiếp với CICS. EIB chứa thông tin cần thiết trong quá trình thực thi chương trình.

    Động từ COBOL bị hạn chế

    Trong khi mã hóa một chương trình CICS, chúng ta không thể sử dụng các lệnh trả lại quyền điều khiển trực tiếp cho MVS. Nếu chúng ta mã hóa các động từ COBOL này, nó sẽ không gây ra bất kỳ lỗi biên dịch nào, nhưng chúng ta có thể nhận được kết quả không thể đoán trước. Sau đây là những động từ COBOL không nên sử dụng trong chương trình CICS:

    • Các câu lệnh I / O của tệp như Mở, Đọc, Ghi, Viết lại, Đóng, Xóa và Bắt đầu. Tất cả I / O tệp trong CICS được xử lý bởi mô-đun kiểm soát tệp và chúng có tập hợp các câu lệnh riêng như ĐỌC, VIẾT, VIẾT và XÓA mà chúng ta sẽ thảo luận trong các mô-đun sắp tới.

    • Bộ phận Hồ sơ và Bộ phận Môi trường không bắt buộc.

    • Không thể sử dụng các câu lệnh COBOL gọi các chức năng của hệ điều hành như Chấp nhận, Ngày / Giờ.

    • Không sử dụng DISPLAY, MERGE, STOP RUN và GO BACK.

    Thực thi khối giao diện

    Khối giao diện thực thi (EIB) là khối điều khiển được tải tự động bởi CICS cho mọi chương trình.

    • EIB là duy nhất cho một nhiệm vụ và nó tồn tại trong suốt thời gian của nhiệm vụ. Nó chứa một tập hợp các thông tin liên quan đến hệ thống tương ứng với nhiệm vụ.

    • Nó chứa thông tin về số nhận dạng giao dịch, thời gian, ngày tháng, v.v., được CICS sử dụng trong quá trình thực hiện một chương trình ứng dụng.

    • Mọi chương trình thực thi như một phần của nhiệm vụ đều có quyền truy cập vào cùng một EIB.

    • Dữ liệu trong EIB lúc chạy có thể được xem bằng cách thực thi chương trình ở chế độ CEDF.

    Trường EIB

    Bảng sau cung cấp danh sách các trường có trong EIB:

    Trường EIB Mệnh đề PIC Sự miêu tả
    EIBAID X (1) Phím trợ giúp được nhấn
    EIBCALEN S9 (4) COMP Nó chứa độ dài DFHCOMMAREA
    EIBDATE S9 (7) COMP-3 Nó chứa Ngày hệ thống hiện tại
    EIBRCODE X (6) Nó chứa mã trở lại của giao dịch cuối cùng
    EIBTASKN S9 (7) COMP-3 Nó chứa số công việc
    EIBTIME S9 (7) COMP-3 Nó chứa Giờ hệ thống hiện tại
    EIBTRMID X (4) Mã định danh đầu cuối
    EIBTRNID X (4) Mã định danh giao dịch

    Phân loại chương trình CICS

    Các Chương trình CICS được phân loại theo ba loại sau đây mà chúng ta sẽ thảo luận từng loại một -

    • Các chương trình không hội thoại
    • Chương trình trò chuyện
    • Chương trình trò chuyện giả - Chúng ta sẽ thảo luận trong học phần tiếp theo

    Chương trình không hội thoại

    Trong khi thực hiện các chương trình không hội thoại, không cần sự can thiệp của con người. Tất cả các đầu vào cần thiết được cung cấp khi chương trình được bắt đầu.

    • Chúng tương tự như các chương trình hàng loạt chạy ở chế độ hàng loạt. Vì vậy, trong CICS, chúng hiếm khi được phát triển.

    • Có thể nói chúng được sử dụng chỉ để hiển thị một chuỗi màn hình trong những khoảng thời gian đều đặn.

    Thí dụ

    Ví dụ sau cho thấy một chương trình không hội thoại sẽ chỉ hiển thị "HELLO WORLD" trên thiết bị đầu cuối CICS dưới dạng đầu ra -

    IDENTIFICATION DIVISION.                                
    PROGRAM-ID. HELLO.                                      
    DATA DIVISION.                                          
    WORKING-STORAGE SECTION.                                
    01 WS-MESSAGE          PIC X(30).                       
    PROCEDURE DIVISION.                                     
    ********************************************************
    * SENDING DATA TO SCREEN                               * 
    ********************************************************
       MOVE 'HELLO WORLD' TO WS-MESSAGE                
       EXEC CICS SEND TEXT                             
          FROM (WS-MESSAGE)                          
       END-EXEC                                        
    ********************************************************
    * TASK TERMINATES WITHOUT ANY INTERACTION FROM THE USER* 
    ********************************************************
       EXEC CICS RETURN                                
    END-EXEC.

    Chương trình trò chuyện

    Gửi tin nhắn đến thiết bị đầu cuối và nhận phản hồi từ người dùng được gọi là conversation. Một ứng dụng trực tuyến đạt được cuộc trò chuyện giữa người dùng và chương trình ứng dụng bằng một cặp lệnh GỬI và NHẬN. Các điểm chính của chương trình Trò chuyện như sau:

    • Hệ thống gửi thông báo ra màn hình và chờ phản hồi của người dùng.

    • Thời gian người dùng trả lời được gọi là Think Time. Thời gian này cao đáng kể, đây là một nhược điểm lớn của các chương trình Hội thoại.

    • Người dùng cung cấp đầu vào cần thiết và nhấn phím AID.

    • Ứng dụng xử lý đầu vào của người dùng và gửi đầu ra.

    • Chương trình được tải vào bộ nhớ chính ngay từ đầu và được giữ lại cho đến khi tác vụ kết thúc.

    Thí dụ

    Ví dụ sau đây cho thấy một chương trình chuyển đổi lấy đầu vào từ người dùng và sau đó chỉ cần hiển thị cùng một đầu vào trên thiết bị đầu cuối CICS làm đầu ra -

    IDENTIFICATION DIVISION.                               
    PROGRAM-ID. HELLO.                                     
    DATA DIVISION.                                         
    WORKING-STORAGE SECTION.                               
    01 WS-MESSAGE          PIC X(30) VALUE SPACES.         
    PROCEDURE DIVISION.                                    
       MOVE 'ENTER MESSAGE' TO WS-MESSAGE           
    ********************************************************
    * SENDING DATA FROM PROGRAM TO SCREEN                  * 
    ********************************************************
       EXEC CICS SEND TEXT                            
          FROM (WS-MESSAGE)                         
       END-EXEC                                       
    ********************************************************
    * GETTING INPUT FROM USER                              * 
    ********************************************************
       EXEC CICS RECEIVE                              
          INTO(WS-MESSAGE)                          
       END-EXEC                                       
       EXEC CICS SEND TEXT                            
          FROM (WS-MESSAGE)                         
       END-EXEC                                       
    ********************************************************
    * COMMAND TO TERMINATE THE TRANSACTION                 * 
    ********************************************************
       EXEC CICS RETURN                               
    END-EXEC.

Hiện tại, chúng tôi đã bao gồm các chương trình chuyển đổi và không chuyển đổi. Các chương trình chuyển đổi có một nhược điểm lớn làthink timelà cao đáng kể. Để khắc phục vấn đề này, lập trình chuyển đổi giả đã được đưa ra. Bây giờ chúng ta sẽ thảo luận thêm về các chương trình chuyển đổi giả.

Chương trình chuyển đổi giả

Sau đây là chuỗi các sự kiện diễn ra trong một chương trình chuyển đổi giả -

  • Step 1 - Hệ thống gửi thông báo đến màn hình và kết thúc giao dịch, chỉ định giao dịch được bắt đầu khi nhận được thông tin nhập của người dùng.

  • Step 2- Hệ thống phân bổ tài nguyên được sử dụng bởi giao dịch này cho giao dịch khác đang chạy trong hệ thống. Vì vậy, chúng tôi có thể sử dụng các tài nguyên trong một chương trình chuyển đổi giả cho đến khi người dùng cung cấp đầu vào.

  • Step 3- Hệ thống thăm dò ý kiến ​​đầu vào của thiết bị đầu cuối theo khoảng thời gian đều đặn. Khi đầu vào được nhận, nó sẽ được xử lý và đầu ra được hiển thị.

  • Step 4 - Chương trình ứng dụng được tải vào bộ lưu trữ chính khi cần và giải phóng khi không sử dụng.

Kỹ thuật chuyển đổi giả

Điểm quan trọng cần lưu ý trong cuộc trò chuyện giả là chuyển dữ liệu giữa mọi tác vụ. Chúng ta sẽ thảo luận về các kỹ thuật truyền dữ liệu.

COMMAREA

COMMAREA được biết đến là khu vực truyền thông. COMMAREA được sử dụng để truyền dữ liệu giữa các tác vụ. Ví dụ sau cho thấy cách chuyển COMMAREA trong đó WSCOMMAREA và WS-COMMAREA-LENGTH được khai báo trong Phần lưu trữ đang làm việc -

EXEC CICS RETURN
   TRANSID ('transaction-id')
   COMMAREA (WS-COMMAREA)
   LENGTH  (WS-COMMAREA-LENGTH)
END-EXEC.

DFHCOMMAREA

DFHCOMMAREA là một vùng bộ nhớ đặc biệt được CICS cung cấp cho mọi tác vụ.

  • Nó được sử dụng để truyền dữ liệu từ chương trình này sang chương trình khác. Các chương trình có thể tồn tại trong cùng một giao dịch hoặc trong các giao dịch khác nhau.

  • Nó được khai báo trong Phần liên kết của chương trình ở 01 cấp độ.

  • Nó phải có mệnh đề hình ảnh giống như WS-COMMAREA.

  • Dữ liệu có thể được di chuyển trở lại từ DFHCOMMAREA sang WS-COMMAREA bằng cách sử dụng câu lệnh MOVE.

MOVE DFHCOMMAREA TO WS-COMMAREA.

Thí dụ

Sau khi gửi bản đồ, nhiệm vụ kết thúc và chờ phản hồi của người dùng. Ở giai đoạn này, dữ liệu cần được lưu lại, bởi vì mặc dù nhiệm vụ đã kết thúc nhưng giao dịch thì không. Khi giao dịch này được tiếp tục, nó sẽ yêu cầu trạng thái trước đó của nhiệm vụ. Người dùng nhập đầu vào. Điều này bây giờ phải được nhận bằng lệnh RECEIVE MAP và sau đó được xác thực. Ví dụ sau đây cho thấy cách khai báo COMMAREA và DFHCOMMAREA:

WORKING-STORAGE SECTION.
01 WS-COMMAREA.
   05 WS-DATA PIC X(10).
   
LINKAGE SECTION.
01 DFHCOMMAREA.
   05 LK-DATA PIC X(10).

Mã giả

Dưới đây là logic của mã giả mà chúng tôi sử dụng trong lập trình giả -

MOVE DFHCOMMAREA TO WS-COMMAREA
IF EIBCALEN = 0
   STEP1: SEND MAP
   STEP2: MOVE <internal-transaction-id1> to WS-COMMAREA
   STEP3: ISSUE CONDITIONAL RETURN
ELSE
   IF WS-COMMAREA = <internal-transaction-id1> 
      STEP4: RECEIVE MAP
      STEP5: PROCESS DATA
      STEP6: SEND OUTPUT MAP
      STEP7: MOVE <internal-transaction-ID2> to WS-COMMAREA
      STEP8: ISSUE CONDITIONAL RETURN 
   END-IF
END-IF      
STEP9: REPEAT STEP3 TO STEP7 UNTIL EXIT

Thí dụ

Ví dụ sau đây cho thấy một chương trình chuyển đổi giả:

******************************************************************
* PROGRAM TO DEMONSTRATE PSEUDO-CONVERSATION                     *
******************************************************************
IDENTIFICATION DIVISION.                                         
PROGRAM-ID. HELLO.                                               
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                         
01 WS-MESSAGE          PIC X(30).                                
01 WS-COMMAREA         PIC X(10) VALUE SPACES.                    
LINKAGE SECTION.                                                 
01 DFHCOMMAREA         PIC X(10).                                 
PROCEDURE DIVISION.
   MOVE DFHCOMMAREA TO WS-COMMAREA
   IF  WS-COMMAREA  =  SPACES                                   
******************************************************************
* TRANSACTION GETTING EXECUTED FOR THE FIRST TIME                *
******************************************************************
   MOVE 'HELLO' TO WS-MESSAGE                               
   EXEC CICS SEND TEXT                                      
      FROM (WS-MESSAGE)                                   
   END-EXEC                                                 
   MOVE 'FIRST' TO WS-COMMAREA                              
******************************************************************
* TASK ENDS AS A RESULT OF RETURN. IF AID KEY PRESSED, NEXT      *
* TRANSACTION SHOULD BE TP002. DATA PASSED FROM WS-COMMAREA TO   *
* DFHCOMMAREA                                                    *
******************************************************************
   EXEC CICS RETURN                                         
      TRANSID('TP002')                                      
      COMMAREA(WS-COMMAREA)                                
   END-EXEC                                                 
******************************************************************
* IF  COMMAREA IS NOT EMPTY , THEN TP002 HAS BEEN EXECUTED ONCE  *
* ALREADY, USER INTERACTION IS FACILITATED BY RECEIVE            *
******************************************************************
   ELSE                                                         
      EXEC CICS RECEIVE                                        
         INTO(WS-MESSAGE)                                    
   END-EXEC
      EXEC CICS SEND TEXT                                      
      FROM (WS-MESSAGE)                                   
   END-EXEC                                                 
******************************************************************
* TASK ENDS AS A RESULT OF RETURN, NO NEXT TRANSACTION SPECIFIED *
* TO BE EXECUTED                                                 *
******************************************************************
   EXEC CICS RETURN                                         
   END-EXEC                                                 
END-IF.

Ưu điểm của Chuyển đổi giả

Sau đây là những ưu điểm của chuyển đổi giả -

  • Các nguồn tài nguyên được sử dụng tốt nhất. Tài nguyên được phát hành ngay sau khi chương trình bị tạm dừng.

  • Có vẻ như nó đang ở chế độ trò chuyện.

  • Nó có thời gian phản hồi tốt hơn.

Báo cáo trả lại

Sau đây là hai loại câu lệnh trả về được sử dụng trong CICS:

Return-1

Khi câu lệnh trả về vô điều kiện sau được phát hành, tác vụ và giao dịch (chương trình) sẽ bị chấm dứt.

EXEC CICS RETURN 
END-EXEC.

Return-2

Khi trả về có điều kiện sau, tức là trả về với câu lệnh TRANSID được đưa ra, thì điều khiển sẽ quay trở lại CICS với chuyển tiếp tiếp theo sẽ được thực hiện. Giao dịch tiếp theo bắt đầu khi người dùng nhấn một phím AID.

EXEC CICS RETURN
   TRANSID ('trans-id')
   [COMMAREA(WS-COMMAREA)]
END-EXEC.

Như chúng ta đã thảo luận trong các mô-đun trước đó, khóa AID được gọi là Khóa nhận dạng chú ý. CICS chỉ có thể phát hiện các khóa AID. Sau khi nhập tất cả các đầu vào, chỉ khi người dùng nhấn một trong các phím AID, CICS mới có quyền kiểm soát. Các phím AID bao gồm ENTER, PF1 đến PF24, PA1 đến PA3 và CLEAR.

Xác thực khóa AID

Phím do người dùng nhấn được kiểm tra bằng cách sử dụng EIBAID.

  • EIBAID dài một byte và chứa giá trị nhận dạng sự chú ý thực tế được sử dụng trong luồng đầu vào 3270.

  • CICS cung cấp cho chúng tôi một tập hợp các biến được mã hóa trước có thể được sử dụng trong chương trình ứng dụng bằng cách viết câu lệnh sau:

    SAO CHÉP DFHAID

DFHAID

DFHAID là một cuốn sách sao chép được sử dụng trong các chương trình ứng dụng để bao gồm tập hợp các biến được mã hóa trước CICS. Nội dung sau đây có trong sách bản DFHAID -

01    DFHAID.                             
   02  DFHNULL   PIC  X  VALUE IS ' '.     
   02  DFHENTER  PIC  X  VALUE IS ''''.    
   02  DFHCLEAR  PIC  X  VALUE IS '_'.     
   02  DFHCLRP   PIC  X  VALUE IS '¦'.     
   02  DFHPEN    PIC  X  VALUE IS '='.     
   02  DFHOPID   PIC  X  VALUE IS 'W'.     
   02  DFHMSRE   PIC  X  VALUE IS 'X'.     
   02  DFHSTRF   PIC  X  VALUE IS 'h'.     
   02  DFHTRIG   PIC  X  VALUE IS '"'.     
   02  DFHPA1    PIC  X  VALUE IS '%'.     
   02  DFHPA2    PIC  X  VALUE IS '>'.     
   02  DFHPA3    PIC  X  VALUE IS ','.     
   02  DFHPF1    PIC  X  VALUE IS '1'.     
   02  DFHPF2    PIC  X  VALUE IS '2'.     
   02  DFHPF3    PIC  X  VALUE IS '3'.     
   02  DFHPF4    PIC  X  VALUE IS '4'.     
   02  DFHPF5    PIC  X  VALUE IS '5'.     
   02  DFHPF6    PIC  X  VALUE IS '6'.     
   02  DFHPF7    PIC  X  VALUE IS '7'.     
   02  DFHPF8    PIC  X  VALUE IS '8'.     
   02  DFHPF9    PIC  X  VALUE IS '9'.     
   02  DFHPF10   PIC  X  VALUE IS ':'.     
   02  DFHPF11   PIC  X  VALUE IS '#'.     
   02  DFHPF12   PIC  X  VALUE IS '@'.     
   02  DFHPF13   PIC  X  VALUE IS 'A'.     
   02  DFHPF14   PIC  X  VALUE IS 'B'.     
   02  DFHPF15   PIC  X  VALUE IS 'C'.   
   02  DFHPF16   PIC  X  VALUE IS 'D'.   
   02  DFHPF17   PIC  X  VALUE IS 'E'.   
   02  DFHPF18   PIC  X  VALUE IS 'F'.   
   02  DFHPF19   PIC  X  VALUE IS 'G'.   
   02  DFHPF20   PIC  X  VALUE IS 'H'.   
   02  DFHPF21   PIC  X  VALUE IS 'I'.   
   02  DFHPF22   PIC  X  VALUE IS '¢'.   
   02  DFHPF23   PIC  X  VALUE IS '.'.   
   02  DFHPF24   PIC  X  VALUE IS '<'.

Thí dụ

Ví dụ sau đây cho thấy cách sử dụng DFHAID copybook trong một chương trình ứng dụng:

IDENTIFICATION DIVISION.                                         
PROGRAM-ID. HELLO.                                               
DATA DIVISION.   
WORKING-STORAGE SECTION.
COPY DFHAID.
PROCEDURE DIVISION.
A000-AIDKEY-PARA.
   EVALUATE EIBAID
      WHEN DFHAID
         PERFORM A000-PROCES-PARA
      WHEN DFHPF1
         PERFORM A001-HELP-PARA
      WHEN DFHPF3
         PERFORM A001-EXIT-PARA
    END-EVALUATE.

Định vị con trỏ

Có hai cách để ghi đè vị trí được chỉ định trong định nghĩa bản đồ.

  • Một cách là chỉ định vị trí màn hình liên quan đến số dòng và cột trong tùy chọn CURSOR trên lệnh gửi bản đồ.

  • Một cách khác là di chuyển -1 đến biến bản đồ tượng trưng có chữ L. Sau đó, gửi bản đồ với tùy chọn CURSOR trong GỬI BẢN ĐỒ.

Thí dụ

Ví dụ sau cho biết cách ghi đè vị trí con trỏ cho trường NAME -

MOVE -1 TO NAMEL
   EXEC CICS SEND 
      MAP ('map-name')
      MAPSET ('name-field')
      ERASE
      FREEKB
      CURSOR
   END-EXEC.

Tự động sửa đổi các thuộc tính

Trong khi gửi bản đồ, nếu chúng ta muốn có các thuộc tính khác nhau cho một trường khác với thuộc tính được chỉ định trong bản đồ, thì chúng ta có thể ghi đè lên đó bằng cách đặt trường trong chương trình. Sau đây là giải thích để ghi đè các thuộc tính của một trường:

  • Để ghi đè các thuộc tính của một trường, chúng ta phải đưa DFHATTR vào chương trình ứng dụng. Nó được cung cấp bởi CICS.

  • Thuộc tính bắt buộc có thể được chọn từ danh sách và chuyển đến biến trường tượng trưng có hậu tố là 'A'.

DFHATTR nắm giữ nội dung sau:

01  CICS-ATTRIBUTES.
   05  ATTR-UXN            PIC X(01) VALUE SPACE.
   05  ATTR-UXMN           PIC X(01) VALUE 'A'.
   05  ATTR-UXNL           PIC X(01) VALUE 'D'.
   05  ATTR-UXMNL          PIC X(01) VALUE 'E'.
   05  ATTR-UXBL           PIC X(01) VALUE 'H'.
   05  ATTR-UXMBL          PIC X(01) VALUE 'I'.
   05  ATTR-UXD            PIC X(01) VALUE '<'.
   05  ATTR-UXMD           PIC X(01) VALUE '('.
   05  ATTR-U9N            PIC X(01) VALUE '&'.
   05  ATTR-U9MN           PIC X(01) VALUE 'J'.
   05  ATTR-U9NL           PIC X(01) VALUE 'M'.
   05  ATTR-U9MNL          PIC X(01) VALUE 'N'.
   05  ATTR-U9BL           PIC X(01) VALUE 'Q'.
   05  ATTR-U9MBL          PIC X(01) VALUE 'R'.
   05  ATTR-U9D            PIC X(01) VALUE '*'.
   05  ATTR-U9MD           PIC X(01) VALUE ')'.
   05  ATTR-PXN            PIC X(01) VALUE '-'.
   05  ATTR-PXMN           PIC X(01) VALUE '/'.
   05  ATTR-PXNL           PIC X(01) VALUE 'U'.
   05  ATTR-PXMNL          PIC X(01) VALUE 'V'.
   05  ATTR-PXBL           PIC X(01) VALUE 'Y'.
   05  ATTR-PXMBL          PIC X(01) VALUE 'Z'.
   05  ATTR-PXD            PIC X(01) VALUE '%'.
   05  ATTR-PSN            PIC X(01) VALUE '0'.
   05  ATTR-PSMN           PIC X(01) VALUE '1'.
   05  ATTR-PSNL           PIC X(01) VALUE '4'.
   05  ATTR-PSMNL          PIC X(01) VALUE '5'.
   05  ATTR-PSBL           PIC X(01) VALUE '8'.
   05  ATTR-PSMBL          PIC X(01) VALUE '9'.
   05  ATTR-PSD            PIC X(01) VALUE '@'.
   05  ATTR-PSMD           PIC X(01) VALUE "'".

CICS cho phép chúng ta truy cập dữ liệu tệp theo nhiều cách. Hầu hết các truy cập tệp là ngẫu nhiên trong hệ thống trực tuyến vì các giao dịch được xử lý không theo đợt và được sắp xếp theo bất kỳ loại thứ tự nào. Do đó CICS hỗ trợ các phương pháp truy cập trực tiếp thông thường - VSAM và DAM (Phương pháp truy cập trực tiếp). Nó cũng cho phép chúng tôi truy cập dữ liệu bằng cách sử dụng trình quản lý cơ sở dữ liệu.

Truy cập ngẫu nhiên

Sau đây là các lệnh được sử dụng để xử lý ngẫu nhiên:

Sr.No Lệnh & Mô tả
1 ĐỌC

Lệnh READ đọc dữ liệu từ một tệp bằng khóa chính.

2 VIẾT

Lệnh ghi được sử dụng để thêm các bản ghi mới vào một tệp.

3 REWRITE

Lệnh REWRITE được sử dụng để sửa đổi bản ghi đã có trong tệp.

4 XÓA BỎ

Lệnh DELETE được sử dụng để xóa một bản ghi có trong một tệp.

Truy cập tuần tự

Sau đây là các lệnh được sử dụng để xử lý tuần tự:

Sr.No Lệnh & Mô tả
1 STARTBR

STARTBR được gọi là bắt đầu duyệt.

2 READNEXT / READPREV

Khi chúng tôi phát hành một lệnh STARTBR, nó không làm cho các bản ghi có sẵn.

3 ĐẶT LẠI

Lệnh RESETBR cho phép chúng tôi thiết lập lại điểm bắt đầu của chúng tôi ở giữa trình duyệt.

4 ENDBR

Khi chúng tôi đã đọc xong một tệp theo tuần tự, chúng tôi kết thúc trình duyệt bằng lệnh ENDBR.

Có nhiều loại abendsvà những lỗi mà người ta có thể gặp phải khi sử dụng ứng dụng CICS. Lỗi có thể phát sinh do cả phần cứng và các vấn đề phần mềm. Chúng ta sẽ thảo luận về lỗi và xử lý lỗi trong mô-đun này.

Lỗi CICS

Sau đây là các lỗi CICS có thể phát sinh trong quá trình thực thi các ứng dụng CICS:

  • Một số lỗi CICS dự kiến ​​phát sinh khi các điều kiện không bình thường trong hệ thống CICS. Ví dụ: nếu chúng ta đang đọc một bản ghi cụ thể và bản ghi không được tìm thấy, thì chúng ta sẽ gặp lỗi "Không tìm thấy".Mapfaillà một lỗi tương tự. Các lỗi trong danh mục này được xử lý bằng logic rõ ràng trong chương trình.

  • Lỗi logic phát sinh do một số lý do như chia cho 0, ký tự không hợp lệ trong trường số hoặc lỗi id giao dịch.

  • Các lỗi liên quan đến phần cứng hoặc các điều kiện hệ thống khác nằm ngoài tầm kiểm soát của chương trình ứng dụng. Ví dụ: nhận được lỗi đầu vào / đầu ra khi truy cập tệp.

Các lệnh xử lý lỗi

CICS cung cấp một số cơ chế để xác định lỗi và xử lý chúng trong các chương trình của chúng tôi. Sau đây là các lệnh được sử dụng để xử lý các lỗi CICS mong đợi:

Sr.No Xử lý lệnh & mô tả
1 Xử lý tình trạng

Điều kiện xử lý được sử dụng để chuyển điều khiển của chương trình sang một đoạn hoặc một nhãn thủ tục.

2 Xử lý Abend

Nếu một chương trình tiếp tục do một số lý do như lỗi đầu vào-đầu ra, thì nó có thể được xử lý bằng lệnh Handle Abend CICS.

3 Abend

Lệnh Abend được sử dụng để kết thúc nhiệm vụ một cách có chủ đích.

4 Bỏ qua điều kiện

Điều kiện bỏ qua được sử dụng khi chúng ta không muốn thực hiện hành động nào nếu xảy ra lỗi hoặc lỗi cụ thể được đề cập bên trong Điều kiện bỏ qua.

5 Nohandle

Nohandle có thể được chỉ định cho bất kỳ lệnh CICS nào.

CICS Program Control Program (PCP) quản lý luồng các chương trình ứng dụng. Tất cả các chương trình ứng dụng phải có mục nhập trong Bảng Chương trình Xử lý. Sau đây là các lệnh được sử dụng cho các dịch vụ điều khiển chương trình:

  • XCTL
  • Link
  • Load
  • Release
  • Return

Các cấp độ logic của chương trình

Các chương trình ứng dụng thực thi theo CICS có nhiều mức logic khác nhau. Chương trình đầu tiên nhận quyền điều khiển trực tiếp là ở mức logic cao nhất, tức là, Mức 1. Chương trình được liên kết ở mức logic tiếp theo từ chương trình liên kết. Các chương trình XCTL chạy ở cùng một cấp độ. Sẽ rõ ràng khi chúng ta đi qua Liên kết và XCTL, ở phần sau của mô-đun này. Hình ảnh sau đây cho thấy các mức logic:

XCTL

Giải thích cơ bản về XCTL như sau:

  • Lệnh XCTL được sử dụng để chuyển điều khiển từ chương trình này sang chương trình khác ở cùng một mức.

  • Nó không mong đợi sự kiểm soát trở lại.

  • Nó tương tự như câu lệnh GO TO.

  • Một chương trình XCTL có thể là một cuộc trò chuyện giả.

Thí dụ

Ví dụ sau đây cho thấy cách sử dụng lệnh XCTL để chuyển điều khiển cho một chương trình khác:

IDENTIFICATION DIVISION.                                         
PROGRAM-ID. PROG1.  
WORKING-STORAGE SECTION.
01 WS-COMMAREA    PIC X(100).                                             
PROCEDURE DIVISION.

EXEC CICS XCTL
   PROGRAM ('PROG2')
   COMMAREA (WS-COMMAREA)
   LENGTH (100)
END-EXEC.

Lệnh này chuyển điều khiển sẽ được chuyển đến chương trình 'PROG2' với 100 byte dữ liệu. COMMAREA là một tham số tùy chọn và là tên của vùng chứa dữ liệu sẽ được truyền hoặc vùng mà kết quả sẽ được trả về.

Liên kết

Lệnh liên kết dùng để chuyển điều khiển sang chương trình khác ở cấp thấp hơn. Nó mong đợi sự kiểm soát trở lại. Một chương trình được liên kết không thể là trò chuyện giả.

Thí dụ

Ví dụ sau cho thấy cách sử dụng lệnh Liên kết để chuyển điều khiển cho chương trình khác:

IDENTIFICATION DIVISION.                                         
PROGRAM-ID. PROG1.  
WORKING-STORAGE SECTION.
01 WS-COMMAREA    PIC X(100).                                             
PROCEDURE DIVISION.

EXEC CICS LINK
   PROGRAM ('PROG2')
   COMMAREA (WS-COMMAREA)
   LENGTH (100)
END-EXEC.

Tải

Lệnh Load được sử dụng để tải một chương trình hoặc một bảng. Sau đây là cú pháp của lệnh Load:

EXEC CICS LOAD
   PROGRAM ('name')
END-EXEC.

Giải phóng

Lệnh Release được sử dụng để phát hành một chương trình hoặc một bảng. Sau đây là cú pháp của lệnh Release:

EXEC CICS RELEASE
   PROGRAM ('name')
END-EXEC.

Trở về

Lệnh Return được sử dụng để đưa điều khiển trở lại mức logic cao hơn tiếp theo. Sau đây là cú pháp của lệnh Return:

EXEC CICS RETURN
   PROGRAM ('name')
   COMMAREA (data-value)
   LENGTH (data-value)
END-EXEC.

Hoạt động kiểm soát khoảng thời gian

Các hoạt động kiểm soát khoảng thời gian có hai loại sau:

ASKTIME

ASKTIME được sử dụng để yêu cầu thời gian và ngày hiện tại hoặc dấu thời gian. Sau đó, chúng tôi di chuyển giá trị này vào biến lưu trữ đang hoạt động bên trong chương trình. Sau đây là cú pháp của lệnh ASKTIME:

EXEC CICS ASKTIME
   [ABSTIME(WS-TIMESTAMP)]
END-EXEC.

HÌNH THỨC

FORMATTIME định dạng dấu thời gian thành định dạng bắt buộc dựa trên các tùy chọn, có thể là YYDDD, YYMMDD hoặc YYDDMM cho ngày tháng. DATESEP chỉ ra dấu phân cách cho DATE cũng như biến TIMESEP cho TIME. Sau đây là cú pháp của lệnh FORMATTIME:

EXEC CICS FORMATTIME
   ABSTIME(WS-TIMESTAMP)
   [YYDDD(WS-DATE)]
   [YYMMDD(WS-DATE)]
   [YYDDMM(WS-DATE)]
   [DATESEP(WS-DATE-SEP)]
   [TIME(WS-TIME)]
   [TIMESEP(WS-TIME-SEP)]
END-EXEC.

Có các miếng cào khác nhau có sẵn trong CICS để lưu dữ liệu hoặc để chuyển dữ liệu giữa các giao dịch. Có năm khu vực lưu trữ được cung cấp bởi CICS, mà chúng ta sẽ thảo luận trong mô-đun này.

COMMAREA

COMMAREA hoạt động giống như một bảng cào có thể được sử dụng để chuyển dữ liệu từ chương trình này sang chương trình khác, trong cùng một giao dịch hoặc từ các giao dịch khác nhau. Nó phải được xác định trong PHẦN LIÊN KẾT bằng cách sử dụng tên DFHCOMMAREA.

Khu vực làm việc chung

Bất kỳ giao dịch nào trong khu vực CICS đều có thể truy cập Khu vực làm việc chung và do đó định dạng và việc sử dụng khu vực này phải được tất cả các giao dịch trong hệ thống quyết định sử dụng khu vực đó đồng ý. Chỉ có một TTK trong toàn bộ khu vực CICS.

Khu vực làm việc giao dịch

Vùng làm việc giao dịch được sử dụng để chuyển dữ liệu giữa các chương trình ứng dụng được thực thi trong cùng một giao dịch. TWA chỉ tồn tại trong thời gian giao dịch. Kích thước của nó được xác định trong Bảng điều khiển chương trình.

Hàng đợi lưu trữ tạm thời

Hàng đợi Lưu trữ Tạm thời (TSQ) là một tính năng được cung cấp bởi Chương trình Kiểm soát Lưu trữ Tạm thời (TSP).

  • TSQ là một hàng đợi các bản ghi có thể được tạo, đọc và xóa bởi các tác vụ hoặc chương trình khác nhau trong cùng một vùng CICS.

  • Định danh hàng đợi được sử dụng để xác định TSQ.

  • Một bản ghi trong TSQ được xác định bằng vị trí tương đối được gọi là số mục.

  • Các bản ghi trong TSQ, vẫn có thể truy cập được cho đến khi toàn bộ TSQ bị xóa rõ ràng.

  • Các bản ghi trong TSQ có thể được đọc tuần tự hoặc trực tiếp.

  • TSQ có thể được ghi trong kho lưu trữ chính hoặc lưu trữ phụ trong DASD.

WRITEQ TS

Lệnh này được sử dụng để thêm các mục vào TSQ hiện có. Ngoài ra, chúng ta có thể tạo TSQ mới bằng lệnh này. Sau đây là cú pháp của lệnh WRITEQ TS:

Cú pháp

EXEC CICS WRITEQ TS
   QUEUE ('queue-name')
   FROM (queue-record)
   [LENGTH (queue-record-length)]
   [ITEM (item-number)]
   [REWRITE]
   [MAIN /AUXILIARY]
END-EXEC.

Sau đây là chi tiết về các tham số được sử dụng trong lệnh WRITEQ TS:

  • QUEUE được xác định bằng tên được đề cập trong tham số này.

  • Các tùy chọn FROM và LENGTH được sử dụng để chỉ định bản ghi sẽ được ghi vào hàng đợi và độ dài của nó.

  • Nếu tùy chọn ITEM được chỉ định, CICS sẽ chỉ định số mục cho bản ghi trong hàng đợi và đặt vùng dữ liệu được cung cấp trong tùy chọn đó thành số mục. Nếu bản ghi bắt đầu một hàng đợi mới, số mục được chỉ định là 1 và các số mục tiếp theo theo tuần tự.

  • Tùy chọn REWRITE được sử dụng để cập nhật bản ghi đã có trong hàng đợi.

  • Tùy chọn CHÍNH / AUXILIARY được sử dụng để lưu trữ hồ sơ trong bộ nhớ chính hoặc phụ. Mặc định là AUXILIARY.

READQ TS

Lệnh này được sử dụng để đọc Hàng đợi Lưu trữ Tạm thời. Sau đây là cú pháp của READQ TS -

Cú pháp

EXEC CICS READQ TS
   QUEUE ('queue-name')
   INTO (queue-record)
   [LENGTH (queue-record-length)]
   [ITEM (item-number)]
   [NEXT]
END-EXEC.

DELETEQ TS

Lệnh này được sử dụng để xóa Hàng đợi Lưu trữ Tạm thời. Sau đây là cú pháp của DELETEQ TS -

Cú pháp

EXEC CICS DELETEQ TS
   QUEUE ('queue-name')
END-EXEC.

Hàng đợi dữ liệu tạm thời

Hàng đợi dữ liệu tạm thời có bản chất là tạm thời vì nó có thể được tạo và xóa nhanh chóng. Nó chỉ cho phép truy cập tuần tự.

  • Nội dung của hàng đợi chỉ có thể được đọc một lần vì nó bị hủy sau khi thực hiện đọc và do đó có tên là Tạm thời.

  • Nó không thể được cập nhật.

  • Nó yêu cầu một mục nhập trong DCT.

WRITEQ TD

Lệnh này được sử dụng để ghi các hàng đợi dữ liệu tạm thời và chúng luôn được ghi vào một tệp. Sau đây là cú pháp của lệnh WRITEQ TD:

Cú pháp

EXEC CICS WRITEQ TD
   QUEUE ('queue-name')
   FROM (queue-record)
   [LENGTH (queue-record-length)]
END-EXEC.

READQ TD

Lệnh này được sử dụng để đọc hàng đợi dữ liệu tạm thời. Sau đây là cú pháp của READQ TD -

Cú pháp

EXEC CICS READQ TD
   QUEUE ('queue-name')
   INTO (queue-record)
   [LENGTH (queue-record-length)]
END-EXEC.

DELETEQ TD

Lệnh này được sử dụng để xóa hàng đợi dữ liệu tạm thời. Sau đây là cú pháp của DELETEQ TD -

Cú pháp

EXEC CICS DELETEQ TD
   QUEUE ('queue-name')
END-EXEC.

Sự giao tiếp lẫn nhau diễn ra giữa hai hoặc nhiều hệ thống được gọi là intercommunication.

Lợi ích của thông tin liên lạc

Những lợi ích quan trọng của thông tin liên lạc như sau:

  • Chúng tôi không cần sao chép dữ liệu trên tất cả các hệ thống.

  • Người dùng không cần giữ kết nối với nhiều hệ thống để truy cập dữ liệu được lưu trữ trên chúng.

  • Nó cải thiện hiệu suất của ứng dụng.

Thuật ngữ cơ bản

Người ta phải có kiến ​​thức về các thuật ngữ cơ bản được sử dụng trong hệ thống CICS. Sau đây là các thuật ngữ cơ bản -

Hệ thống cục bộ

Hệ thống cục bộ là một hệ thống khởi tạo yêu cầu liên lạc thông tin liên lạc.

Tài nguyên địa phương

Tài nguyên cục bộ là tài nguyên nằm trên hệ thống cục bộ.

Hệ thống từ xa

Hệ thống từ xa là một hệ thống được khởi tạo do một yêu cầu thông tin liên lạc.

Tài nguyên từ xa

Tài nguyên từ xa là tài nguyên nằm trên hệ thống từ xa.

MVS Sysplex

MVS Sysplex là một cấu hình của nhiều hệ điều hành MVS. Chúng hoạt động như một hệ thống duy nhất bằng cách chia sẻ các chức năng và chương trình.

CICSPlex

CICSPlex thường được mô tả như một tập hợp các vùng CICS được kết nối với nhau để xử lý khối lượng công việc của khách hàng. CICSPlex là một tập hợp các vùng CICS được kết nối với nhau sở hữu các Thiết bị đầu cuối, Ứng dụng, Tài nguyên, v.v.

Phương pháp liên lạc

Có hai cách để CICS có thể giao tiếp với các hệ thống khác -

  • MRO - Hoạt động Đa vùng được sử dụng khi hai vùng CICS trong cùng một MVSPLEX cần giao tiếp với nhau.

  • ISC - Giao tiếp giữa hệ thống được sử dụng khi vùng CICS trong máy chủ LOCAL phải giao tiếp với vùng CICS trong máy chủ REMOTE.

Trong khi làm việc với CICS, bạn có thể gặp phải các lỗi. Sau đây là các mã abend phổ biến với mô tả của chúng sẽ giúp bạn giải quyết các vấn đề -

Sr.No Mã & Mô tả
1

ASRA

Kiểm tra chương trình ngoại lệ

2

AEI0

Lỗi ID chương trình

3

AEI9

Điều kiện bản đồ bị lỗi

4

AEIO

Khóa trùng lặp

5

AEIN

Bản ghi trùng lặp

6

AEID

Đã đến cuối tệp

7

AEIS

Tệp không được mở

số 8

AEIP

Điều kiện yêu cầu không hợp lệ

9

AEY7

Không được phép sử dụng tài nguyên

10

APCT

Chương trình không tìm thấy

11

AFCA

Không tìm thấy tập dữ liệu

12

AKCT

Lỗi hết thời gian

13

ABM0

Bản đồ đã chỉ định không tìm thấy

14

AICA

Chương trình trong vòng lặp vô hạn

15

AAOW

Lỗi logic nội bộ