CICS配置管理TIPS

CICS配置管理TIPS

配置CICS

Forked from http://gejoin.com/2016/01/02/CICS-management-tips.html

配置 CICS REGION:

cicscp -v start sfs_server SFS_NAME	
cicscp -v create region REGION_NAME DefaultFileServer=

配置 RD:

cicsupdate -c rd -r REGION_NAME XPRecvTimeout=300 
cicsupdate -c rd -r REGION_NAME MinServer=30 
cicsupdate -c rd -r REGION_NAME MaxServer=80 
cicsupdate -c rd -r REGION_NAME MaxRegionPool=62914560 
cicsupdate -c rd -r REGION_NAME MaxTaskPrivatePool=20971520 
cicsupdate -c rd -r REGION_NAME MaxTSHPool=41943040
cicsupdate -c rd -r REGION_NAME TraceFlagMaster=on 
cicsupdate -c rd -r REGION_NAME TraceFlagSystem=on 
cicsupdate -c rd -r REGION_NAME TraceFlagUser=on AllowDebugging=yes

其中 REGION_NAME 需更改为您的 CICS REGION 名称。

配置 LD:

cicsadd -c ld -r REGION_NAME LD1 TCPAddress="backend_server" TCPService="tran-host" SNAServerTransport=TCP

其中 backend_server 是后端服务器的 IP 地址。
添加以下行以编辑 /etc/services 文件:

tran-host port_number/tcp

其中 port_number 是端口号。请确保此端口号与 /etc/services 文件中的其他端口号不冲突。

配置环境变量:

添加以下行,编辑/var/cics_regions/REGION_NAME/environment

COBPATH=/user/bin:/usr/lpp/cobol/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11
CICS_PROGRAM_PATH=/home/cbod/cbodload/load:/usr/lpp/cics/lib:.
DB2INSTANCE=db2inst1
COB_CPM_SIZE_MAX=0
EXTSHM=ON
DB2NOEXITLIST=ON

配置 WD:

cicsupdate -c wd -r REGION_NAME MDCL Permanent=no RecoverTerminal=no
cicsupdate -c wd -r REGION_NAME MDCI Permanent=no RecoverTerminal=no 配置WD

配置 TD:

cicsadd -c td -r REGION_NAME TCCZ ProgName="DFHMIRS" Timeout=5 TWASize=32767
cicsadd -c td -r REGION_NAME INQY ProgName="GCCBINQY" Timeout=5 TWASize=32767
cicsadd -c td -r REGION_NAME TCCA ProgName="GCCBMMN" Timeout=5 TWASize=32767 TWASize 大小不能忽略。

配置 PD:

cicsadd -c pd -r REGION_NAME GCCBMMN PathName="GCCBMMN" RSLKey=public
cicsadd -c pd -r REGION_NAME GCCBINQY PathName="GCCBINQY" RSLKey=public
cicsadd -c pd -r REGION_NAME GCCBCOP PathName="GCCBCOP" RSLKey=public 添加PD 查看和删除PD方法类似。

配置 XAD

cicsadd -c xad -r REGION_NAME cicsdb2 SwitchLoadFile="/usr/lpp/cics/bin/db21pc" XAOpen="DBNAME,USER_ID,PASSWORD"

其中 REGION_NAME、DBNAME、USER_ID 和 PASSWORD 需相应地替换为您环境中的信息。

配置 CTG:

要配置 ctg.ini 文件,请在 /opt/IBM/cicstg/bin/ctg.ini 文件中添加以下行:

SECTION SERVER = REGION_name
            UPPERCASESECURITY=N
            PROTOCOL=TCPIP
            NETNAME=IP_address
            PORT=port_number
            CONNECTTIMEOUT=0
            TCPKEEPALIVE=N
ENDSECTION
  • 其中 REGION_name、IP_address 和 port_number 需相应地替换为您环境中的信息。
  • 使用 root 用户帐户完成以下步骤以重新启动 CTG:
    • 运行 cicscli -s 命令以启动 CTG。
    • 可选: 要验证是否已成功启动 CTG,请运行 cicscli -l 命令。

停启CICS

cicscp -v stop region REGION_name
cicscp -v start region REGION_name StartType=cold

——–
IPC支持
EXTSHM=ON

DB2NOEXITLIST=ON

Db2中出现的超时产生core : Transaction ‘CPMI’, Abend ‘A147’, at ‘???’.
以及对于一些莫名产生core信息只能看到数据库断开信息如:
IOT/Abort trap in pthread_kill at 0xd0540a14
0xd0540a14 (pthread_kill+0xb4) 80410014            lwz   r2,0x14(r1)
pthread_kill(??, ??) at 0xd0540a14
_p_raise(??) at 0xd053fe64
raise.raise(??) at 0xd0120c20
SupOS_CicsCOREDump() at 0xdc9eedb4
SupOS_TurnSignalToException(??, ??, ??) at 0xdc9ed5dc
sqleUCdisconnect(??) at 0xd86743b0
sqleUCtermAllCtx(??, ??) at 0xd8673ef0
sqleterm(char,sqlca*)(??, ??) at 0xd8cec01c
sqle_ctx_exit_function()() at 0xd88f1e7c
sqle_myexitlist_function()() at 0xd88f1cf0
sqleExitApplicationEnvironment(unsigned int)(??) at 0xd88f12d0
sqloipdc.sqlo_execute_list@AF34_4(??) at 0xd8804858
sqlo_execute_list() at 0xd88047ac
exit(??) at 0xd017cf70
bde_thread_TaskExit(??) at 0xdc323b18
bde_Exit(??) at 0xdc333dc4
SupOS_Exit(??) at 0xdc9ed494
....
可以尝试添加环境变量 DB2NOEXITLIST=ON
有两种方法可以达到这个目的:
1. Set the environment variable DB2NOEXITLIST=ON for the DB2 client environment on the system with the TXSeries region.
a) db2set DB2NOEXITLIST=ON
b) db2 terminate
c) re-start CICS region
2. Set DB2NOEXITLIST=ON in the region's environment and re-start the region.
Refer to DB2 manual for more information on the DB2NOEXITLIST environment variable.
设置成yes似乎也可以,未验证...
Set the environment variable DB2NOEXITLIST=yes in DB2 client env.
1.Set db2set DB2NOEXITLIST=yes.
2.Terminate DB2 and restart the region.
Set DB2NOEXITLIST=yes in region's environment

一些错误分析:
LINK和START调用的主要返回值解释如下:
1、LINK错误码分析
 
INVREQ(请求非法)
交易状态不对(有无SYNCONRETURN混用)
TRANSID全空
 
LENGERR
DATALENGTH选项为负值
DATALENGTH选项比LENGTH选项长
 
NOTAUTH
权限问题
使用了SYSID选项,但是RSLCheck没有设置为NONE
 
PGMIDERR
PD不存在
PD被disabled.
 
ROLLEDBACK
被LINK的程序无法执行syncpoint
 
SYSIDERR
CD不存在或错误
对方域不存在或已经宕机
网络不通
在本地TD:timeout时,远端交易还在队列
通信错误码:15a00002/15a00102
 
TERMERR
会话失败,TRANSID不存在
在本地TD:timeout时,远端交易还在运行。通信错误码:15a00007/a0000100
RD:MaxTClassLim引起的Reject。通信错误码:15a00007/84b6031
 
2、START错误码分析
 
INVREQ(请求非法)
Hours超范围
Minutes超范围
Seconds超范围
指定REQID但是该TSQ已经存在(在Pool不足时可能出现)
 
IOERR
SFS满
 
ISCINVREQ
ISC失败
 
LENGERR
使用LENGTH(0).
 
NOTAUTH
权限不足
使用了SYSID选项,但是RSLCheck没有设置为NONE
 
SYSIDERR
CD不存在或错误
对方域不存在或已经宕机
网络不通
通信错误码:15a00002/15a00102
 
TERMIDERR
TERMID选项非法
 
TRANSIDERR
TRANSID选项非法
 when ('NORMAL')       return ('0');
    when ('ERROR')        return ('1');
    when ('RDATT')        return ('2');
    when ('WRBRK')        return ('3');
    when ('EOF')          return ('4');
    when ('EODS')         return ('5');
    when ('EOC')          return ('6');
    when ('INBFMH')       return ('7');
    when ('ENDINPT')      return ('8');
    when ('NONVAL')       return ('9');
    when ('NOSTART')      return ('10');
    when ('TERMIDERR')    return ('11');
    when ('DSIDERR')      return ('12');
    when ('FILENOTFOUND') return ('12');
    when ('NOTFND')       return ('13');
    when ('DUPREC')       return ('14');
    when ('DUPKEY')       return ('15');
    when ('INVREQ')       return ('16');
    when ('IOERR')        return ('17');
    when ('NOSPACE')      return ('18');
    when ('NOTOPEN')      return ('19');
    when ('ENDFILE')      return ('20');
    when ('ILLOGIC')      return ('21');
    when ('LENGERR')      return ('22');
    when ('QZERO')        return ('23');
    when ('SIGNAL')       return ('24');
    when ('QBUSY')        return ('25');
    when ('ITEMERR')      return ('26');
    when ('PGMIDERR')     return ('27');
    when ('TRANSIDERR')   return ('28');
    when ('ENDDATA')      return ('29');
    when ('INVTSREQ')     return ('30');
    when ('EXPIRED')      return ('31');
    when ('RETPAGE')      return ('32');
    when ('RTEFAIL')      return ('33');
    when ('RTESOME')      return ('34');
    when ('TSIOERR')      return ('35');
    when ('MAPFAIL')      return ('36');
    when ('INVERRTERM')   return ('37');
    when ('INVMPSZ')      return ('38');
    when ('IGREQID')      return ('39');
    when ('OVERFLOW')     return ('40');
    when ('INVLDC')       return ('41');
    when ('NOSTG')        return ('42');
    when ('JIDERR')       return ('43');
    when ('QIDERR')       return ('44');
    when ('NOJBUFSP')     return ('45');
    when ('DSSTAT')       return ('46');
    when ('SELNERR')      return ('47');
    when ('FUNCERR')      return ('48');
    when ('UNEXPIN')      return ('49');
    when ('NOPASSBKRD')   return ('50');
    when ('NOPASSBKWR')   return ('51');
    when ('SYSIDERR')     return ('53');
    when ('ISCINVREQ')    return ('54');
    when ('ENQBUSY')      return ('55');
    when ('ENVDEFERR')    return ('56');
    when ('IGREQCD')      return ('57');
    when ('SESSIONERR')   return ('58');
    when ('SYSBUSY')      return ('59');
    when ('SESSBUSY')     return ('60');
    when ('NOTALLOC')     return ('61');
    when ('CBIDERR')      return ('62');
    when ('INVEXITREQ')   return ('63');
    when ('INVPARTNSET')  return ('64');
    when ('INVPARTN')     return ('65');
    when ('PARTNFAIL')    return ('66');
    when ('USERIDERR')    return ('69');
    when ('NOTAUTH')      return ('70');
    when ('VOLIDERR')     return ('71');
    when ('SUPPRESSED')   return ('72');
    when ('WRONGSTAT')    return ('73');
    when ('NAMEERROR')    return ('74');
    when ('CCERROR')      return ('76');
    when ('NOSPOOL')      return ('80');
    when ('TERMERR')      return ('81');
    when ('ROLLEDBACK')   return ('82');
    when ('END')          return ('83');
    when ('DISABLED')     return ('84');
    when ('ALLOCERR')     return ('85');
    when ('STRELERR')     return ('86');
    when ('OPENERR')      return ('87');
    when ('SPOLBUSY')     return ('88');
    when ('SPOLERR')      return ('89');
    when ('NODEIDERR')    return ('90');
    when ('TASKIDERR')    return ('91');
    when ('CONTAINERERR') return ('110');
    when ('TOKENERR')     return ('112');
    when ('CHANNELERR')   return ('122');
    when ('CCSIDERR')     return ('123');

 

 
Cubby–又一款云端同步软件

Cubby–又一款云端同步软件

今天收到了来自Cubby.com的邀请,可以使用Cubby Beta版的云端服务。那么Cubby是什么呢:Cloud,又一片云!如果听说或者用过Dropbox,Google Drive,SkyDrive,还有像Apple的iCloud,BOX以及国内的**货物之类的云端软件,那么这个Cubby也不用解释太多。
我使用后的体会是:界面简洁,轻巧,无论PC,Mac还有Android版本风格一致;5GB免费空间;目前未被墙;可以自由选择将folk分享;上传速度未测试;界面截图就不放上来了,从我我邮件和官方页面大体可以看到这些:
1.多平台支持PC,MAC,以及移动设备Android或者iOS;App Store和 Google Play;
2.目前只是Beta版本,只有收到邀请才可注册使用(available by invitation only);
3.暂时无法从移动版上传文件到云端,所以必须首先安装桌面版的Cubby应用。
4.Free, 5GB,文件类型不限。

Welcome to the Cubby beta. You’re almost ready to go.
On your Mac or Windows PC, download Cubby. You don’t really have Cubby until you’ve installed the desktop application on a Mac or Windows PC.
After that, feel free to download the Cubby app from the App Store or Google Play. The apps are great, but the desktop application is the key.

如果想要体验一下猛击这里:https://www.cubby.com/
如果和其它几款同类型云端对比的话,都是各有所长了,Dropbox最优,Skydrive次之,Google Drive因为墙的原因体验一直不佳,这个倒是有些亮点的,因为这些关键词(暂时)

  • 5GB FREE
  •  ACCESS IN CHINA MAINLAND FREE (FUCK GFW)
  • Cross-Platform

暂时我就发现这几个,在使用下看看。

—————–
By 吉吉GIGI https://www.gigiwangs.com
除非特别声明,本站采用许可:Attribution-NonCommercial-ShareAlike(署名-非商业-保持一致),非注明本站均为原创。