PL/I编译器版本

PL/I编译器的版本,如下所示:

Product code    Product name           Compiler “signature”      Module prefix
360S-NL-511     S/360 OS PL/1 (F)                 ‘   ‘                          IEM,IHE,IHL
5734-PL1          OS PL/I OPTIMIZING COMPILER V1  5734-PL1           IEL,IBM
5734-PL2          OS PL/I CHECKOUT COMPILER
5734-PL3          OS PL/I Opt Comp Lib Kanji Name Support
5668-909           OS PL/I V2 (COMP/LIB/TEST)
5668-910           OS PL/I V2 (COMP/LIB)                 5668-910                IEL,IBM
5668-911           OS PL/I V2 (Library) IBM
5688-235           PL/I for MVS AND VM V1               5688-235                IEL,IBM
5655-B22           VisualAge PL/I for OS/390 V2       5655-B22               IEL,IBM
5655-H31           Enterprise PL/I for z/OS V3         5655-H31                IBM

原链接请参照:http://gsf-soft.com/Documents/PRODCODES.shtml

编译完PL/I程序之后,在生成的loadmodule二进制文件里面查找Compiler signature(如5655-235),对照上表即可知道编译器的版本。

分享到:

用PIC型中间变量解决Fixed赋值溢出abend

我在Debug一个PLI程序PRGM000的时候遇到了一个CEE34A abend,报的错误信息如下:
You were prompted because the CEE34A condition was raised in your
program.
CEE34A is a severity or class 3 condition.
The operating system has generated the following message:
CEE3210S The system detected a decimal-overflow exception (System
Completion Code=0CA).
The current location is PRGM000 ::> PRGM000 :> 2688.

不废话,直接上截图:
CEE3201S 0CA abend

从图上可以看出,出错的语句是:TBL_KEY1.TRADE_DATE = COMM_AREA.TRADE_DATE

我们来看二者的定义:
COMM_AREA.TRADE_DATE的定义:
1 COMM_AREA
2 USER_AREA,
...
5 TRADE_DATE FIXED(9), /* 20110901 */
...;

TBL_KEY1.TRADE_DATE的定义
DCL 1 TBL_KEY1
3 SPARE_CLIENT CHAR(4),
3 IDENT_ID CHAR(9),
3 TRADE_DATE FIXED(7),
3 NUM FIXED(3);

所以很明显,发生abend的原因是把一个FIXED(9)的值赋给了一个FIXED(7)的变量,从而产生了溢出。

下面是解决办法:
定义一个PIC类型的中间变量”PIC_TRADE_DATE_9″做转换桥梁:

DCL PIC_TRADE_DATE_9 PIC '(9)9' INIT(0);
PIC_TRADE_DATE_9 = COMM_AREA.TRADE_DATE;
(值:020110901)        (值:20110901)
TBL_KEY1.TRADE_DATE = SUBSTR (PIC_TRADE_DATE_9,4,6);
(值:110901)          (值:110901)

到这里,问题已经得到解决。
(ps:谁能知道wordpress如何能保持代码的对齐啊?晕死的这个…)

分享到:

wordpress博客搬家

这两天换了个空间商,不免要亲历Wordpress博客搬家过程。发现多数的空间商用的虚拟主机后台管理面板都是齐刷刷的”StarOut FreeHost System”,即星外虚拟主机管理平台,MySql数据库的高级管理面板呢,都是齐刷刷的“phpMyAdmin 2.7.0-pl1”,这些无疑都为网站搬迁带来了方便。

由于不涉及到更改域名,那么本人的wordpress博客搬迁,归纳起来可以归结为以下4件事:

1、网站文件的搬迁
要将网站的所有文件和网页都从旧服务器搬迁到新服务器,可以使用星外虚拟主机管理面板里面自带的“网站搬家”功能,搬家过程中,您可以在/db/ftplog.txt文件中看到整个搬家的命令操作过程。不过我在使用过程中貌似有出现过搬的不彻底的情况,所以,我还是用FTP软件,将本地备份好的整个网站传到新服务器。由于文件数目过多,传输很慢。所以,可以使用管理面板中“在线压缩/解压”的这个功能,首先在本地将整个网站文件压缩,用ftp传到/db文件夹下,然后再在管理面板解压到/web目录下,这样就快多了。

2、网站数据库的搬迁
wordpress的数据库中一般有10个wp_开头的表:wp_comments、wp_links、wp_options、wp_postmeta、wp_posts、wp_term_relationships、wp_term_taxonomy、wp_terms、wp_usermeta、wp_users。这里不详细说这些表的具体用途(从表名也能猜出个大概吧),还有其他的表的话应该是你安装的插件生成的表。
首先,登陆你旧服务器,在数据库高级管理中利用phpMyAdmin 2.7.0-pl1将整个数据库(即上述10个表的数据)下载下来,然后登陆新的服务器,同样利用phpMyAdmin 2.7.0-pl1将收据库导入即可。

3、修改数据库信息文件
在/web/wp-config.php中对数据库名,用户名/密码,数据库ip做相应修改。

4、域名重新设置解析
登陆你的域名注册商网站,在DNS解析设置中,将解析IP从旧ip改成新虚拟主机的IP。

如果不出什么意外的话,执行完上面4步,你的wordprss博客应该算搬迁完毕了。由于我之前利用“cos-html-cache插件+自定义404.php页面” 来实现了伪静态,所以我还必须在新虚拟主机管理面板中将默认的404页面改成使用自定义的404出错页面,否则,会出现很多链接无法访问的现象。如果你没有使用“cos-html-cache插件+自定义404.php页面”,那么就可以省略这一步了。

分享到: