




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基本語法一、COBOL基本語法 compla項目使用的Cobol是Micro Focus 公司生产的Cobol,采用在HP-UNIX上运行。一、cobol的书写格式(每行)1、 前6列为序号区(一般不编辑)2、 第7列为标示列,仅可以写如下几个标示符。a. “” 注释符(注释当前行的代码)b “/“ 注释符(注释当前行的代码,程序编译时,强制程序清单另起一页,不建议使用) c “ 字符串连接符 d “D” DEBUG行标示符(程序为DEBUG模式时,标有该标示符的语句行代码执行,否则和注释行效果一样) 3、第8列-11列为A区,包括以下内容。 a 部、节名。 b 层号01 4、第12列-72列
2、为B区,过程部的程序必须写在B区中。 5、第72以后部分不能编辑。二、cobol的语法结构 (几大部分)1、 标示部(IDENTIFICATION DIVISION):提供程序的一般性文档说明,本项目只保留程序名(PROGRAM-ID)一项。2、 环境部(ENVIRONMENT DIVISION): 提供程序外部有关的项目。a. 配置节(CONFIGURATION SECTION).指定源计算机(SOURCE-COMPUTE).目标计算机(OBJECT-COMPUTE).设置debug模式(SOURCE-COMPUTE H9000V WITH DEBUGGING MODE). 指定读环境变量设
3、置. SPECIAL-NAMES. ENVIRONMENT-VALUE IS CNS-ENV-PARM ENVIRONMENT-NAME IS CNS-ENV-NAME.b. 输入输出节(INPUT-OUTPUT SECTION). 文件的物理路径的定义。 方法一:(写死文件路径) SELECT FILE-LOG ASSIGN "/usr3/WSI/commonlog/WSI1101.log" ORGANIZATION IS LINE SEQUENTIAL. 方法二:(过程部中动态指定文件) SELECT FILE-LOG ASSIGN TO SELECT-FILE ORG
4、ANIZATION IS LINE SEQUENTIAL. 在数据部定义字符串变量SELECT-FILE,在文件FILE-LOG打开前动态指定文件路径。 方法三:(环境变量中动态指定文件) SELECT FILE-LOG ASSIGN TO EXTERNAL EXTFILELOG ORGANIZATION IS LINE SEQUENTIAL. 在该程序运行前,设置环境变量: setenv dd_ EXTFILELOG /usr3/WSI/nco035/lsc/tstlog/WSIXXXX.log 3、数据部(DATA DIVISION)。 程序中的变量都在数据部中定义,Cobol中没有全局变
5、量和局部之分。(变量的类型结构参照5.变量类型)a. 文件节(FILE SECTION) 给环境部定义的文件指定一个RECORD变量,读写文件用: FD FILE-LOG. 01 RECORD-LOG PIC X(2000). b. 工作存储节 定义程序中用到的临时变量。a) COBOL变量定义需要加层号(表示层次关系),· 层号从01开始 如: 01 I PIC X(10).· 组合项 如: 01 WORK-AREA. 05 NUM-1 PIC 9(09). 05 STR-1 PIC X(10). b) 层号依次排列顺序为:01 ,05,10,15,20,30 ·
6、;······c. 连接节子程序的参数的定义。 4、 过程部(PROCEDURE DIVISION) 程序的主体:程序的逻辑运算在此操作。a、 每个程序分为四大节(模块),· 前处理(初始化变量,设定初始值等)· 主处理(程序业务处理部分)· 后处理(程序正常结束时的出口)· 错误处理(程序异常结束时的出口)b、 对于子程序,PROCEDURE DIVISION 后应列出LINK节中定义的参数。如: PROCEDURE DIVISION USING LINK-INPUT-DATA LINK-OU
7、TPUT-DATA.c、 程序结束。· 主程序 STOP RUN. · 子程序 GO BACK.5、变量类型COBOL程序的基本变量类型分为两大类字符串型(X)、数值型(9)。a 字符串型 01 STRING-A PIC X(100). 100个字符长的变量,程序可以局部操作一个变量( STRING-A(start: length)如: MOVE ALL “X” TO STRING-A(2:10) (将变量STRING-A第2位开始10长度的内容全赋为”X”字符) b 数值型 种类类型说明备注DISPLAY9(m)无符号整数,每位占用一个字节,显示或输出到文件时,为零的数位
8、显示”0”(1<=m <=18)例如: 01 I PIC 9(8).变量I占用8个字节。I = 1 时,输出显示时为00000001S9(m)带符号整数,每位占用一个字节,符号位不占位,显示时,为零的数位显示”0”,符号显示在最后,输出到文件时,为零的数位显示”0”,符号丢失。(1<=m <=18)例如: 01 I PIC 9(8).变量I占用8个字节。I = 1 时,显示时为00000001+输出到文件时为00000001DISPLAY9(m)V9(n)无符号小数(小数点不显示,不占位)每位占用一个字节,显示或输出到文件时,为零的数位显示”0”(1<=m + n
9、 <=18)例如: 01 I PIC 9(4)V9(2).变量I占用6个字节,整数位4位,小数位2位。I = 1.1 时,输出显示时为000110S9(m)V9(n)带符号小数(小数点不显示,不占位)每位占用一个字节,符号位不占位,显示时,为零的数位显示”0”,符号显示在最后,输出到文件时,为零的数位显示”0”,符号丢失。 (1<=m + n <=18)例如: 01 I PIC 9(4)V9(2).变量I占用6个字节,整数位4位,小数位2位。I = 1.1 时,显示时为000110+输出到文件时为000110出力+Z(m)带符号整数,每位占用一个字节,符号位占位,显示和输出到
10、文件时,为零的高位显示为空格,正数时,符号位为”+”负数时,符号位为”-”(1<=m <=18)例如: 01 I PIC +Z(4).变量I占用5个字节,I = 1 时, 输出显示时为+ 1I = -1 时,输出显示时为- 1-Z(m)带符号整数,每位占用一个字节,符号位占位,显示和输出到文件时,为零的高位显示为空格,正数时,符号位为空格负数时,符号位为”-”(1<=m <=18)例如: 01 I PIC +Z(4).变量I占用5个字节,I = 1 时, 输出显示时为 1I = -1 时,输出显示时为- 1+Z(m).Z(n)带符号小数,每位占用一个字节,符号、小数点占
11、位,显示和输出到文件时,整数部为零的高位显示为空格,小数部为零的低位显示为0;正数时,符号位为”+” 负数时,符号位为”-”(1<=m +n <=18)例如: 01 I PIC +Z(4).Z(2)变量I占用8个字节,I = 1.1 时,输出显示时为+ 1.10I = -1.1 时,输出显示时为- 1.10-Z(m).Z(n)带符号小数,每位占用一个字节,符号、小数点占位,显示和输出到文件时,整数部为零的高位显示为空格,小数部为零的低位显示为空格;正数时,符号位为”+” 负数时,符号位为”-”(1<=m +n <=18)例如: 01 I PIC +Z(4).Z(2)变量
12、I占用8个字节,I = 1.1 时, 输出显示时为 1.1 I = -1 时,输出显示时为- 1.1 Comp,comp-5,comp-39(m) comp-5无符号整数,数据以二进制方式存贮,显示和9(m) 一样,不能出力(1<= m <=18) S9(m) comp-5有符号整数,数据以二进制方式存贮,显示和S9(m) 类似,只是符号在前面,不能出力,(1<= m <= 18) 9(m)v9(n) comp-5无符号小数,数据以二进制方式存贮,显示和9(m)v9(n) 一样,不能出力(1<= m + n <=18) S9(m)v9(n) comp-5有符
13、号整数,数据以二进制方式存贮,显示和S9(m)v9(n) 类似,只是符号在前面,不能出力,(1<= m + n <= 18) 注: 1、对于出力型数值变量,可以用9代替Z,它们的区别是:结果为零的整数部高位,小数部低位: Z型变量用空格显示,9型变量用零显示2、COBOL语言中数值型变量种类很多,针对不同的要求有不同的数值类型。c、在COBOL变量定义时,可以加入格式字符串字符。d、不同类型变量间赋值。 整数1、 字符串中数值部分可以作为对应长度的DISPLAY型变量给其它各种数值型变量。2、 DISPLAY型变量(包括出力型变量)被赋值时,超出它表示范围的数可以被接受,但截去超出
14、的高位。3、 COMP型变量被赋值时,超出它表示范围的数不能被接受。 小数 1、 DISPLAY型变量(包括出力型变量)被赋值时,超出它表示范围的数可以被接受,但整数部截去超出的高位,小数部截去低位。2、 COMP型变量被赋值时,整数部超出它表示范围的数不能被接受,小数部超出它表示范围的数可以被接受,但小数部截去低位 注: 以上所述赋值变量为任何类型的数值型变量(经过严格测试得出结论)。 e、字符型比较。 · 字符串比较时,系统自动截去尾部空格(如 “a “ = “a” )。 · 数字的数值形式和数字字符形式相等(如 “1234567890” = 1234567890) &
15、#183; 综合以上两点, 有 “12 “ = 12二、 基本语法:1、赋值语句MOVE。 a、 将一个变量赋给另个变量 move a to b. b、将一个变量同时赋给另外两个变量。 Move a to b c . c、将一个变量全部赋为某个字符 move all “x” to a. d、对于赋值溢出,截取的方式为. · 字符型变量截去左边的溢出部分。 · 数值型变量截去整数部高位、小数部低位的溢出部分。e、 组和项传送,它们的数据结构 必须相同f、 对于组合项成员的局部引用,应该如下: A-AREA. 05 STR-1 PIC X(10). 05 STR-2 PIC X
16、(10). B-AREA. 05 STR-1 PIC X(20). 05 STR-2 PIC X(10).MOVE STR-1 OF A-AREA(1:4) TO STR-1 OF B-AREA(1:4).2、显示语句DISPLAY a. 向控制台打印显示的信息(如果程序基于opentp1环境,该信息将写到opentp1的log文件中).DISPLAY “DISPLAY RESULT:” STR-1 “”. b、输出一个环境变量名。 DISPLAY WK-ENV-NAME UPON CNS-ENV-NAME.3、 接受语句ACCEPTa、 接受从控制台上的输入值。b、 接受环境变量值。ACCE
17、PT WK-ENV-PARM FROM CNS-ENV-PARMON EXCEPTION ·············NOT ON EXCEPTION ·············END-ACCEPT.4、 四则运算原则上,四则运算不用助记符语句,但对于简单运算( +,-),可采用助记符语句。a、 加法( ADD 1 TO NUM-1)b、
18、减法(SUBTRACT 1 FROM NUM-1)c、 其它所有运算均采用COMPUTE 语句COMPUTE NUM-1 = NUM-2 + NUM3 * 10 运算符如下: + 加- 减* 乘/ 除* 指数 在COMPUTE语句中,变量和运算符间至少留有一个空格。5、 重定义语句REDEFINES(数据部中使用) 01 A PIC X(10) VALUE SPACE.01 B REDEFINES A PIC 9(10). 变量A,B使用同一个空间,重定义时,重定义变量必须紧跟着被重定义变量后面,并且在字符串同数值一起重定义时,如果对变量进行初始化,变量会初始化为空格。6、 数组关键词OCCU
19、RS OCCURS 整数 TIMES. a.简单数组 01 A OCCURS 10 PIC X(30). b. 组合项数组01 A.05 B OCCURS 10. 10 C PIC X(10). 10 D PIC X(20). 注意:引用数组中某一元素如下 DISPLAY C OF B OF A(1) “”.7、 检查替换语句INSPECT. INSPECT A TALLYING N FOR ALL X. · 计算字符串A中含有X字符的个数,结果赋给N. INSPECT A REPLACING ALL X BY A. ·将字符串A中所有的X字符用A代替.8、 连结语句STR
20、ING STRING A, B, C DELIMITED BY SIZE INTO D . ·将字符串A, B, C按它们定义长度连接赋给变量D. STRING A, B, C DELIMITED BY SPACE INTO D . ·将字符串A, B, C连接赋给变量D,去掉中间所有的空格. STRING “AAAAAAA” DELIMITED BY SIZE “BBBBBBB ” DELIMITED BY SIZE B DELIMITED BY SIZE INTO D .·将字符串和字符串变量连接赋给变量D.9、 IF语句IF 语句包含以下三种:·
21、IF 条件 THEN语句 (无 “.”结束)END-IF.· IF 条件 THEN语句 (无 “.”结束)ELSE语句 (无 “.”结束)END-IF.· IF 条件 THEN语句 (无 “.”结束)ELSEIF 条件 THEN语句 (无 “.”结束)END-IF END-IF. 注: IF 语句最多只能使用三层嵌套,条件用括号括起来。10 关系运算符助记符运算符 含义IS GREATER THAN>大于IS LESS THAN<小于IS EQUAL TO=等于 IS NOT GREATER THANNOT > <=小于等于IS NOT LESS T
22、HANNOT < >=大于等于ISNOT EQUAL TONOT =不等于注: 判断字符串能否转换为数字。NUMERIC NOT NUMERICIS NOT NUMERIC11、PERFORM 语句 PERFORM XXX-RTN. · 调用子节,直到遇到第一个只包含EXIT语句的段中止,回到该调用语句的下一条语句。 EXIT只与它搭配有效。 所以节的定义规定如下: XXX-RTN SECTION. 语句块 ········ XXX-EXT. EXIT. PERFORM XXX-RTN N T
23、IMES. · 循环调用子节N次 PERFORM XXX-RTN UNTIL N> 30. · 循环调用子节,直到N 大于30。PERFORM UNTIL 表达式 语句 ·······END-PERFORM. · 循环调用语句块,表达式判断在语句块前进行。 PERFORMVARYING X FROM A BY B UNTIL X > 12 语句 ······· END-PERFORM. · 循环调用语句块
24、,相当于FOR 循环。12、EVALUATE 语句EVALUATE 变量、常量、表达式 WHEN ANY TRUE FALSE (NOT) 常量1 THRU (THROUGH) 常量2 WHEN OTHER .END EVALUATE · ANY :任何变量、常量值 · TRUE、FALSE :关系表达式的结果· (NOT) 常量1 THRU (THROUGH) 常量2: 值(不)在常量1和常量2 构成的闭区间 · 另外,在WHEN 后面可以包含简单的关系表达式。 如: EVALUATE A WHEN => 10 EVALUATE B WHEN =
25、 1 OR = 2 OR = 3 语句 ···· WHEN OTHER 语句 ···· END-EVALUATE WHEN OTHER 语句 ···· END-EVALUATE. 13、另外,不同的COBOL系统提供了不同内部函数,建议少用内部函数,以下提供几个通用的内部函数· ORD 取得字符的ASICII码 如: MOVE FUNCTION ORD (“A”) TO NUMBER. UPPER-CASE 字母小写转换成大写 如: MOVE FUNCTION UP
26、PER-CASE (STRING(START:1) TO STRING(START:1)· LOWER -CASE 字母小写转换成大写 如: MOVE FUNCTION LOWER-CASE (STRING(START:1) TO STRING(START:1)· REVERSE 对字符串中所有字符进行倒序 如: MOVE FUNCTION REVERSE(STRING-1) TO STRING· LENGTH 取得变量的定义长度,如: COMPUTE LEN = FUNCTION LENGTH(STRING)二、PRO*COBOL基本語法 COMPLA使用的PR
27、O*COBOL是ORACLE公司提供的在COBOL程序中嵌入SQL语句的一种方法,使得程序方便地访问操作ORACLE数据库;PRO*COBOL程序经过ORACLE提供的预编译器预编译生成中间COBOL程序后,程序中所有的SQL语句直接调用ORACLE库函数,再经过COBOL编译器同一般COBOL程序一样编译生成各种可执行模块,由于程序中直接调用ORACLE库函数,所以它们访问操作ORACLE数据库的速度很快,基本语法如下。一、特点。 · 所有的SQL或数据库操作相关语句均被括在” EXEC SQL” 和 “END-EXEC”之间,并且它们只能包含一条语句,如: EXEC SQL SQ
28、L语句 END-EXEC. · 所有访问操作数据库的变量都必须是主变量。 · “EXEC SQL” ,”END-EXEC及其包含的语句都必须从12列或12列以后开始。三、 数据部内容。· 引用两个对象SQLCA, ORACA.EXEC SQL INCLUDE SQLCA END-EXEC.EXEC SQL INCLUDE ORACA END-EXEC. · 主变量定义。 EXEC SQL BEGIN DECLARE SECTION END-EXEC. (主变量定义开始) EXEC SQL END DECLARE SECTION END-EXEC.(主变量
29、定义结束) ·· 主变量都必须定义在这里,具体定义和一般的COBOL变量一样。 ·· VARCHAR型变量(可变长度). 该变量定义就是在X型变量后加关键字VARYING.如: 05 STRING PIC X(100) VARYING. 它实际包含两部分(预编译后的中间COBOL程序可见) 05 STRING. 06 STRING-LEN PIC S9(4) COMP. 06 STRING-ARR PIC X(100). STRING-LEN 表示字符串的实际长度,STRING-ARR 表示字符串的实际内容。 SQL语句中,只能用STRING. 从表中得
30、到值时,STRING-LEN 自动被赋值。 向表中写入值时,STRING-LEN 需要手工指定长度,SQL将STRING(1:STRING-LEN)部分有效字符串写到表中。 定义主变量时,引用COPY句: EXEC SQL INCLUDE WSIT1101.cpy END-EXEC. · 游标的定义可以放在数据中。四、 数据部中SQL语句的基本语法1)、错误扑获 ORACLE错误扑获是一个全局性的标志,在一个事务(在PRO*COBOL中,ORACLE事务以COMMIT或ROLLBACK为分割点)中,后一个错误扑获会覆盖前一个错误扑获设置。 · 遇到SQL警告(SQLCODE
31、 > 0 )继续EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC. · 遇到SQL错误(SQLCODE < 0 )继续EXEC SQL WHENEVER SQLERROR CONTINUE END-EXEC. · 遇到SQL错误(SQLCODE < 0 )跳转EXEC SQL WHENEVER SQLERROR GOTO ORA-ERROR END-EXEC. 2)、 数据连接 数据库连接在一般的项目开发中用不到,只用于测试程序中(不连接外部数据库) · 方式一(USERNAME 和PASSWORD分开
32、,如:USERNAME = “OPS$LAPROC51” PASSWORD = “LAPROC”)EXEC SQL CONNECT :USERNAME IDENTIFIED BY :PASSWDEND-EXEC. · 方式二(USERNAME 和PASSWORD合并,如:UID = “OPS$LAPROC51/LAPROC”)EXEC SQL CONNECT :UIDEND-EXEC.3)、 静态SQL语句 · 单条记录的检索EXEC SQL SELECT ENAME, SAL, COMMINTO :EMP-NAME, :SALARY, :COMMISSION:COMM-I
33、NDFROM EMPWHERE EMPNO = :EMP-NUMBEREND-EXEC. 注: 上例中的COMM-IND为指示变量,在检索操作中每个接受主变量都可指定一个指示变量(9(04) COMP型),它用来判断主变量是不是接受到一个空值(NULL)(主变量不能接受空值),当指示变量为-1时,表示对应的主变量应该接受到一个空值(主变量自己表示不出来) · 多条记录的检索(CURSOR 游标) ·· 游标的定义 EXEC SQL DECLARE CUR_NAME CURSOR FOR SELECT MSG_CD , MSG_1,MSG_2FROMWWWTMSG1
34、 END-EXEC. 游标的定义:将SQL查询语句声明为一个游标,不调用ORACLE库函数,不会更新SQLCODE的值。 ·· 游标的打开 EXEC SQL OPEN CUR_NAME END-EXEC. 游标的打开:用游标定义的SQL语句检索数据库,将检索结果生成一个游标对象,(此时游标指针在第一条记录前一位置,无法确定游标中有没有记录)。 ·· 游标中记录的抽取 EXEC SQL FETCH CUR_NAME INTO : HST-MSG-CD , : HST-MSG-1,:HST-MSG-2 END-EXEC. 游标中记录的抽取:将游标中的记录抽取
35、到相应的主变量中,一次抽取一条。 ·· 游标的关闭 EXEC SQL CLOSE CUR_NAME END-EXEC. 游标的关闭: 将现有的游标对象释放,游标再次打开前,必须关闭。 · 更新 EXEC SQL UPDATE WWWTMSG1 SET MSG_1 = : WK-MSG-1, MSG_2 = : WK-MSG-2 WHERE MSG_CD = : WK-MSG-CD END-EXEC. · 删除 EXEC SQL DELETE FROM WWWTMSG1 WHERE MSG_CD = : WK-MSG-CD END-EXEC ·
36、插入 EXEC SQL INSERT INTO WWWTMSG1(MSG_CD, MSG_1, MSG_2) VALUES (:WK-MSG-CD, :WK-MSG-1, :WK-MSG-2) END-EXEC · 事务的提交 ·· 方式一(释放连接) EXEC SQL COMMIT WORK RELEASE END-EXEC. ·· 方式二(不释放连接) EXEC SQL COMMIT WORK END-EXEC. · 事务的回滚 ·· 方式一(释放连接) EXEC SQL ROLLBACK WORK RELEA
37、SE END-EXEC. ·· 方式二(不释放连接) EXEC SQL ROLLBACK WORK END-EXEC. · 典型的SQLCODE值 ·· SELECT 1403 : 没有检索到记录 ·· FETCH(游标中记录的抽取) 1403 : 游标指针FETCH到游标的尾部 ·· UPDATE 1403 : 没有更新的记录 -60 : 死锁 -2049: 由于死锁导致系统超时 ·· DELETE 1403 : 没有删除的记录 -60 : 死锁 -2049: 由于死锁导致系统超时
38、·· INSERT -1 : 插入的记录已存在 -60 : 死锁 -2049: 由于死锁导致系统超时 · 典型ORACLE内部变量 SQLCODE : SQL语句运行后得到的返回值 SQLERRMC: SQL语句运行后得到的返回信息 SQLERRD(3): SQL语句运行处理的记录条数 4)、动态SQL语句 · 动态一(直接执行SQL字符串) ·· 方式一 MOVE "INSERT INTO DYN1 VALUES ('TEST')" TO DYNSTMT.EXEC SQL EXECUTE IMME
39、DIATE :DYNSTMT END-EXEC.·· 方式二EXEC SQL EXECUTE IMMEDIATE "INSERT INTO DYN1 VALUES ('TEST')"END-EXEC. 动态一:只用于没有任何参数和返回结果的SQL语句操作 · 动态二(用于非检索SQL语句) ·· 方式一(带参数)MOVE "INSERT INTO EMP (EMPNO, DEPTNO) VALUES (:V1, :V2)" TO DYNSTMT-ARR. EXEC SQL PREPARE
40、S FROM :DYNSTMT END-EXEC. EXEC SQL EXECUTE S USING :EMPNO, :DEPTNO1 END-EXEC. 其中V1,V2为形参,S为PREPARE生成的临时对象 ·· 方式二(不带参数) STRING "INSERT INTO " DELIMITED BY SIZE "EMP (EMPNO, " DELIMITED BY SIZE "DEPTNO) " DELIMITED BY SIZE "VALUES ( '" DELIMITED BY
41、 SIZE EMPNO DELIMITED BY SIZE "' , '" DELIMITED BY SIZE DEPTNO1 DELIMITED BY SIZE "' ) " DELIMITED BY SIZEINTO DYNSTMT.EXEC SQL PREPARE S FROM :DYNSTMT END-EXEC.EXEC SQL EXECUTE S END-EXEC. · 动态三(用于检索SQL语句) ·· 方式一(带参数) MOVE "SELECT ENAME FROM EMP W
42、HERE DEPTNO = :V1"TO DYNSTMT.EXEC SQL PREPARE S FROM :DYNSTMT END-EXEC.EXEC SQL DECLARE C CURSOR FOR S END-EXEC.EXEC SQL OPEN C USING :DEPTNO END-EXEC.EXEC SQL FETCH C INTO :ENAME END-EXEC.EXEC SQL CLOSE C END-EXEC. ·· 方式二(不带参数) STRING "SELECT ENAME FROM " DELIMITED BY SIZE
43、"EMP WHERE DEPTNO = '" DELIMITED BY SIZE DEPTNO DELIMITED BY SIZE "' " DELIMITED BY SIZEINTO DYNSTMT.EXEC SQL DECLARE C CURSOR FOR S END-EXEC.EXEC SQL OPEN C END-EXEC.EXEC SQL FETCH C INTO :ENAME END-EXEC.EXEC SQL CLOSE C END-EXEC. 所有的检索SQL语句都必须采用游标方式。 三、开发环境一、概要 Compla项目
44、的开发环境 · 以HP UNIX 为操作系统 · 以 OPENTP1 SERVER(日立制品)为APPLICATION SERVER,COMPLA所有的程序都基于OPENTP1. · 以MQ SERVER(INFOR STAR MQ ,IBM MQ的改造品)完成异步通信方式。 · 以 ORACLE SERVER 为数据库系统 二、通信处理方式 Compla项目采用两种处理方式RPC(同步),MQ(异步). · MQ(Message Queue)方式 如上图所示,AP制御以SUP的方式常驻于OPENTP1下,监视受信MQ SERVER,受信MQ
45、SERVER中一有MQ数据,AP制御就取出来,传给DB同期更新程序进行处理,更新关联DB,发信方和受信方以受信MQ SERVER隔离,互相不影响,完成异步处理,在项目开发中,主要开发DB同期更新,不涉及具体环境。 · RPC (Remote Process Call )方式 RPC方式为OPENTP1 SERVER 提供的进程间访问方式,由SUP( Service Use Process) 和 SPP ( Service Provide Process)组成。Compla项目就是制作若干SPP,常驻于OPENTP1中,供其它系统调用。如下具体介绍SUP 和 SPP的基本结构和基本函数
46、. ·· SUP (服务使用者) ··· RPCOPEN (開始) 01 RPC-OP-ARG. 02 REQEST PIC X(8) VALUE 'OPEN '. 02 STATUS-CODE PIC X(5) VALUE SPACE. 02 FILLER PIC X(3). 02 FLAGS PIC S9(9) COMP VALUE ZERO. CALL 'CBLDCRPC' USING RPC-OP-ARG. 进入OPENTP1 环境··· RPC ADM(開始処理完了報告) 01 ADM-ARG. 02 REQUEST PIC X(8) VALUE 'COMPLETE'. 02 STATUS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国联合网络通信有限公司北京市分公司校园招聘40个岗位笔试题库历年考点版附带答案详解
- 2025中国五矿集团有限公司所属单位岗位合集笔试题库历年考点版附带答案详解
- 2025年网络安全行业网络攻防技术与网络安全威胁防范研究报告
- 2025年绿色科技行业低碳技术创新与环保产业链研究报告
- 2025年数字支付行业人脸识别支付安全性研究报告
- 2025江苏常州市机关事务管理局下属事业单位招聘幼儿教师2人笔试参考题库附答案解析
- 2025年安徽职业技术大学招聘41人笔试模拟试题及答案解析
- 2025年9月贵州黔东南州施秉县公益性岗位招聘6人笔试模拟试题及答案解析
- 2025广西柳州市社会福利医院编外聘用人员招聘19人笔试备考题库及答案解析
- 2025年口腔医学口腔溃疡诊疗方案设计模拟测试卷答案及解析
- 工程施工项目个人合伙协议书
- HGT 4686-2014 液氨泄漏的处理处置方法
- 《答谢中书书》教学设计
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 愚公移山说课稿讲解课件
- 《城市的起源与发展》课件
- 中职英语 基础模块2 Unit 8 Green Earth
- 4.CSR社会责任法律法规合规性评价表
- 小学生解决万以内退位减法错误类型及影响研究
- GB/T 14294-2008组合式空调机组
- 福建师范大学2023年815写作与翻译考研真题(回忆版)
评论
0/150
提交评论