2006年12月26日星期二

入职纪念~

呼呼,这次进XXX日子很有意思哦 ......
2006-12-25 签约
2006-12-26 入职
2007-01-01 签约正是履行日

2006年12月15日星期五

急!急!急!

上周我还在辞职后的悠闲中逍遥自在,现在终于退缩了。公司的拖字让我彻底绝望。我真想过去给老X说,你看看,我为什么辞职。这种工作态度,这种工作节奏已经成了公司的一种风气,一种习惯。这样你留下来的人都是什么人,自己想去吧。
但是毕竟我不是老板,也许他们有自己的考虑吧。
着急!急躁!躁气!气大!!!!!!!!!!!
留个心情的印记,老汉我回家看碟去,让烦恼永远留在这里吧。

2006年12月13日星期三

让领导先走


几天的报道唤醒我沉睡的记忆。12年前克拉玛依的大火,我是知道的。然而当时年幼的我对于数字的生命是没有任何体会的。记得有句话,原话忘了,但是意思还是很清楚:一个生命的消失是一个悲哀,然而许多生命的消失却只是个数字。
“让领导先走!!!”没有人去证实这个传言的证实与否,一个不争的事实是,当天参加活动并就坐前排的克市领导、教委领导几十人都成功逃生,没有一人死亡。死的都是孩子们、老师们以及外地来克市参加会议的同志们。

当我看到那“浓厚的血水不断往外滴落”,我感觉我看到了那一幕,那一滴滴的深黑色的血在不住的往下滴流,然而她似乎毫无察觉的躺在消防战士的怀里,眼里没有痛苦,却有着无奈和恐惧....
数字代替了生命,但是人我们不要忘记这些生命,从不要忘记这些数字开始:每一个数字是一个曾经美丽的生命,每一个数字是曾经快乐的人生,每一个数字都有一个独特的名字。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325
他们曾经拥有生命,正如那些“领导”一样,正如你我一样。

详见http://diygrass.blogspot.com/2006/12/blog-post_12.html

痛苦的老姐

当我们面对自己时,谁都会胆怯,因为这场战争似乎没有胜利,失败的不是“我”就是“我自己”;
当我们面对迷雾时,谁都会迷失,因为这条小路似乎没有出口,行走的路途与寂寞相伴;
当我们面对悲哀时,谁都会痛苦,因为这种感觉似乎来自内心的破裂,滴滴泪水只是点点回忆;

那么,我们如何生活?
没有答案,没有结果,有的就是过程,就像生命的本身。

自己总是要面对的;迷雾未必散去,但是小路也未必没有出口。
心灵的破碎没有无缝的胶水,但是为什么要一颗无暇的心呢,一颗有着淡淡伤痕的心也未必不是颗美丽的心,就像古时的裂纹釉,密疏的龟裂正是她美丽的来源。




当我将这些字留在老姐的blog上的时候,我也在面对自己,我也在迷茫,我的心也在痛苦。
我该怎么帮助她啊!!!

2006年12月8日星期五

辞职后感想



辞职后最大的感触就是轻松,打心底的轻松。
说实话,感觉这几天上班像去熟悉的网吧,就是和熟悉的人一起上上网。
但是工作移交的却有点烦躁。首先是拖,我一直奇怪,怎么会拖呢,难道公司不需要我留下任何东西?后来才明白拖是因为不知道让我留下什么好,谈话的意思,不仅仅要留下文档,有些东西要教会别人怎么用。晕倒,这个“教会”很有挑战啊。而且我在公司后期做的大多是linux、aix、os400的东西,这个要是让我在一个月内教会他们,我觉得我不用去XXX了,直接去大学教书好了。
不过,倒也不是烦恼的事,越是给的虚越是可以虚的还,呵呵。
以前看网页说,辞职后的一个月最难过了,说是心里别扭什么的,我倒觉的豁然开朗,心情舒畅,看来这家公司后期确实给我留下了很难以挥去的不舒服。现在唯一不爽的是要考虑去了XXX要做的事,还没去那就开始紧张了。这和这儿的自由散漫成鲜明的对比啊。

2006年12月7日星期四

CICS FOR NT 安装(转)

转自:http://blog.csdn.net/chaozhiping/archive/2006/05/29/759949.aspx
原创作者:晁智平 (如转贴请保留这行)

由于公司的CICS服务器是AIX的操作系统,不方便回家学习,所以想在2000下安装一下CICS服务程序。

虽然已经开发了近一年的CICS中间层的程序了,但大部分底层的代码都被封装好了,开发时的确很容易,可对真正的CICS的运作机制不是很清楚,于是在安装前阅读了关于CICS的一些文章。其中收益最大的是IBM网站的Txseries NT 中文版及刘睿的easycics相关的文章。结果发现在文章的最近居然有我们技术总监的名字。大概总结一下有以下几点:

1:CICS是基于事务的中间件同Tuexdo相同,而MQ是基于消息的中间件。

2:由于历史上的原因(主要开始不是IBM开发的)CICS用到了Encina的一些代码,而Encina又利用了DCE的代码。所以在安装CICS服务端之前必需要安装DCE,(Encina是和CICS在一起的)。

3: CICS服务器又分两大类:一是普通的连接方式,另外一种是支持XA协议(XA是一种标准,其功能是将本地程序的操作看成一个事务,可以回退本次程序中所以的数据库操作),而支持XA的在启动时会和数据库建立连接。CICS又支持两种XA,一是两阶段提交,即要先prepare,再commit,另外一种是一阶段提交,只做commint。

4:在CICS服务器上运行的程序是内嵌在cicsas进程中的,cicsas是服务器启动时生成的进程。程序动行完之后会让出cicsas以便其它的进程来运行。注意的是cicsas并不会退出,所以在XA的环增中,对数据库运行环境的修改应在退出之前恢复,否则会对后来的程序产生影响。

5:CICS提供的一些API函数供调用,但相对来说比较复杂,而easycics便是对这些复杂的API封装后的结晶。使得CICS现在仍有一小部分的市场。

得知以上几点CICS的性质后,就准备以下的必要的安装软件

1:Txseries Nt 4.3其中包括CICS,和Enina

2:DCE2.2

3:informix client 2.7

4:Txseries和DCE的最新prf(pack)

首先安装DCE2.2 for nt,但在安装的过程中总是报netbios interface must be install,起初以为是杀毒软件的问题。于是卸载了杀毒软件。还是不行,又去IBM网站上查看关于CICS FOR NT 的文档,说在安装前要先安装NETBIOS服务。(这个是NT操作系统下的操作),于是在2000下将所有的协议,服务都安装上去了发理还是不行。历经几天的查找,最后在IBM网站的一个文档中找到了解决的方法。原来是要先设置环境变量先。设置如下 DCEKitDebug=-NoChecks COPYCMD=/Y。搞定后安装Txseries,然后再打上PACK,安装就基本结束。

接下了需要做的是配置CICS。

安装的详细说明
1:安装DCE2.2之后重启。
2:再安装TXSERIES4.3其中在安装过程中后报一个错误不用理会,按OK继续,重启。
3:打补丁顺序依次为DCE,CICS,ENCINA重启N次。
4:创建DCE:
cicscp -v create dce -R

创建SFS_Server:
cicscp -v create sfs_server /.:/cics/sfs/MARS

启动SFS_Server:
cicscp -v start sfs_server /.:/cics/sfs/MARS
注:第一次启动时后报无法访问类 ssd 的运行时数据库节文件没关系。

创建区域(region):
cicsdefault -r Test -S
cicsupdate -c rd -r Test DefaultFileServer=/.:/cics/sfs/MARS
cicscp -v start region Test StartType=cold
请注意大小写,参数是区分大小写的。用cicstail -r Test查看日志,如果有

CICS已成功启动则说明非XA的CICS安装成功。TXSERIES管理界面上的状态有时

候不准确。
5:创建XA连接的CICS。
XA连接的CICS是指在CICS启动子进程时就连接数据并启动一个事务。为编写中间层程序减少

了一定的工作量。CICS是通过开关装入文件(switch load file)按约定好的接口调用以达到连接数

据库的目的。所以如何生成switch load file 是最重要的环节。在CICS目录的scr/example下有db2,

oracle生成开关装入文件的源代码,编译的时候只需注意一下路径就行了。下面举的例子是如何

生成informix的开关装入文件。
a:首先安装informix client和encina的开发包。
b:再查看一下db2的源代码,因为informix和db2都是IBM的产品,想必相似性会非常大。发现源代

码里的内容并不复杂,大体上是提供了几个方法以供CICS调用,于是将db2的源代码拷过来,

然后将框架拷贝过来。根据ESQL的语法将源代码的实现部分替代掉(也可以参数AIX的CICS版本

在CICS目录的src\example\RM_support\Informix下面有inform1pc.ec)。编译的时候需要增加的include

目录为informix/incl/esql,cics/include,encina/include.需要增加的lib目录为informix/lib,cics/lib,encina/lib,

需要增加的引用lib为isqlt09a.lib libcicsrt.lib libEncina.lib regxa_swxa.obj libEncServer.lib。由于开关装入

文件是以DLL形式使用的所以Use run-time library 要选 Multithreaded DLL,即编译选项为/MD。需要注

意的一点是开关装入文件的函数调用方式必须要是__cdecl否则在启动的时候会产生异常。编译的时

候会在struct xa_switch_t noxaswitch 后的那几个函数处报调用类型不匹配的错误。(可能是我的PACK

不够新)这样就要修改encina\include\tmxa\xa.h内的struct xa_switch_t {定义里ENCINA_XA_CALLING的改

为__cdecl。生成成功后将其拷入CICS目录内。

c:在增加的CICS域上增加产品,将开关装入文件加进来,初始化字符串就是在开关装入文件中的

no_xa_open方法的参数,反正能连上数据库就行这里用的是test@ontest。完成后单击永久就OK了,

当然还可以用命令的方式来添加,这里我就不详细描述了。还要配置环增变量,在

var/cics_region/Test/environment下增加两行,INFORMIXSERVER=ontest,INFORMIXDIR=$(INFORMIX)

(客户端的安装路径)。


d:用启动CICS域的命令启动CICS,发现有连接到 'Single Phase Informix',XA OPEN 已完成,并CICS启动

成功则说明已成功建立XA的CICS连接的域了。

欢迎共同学习chaozhiping1亿唐邮箱 晁智平。

CICS概述(转)

转自http://sse0308.blog.sohu.com/9351604.html

1、CICS(Customer Information Control System)客户信息控制系统使IBM公司的联机事务管理系统。 事物包含四个属性,即ACID属性:原子性(Atomicity)、一致性(Consistency)、孤立性(Isolation)、持久性(Durability).

2、CICS家族之所以强大,是因为:

1)它具有商务级事务管理器要求的整合性、可恢复性、安全性和可用性,是个强有力的联机事务处理管理系统;
2)CICS提供跨平台的API,形成可移植的应用和开发技术;
3)它跨平台的广泛的可操作性,即它的跨系统通信ISC(Intersystem Communication)能力。

3、CICS事务处理过程
既然CICS是OLTP系统,它应该是面向终端的系统。那么CICS是如何处理事务的?它应该包含如下三步:
(1) 提交事务交给CICS;
(2) 处理工作;
(3) 当工作完成后终止和清除。

绝大多数事务是从终端进入cIcs的。当一个事务从终端进入门Cs,CIcs初始化一个任
务(Task)来处理该消息,并且创建用于表示该任务的控制块。基于已有的在该clcs区域的资
源定义,clcs确定该事务所用的程序,并将该程序装载于内存。而程序中的EXEc cICs命令
则是要求服务。还可以通过其他途径来初始化任务,但终端输入是最普通的一“种。
clcs是通常作用的事务管理系统,具有终端管理、任务管理、安全管理、程序管理、文件管
理、队列管理、恢复管理和系统服务(如存贮、时间、APl)等管理功能。
CICS任务处理过程如下:
假如用户从终端输入或从菜单选择事务INQY,INQY的事务程序为PROGl终端管理,
则请求创建一个任务(船sk)来处理该事务》
(1)任务管理确定事务的ID是否在CIC5区域中定义,如果否,发出错误信息。
(2)如果事务ID已定义,任务管理请求存贮并且创建表示任务的控制块。
(3)如果事务ID是被安全保护的,cICS验证用户的使用权限。
(4)该任务需要运行应用程序,事务定义中应该包含要执行的第一个程序名PROGI。
(5)在程序定义表中找所要运行的应用程序阳OGl的定义(其定义指明了该程序的实
现语言)。如果程序PROGl不在内存,程序管理则申请内存将其从程序库装入内存。
(6)CICS复制该程序PROGl的工作存储区到与该任务(ta5k)相关的另一存储区。允许
PROGl的单独程序副本被多任务共享。
(7)EU(EXEC Interface Progfam)接受程序请求并且返回异常条件和其他EIB(ExEC
Interface Block)信.富,
(8)如果执行程序prog1发出EXECCIC5READ命令来读文件,文件管理则对VSAM
发出读iZ录的请求。
(9)应用程序常常利用基本映原支持(BM5)来发出已格式化数据到终端。
(10)对V5八M数据集的改变,会被建立日志以便失败时恢复。
(11)当任务结束时,控制返回给clcs。所有与该任务相关的存储被释放
内存,直到无任何任务使用它和该空间要使用为止。

4、编程接口
1) 开发语言
与编写其他程序一样,可用COBOI、C、C十十、Assembler、PL/l来编写CICS的应用程序
其中大部分处理逻辑用标准语句编写,一部分功能要用到CICs的命令。
2) 命令格式
 (1)举例如下: 
EXEC CICS SEND FROM (MSG-AREA) LENGTH (5) END-EXEC
关链字 功能 选项 参数 选项 参数 分隔符
以上命令是向终端发送长度为5的MsG—AREA信息。
 (2)读和修改vsAM文件的命令为:
EXEC CIC5 READ FILE ('FILEA') INTO (CUSTOMER—REC) RIDFLD (CUSTOMzR—NUM)

1.7. 输入和输出

1.7. 输入和输出

软件环境真正科学的环境以某些场合下某些人(譬如,不是什么委员会员)提出一个概念上简单但是内涵却丰富的见解而趋向快速且深刻的发展。UNIX的输入输出规则就包含属于这种见解,它属于类似LISP语言的一流创新,以及关系数据模型和面向对象程序。

UNIX I/O规则是建立在两个出色的简单见解上。首先,文件I/O采取任意长度和排列字符的形式。与之相对的是,一些陈旧的过时的文件系统复杂的I/O规则(譬如,“block”,“record”,“card image”等等。)。其次,所有在系统中的物品或接受的数据都处理为一个文件;这包括如磁盘和终端的硬件设备。陈旧的文件因设备而不同。以上两种意见使系统programmers’非常舒适。

1.7.1. 标准 I/O

根据约定,UNIX程序都有一个称为标准输入的方式接受输入,一个称为标准输出的方式输出,以及一个称为标准错误(standard error output, usually shortened to standard error)输出的方式输出错误信息。当然程序可以有更好的方式输入输出方式,详见Chapter 7

标准I/O是为终端用户首个拥有明确设计的规则,而非通常使用的涉及打孔机的旧风格。正因为UNIX shell提供了用户接口,所以shell能设计的和标准I/O非常完美的结合也就不足为奇。

所以的Shell掌控标准I/O的基本方法都是同样的。每个您在终端或者工作站调用的程序都有三个基本I/O通道,标准输入是您的键盘,标准输出或错误使您的屏幕或者窗口。譬如,mail工具在标准输出上显示您的消息,而且当您使用它发消息给其他用户时,它从标准输入上接受您的输入。这意味这您在显示器上查看消息并在使用您的键盘输入新的消息。

若是有必要,您可以重定向输入和输出或是用一个文件来代替。若是您想要发送某人一份内容为已存在文件的邮件,您可以重定向邮件的标准输入使它可以读入文件来代替您的键盘。

您还可以使用通道符连接程序,使用一个程序的标准输出直接定向到另一个程序的标准输入;譬如,您可以使用邮件的输出定向到lp程序以便消息可以替代显示在显示器上而打印出来。

这使得使用UNIX工具创建模块或者大程序成为可能。很多UNIX有用程序使用这种方法:他们分别从输入文本过滤操作中得到特别类型的输入来执行。虽然这不是UNIX工具的规范,但他是shell使用的生产力。比较流行的过滤工具在Table 1-5列出。

Table 1-5. 流行的 UNIX 数据过滤工具

工具

意图

cat

拷贝输入到输出

grep

从输入中搜索字符串

sort

将输入按行排列

cut

从输入中取出一列

sed

Perform editing operations on input(在输入中完成编辑操作)

tr

Translate characters in the input to other characters(转换输入字符到另一个字符集)

您也许使用过这些工具或者注意到他们可以使用输入文件的名称作为参数且在标准输出上产生输出。您可能不知道,不管如何,所有这些工具(包括其他UNIX工具)若是您忽略参数便接受从标准输入的输入。[13]

[13] 若是特别的UNIX工具不接受您使用文件名参数的标准输入,试着使用减号(-)作为参数。一些UNIX系统提供标准出入为文件,所以您可以试着提供文件/dev/stdin作为输入文件参数。

譬如,最基础的使用是cat,一个简单拷贝输入到输出的工具。若是您输入cat跟随文件名参数,它会在您屏幕上打印出文件内容。但是若是您没用参数的调用它,它会等待标准输入且拷贝其内容到标准输出上。尝试下:cat会等待您输入一行的文本;当您输入回车,cat会返回您重复文本。停止这个过程,在一行的开始点击CTRL-D。当您输入CTRL-D您会看到^D。以下为可能看到的内容:

$ cat
Here is a line of text.
Here is a line of text.
This is another line of text.
This is another line of text.
^D
$ 

1.7.2. I/O Redirection(I/O重定向)

cat是英文单词连接(catenate的简写,也就是连接起来。它接受多个文件名参数且拷贝他们到标准输出。但是让我们现在假装,cat和其他工具不接受文件名参数而只接受标准输入。正如我们上面所说,shell使您重定向标准输入为一个文件。符号 < 文件名 达到此效果;它设置事务在终端由文件替代标准输入。

譬如,若是您有一个文件叫cheshire包含了写文本内容,那么cat <>会显示cheshire的内容到您的终端上。sort <>会以行排列cheshire文件的内容并显示到您的终端上(记住:我们假装这些工具不接受文件名参数。)

同样的,命令 > 文件名 导致命令的标准输出重定向到命名的文件上。著名的“标准”例子是date > now date命令打印出当前的日期和时间到标准输出上;先前的命令保存输出到一个称为now的文件上。

输入和输出重定向可以组合起来。譬如:命令cp是通常用来拷贝文件;若是因为一些原因它不存在或者出错,您可以使用cat来完成:

$ cat <  file1  >  file2 

这与cp file1 file2相似。

1.7.3. Pipelines(通道行)

将命令重定向输出为另外命令的替代文件的标准输入也是可能的。这种概念叫做通道(pipe),符号为|。命令行包含由通道联系的两个或更多命令叫做通道行。

通道经常使用在more命令中,这个命令除了会一屏一屏的显示输出外和cat很相像,它暂停以等带用户输入,SPACE(下一屏),RETURN(下一行),或者其他命令。若是您在一个有很多文件的目录下,想要详细的看到他们,ls –l |more会每次为您显示详细的清单。

通道行(Pipelines)可以非常复杂,并且他们可以与其他的I/O定向符整合。每次想要在一屏下排列文件cheshire清单,输入sort <>。想要打印这些来代替您终端上的显示,输入sort <>。

这有很多复杂的例子。文件/etc/passwd储存了UNIX系统中关于用户的信息。此文件每一行包含用户的登陆名(login name,用户标识(user ID number,加密密码,主目录,登陆shell,和其他信息。每一行的第一部分是登陆名;每部分由冒号(:)来区分。这一行犹如:

cam:LM1c7GhNesD4GhF3iEHrH4FeCKB/:501:100:Cameron Newham:/home/cam:/bin/bash

要得到所有用户的排列清单,输入:

$ cut -d: -f1 < /etc/passwd | sort

(实际上,您可以忽略<,因为cut接受文件名参数。)这个cut命令从输入分离出首个由冒号分离(-d:)的部分(-f1)。全部的通道行会像如下这样显示:

adm
bin
cam
daemon
davidqc
ftp
games
gonzo
...


若是您像发送这些清单定向到打印机(代替您的屏幕),你可以像这样扩充通道行:

$ cut -d: -f1 < /etc/passwd | sort | lp

现在您会明白I/O定向和通道行如何支持UNIX建立模块理论。这些符号是非常简单和且强大。最重要的是,通道概念排除了用来为其它命令保存输出所需要的凌乱临时文件。

譬如,为了在其它操作系统(assuming that equivalent utilities are available...)命令行上做于同样的排列事情,你需要三个命令。在DECVAX/VMS系统上,他们显示类似这样:

$ cut [etc]passwd /d=":" /f=1 /out=temp1
$ sort temp1 /out=temp2
$ print temp2
$ delete temp1 temp2

经过充分的实践,您会发现您自己可以熟练输入强大的通道行命令,在一行内可以包括多个命令(以及临时文件)来完成系统操作。

2006年12月6日星期三

希望

拥有希望,即使在夕阳中也可以看见明天的太阳!!!

机会

最近接触的东西越来越多了,多的自己觉得有点恐怖从以前的Domino、Sametime、.Doc 到Workplace、portal、websphere到DB2、AIX、AS400到ClearCase、ClearQuest、tiovli到现在竟然要看CICS。呼呼,IBM的产品线几乎都接触了。
可惜没有一个产品我能站这说这个简单,我是专家。我差的就是这个。希望去了XXX后能有一天我可以首先从自己认为我掌握了一个方向。
这次去XXX的机会真是想都没有想到。在等待的这几周里我甚至有时候想,不会是我有高度犹豫症,人家没有打电话来,是我自己虚构的吧。
一直期盼的机会来了,但是能不能把握住还要看自己了。
千万别再像大学一样,让我后悔一辈子!!!
加油!战胜自己!

2006年12月1日星期五

联拓两年纪念日

来联拓两年了,除了这几个月极度不配合,不工作以外~其它的日子还算是学习的日子,留言以记录吧~