C编译环境搭建
1)pcscfg.cfg中的修改
2)/usr/include下(权限可为755)
I2Ocomm.pc
I2Ocomm.h
decimal.h
3)/usr/bin下
mkpc
makefile_template
关于batch job
在Informix 中有对于Job 进行进程排序的程序 batchq,submit,以及批处理程序batchq_job, bpcsbatch 和 bpcson 。
这里对于以上四个程序的修改要作以下预先设定;
1. 要运行以上程序,请先在batchq.pc源程序中更改全局变量suser 的初始设定为 "uid/pwd"(例如:"bach/daxonerp"). 这里的uid/pwd 是具有读写oracle库中batsys和queue权限的用户。
2. 请编译batchq.pc,并将可执行文件更名为obatchq,并将此文件拷贝到/usr/bin.
3. 请编译submit.pc,并将可执行文件更名为osubmit,并将此文件拷贝到/bpcs/ora/batchjob
4. 请将 obpcsbatch 和 obpcson 拷贝到/usr/bin
5. 请系统管理员将上述文件的权限更改为所有人都可以执行。
6. 原先有批处理程序/bpcs/cron/batchq/batchq_job, 同样这里也有obatchq_job与之对应,请先修改obatchq_job里的ORACNN为合法的Oracle用户,然后以root的身份来运行这个程序,会把obatchq以四种方式在C shell中启动起来的。
经观察结果,hpdemo2 上少了 daemon 这支 proc 程序
将 Source Code 放在 /bpcs/cron/daemon 目录下
要启动这支 proc 要使用以下指令
nohup /bpcs/cron/daemon/daemon &
当程序执行完毕时再启动 job queue
/bpcs/cron/batchjob/obatchq_job
当执行完毕后,这才算完成 oracle 版本 batch queue 的启动
一定要先起DAEMON,再做BATCHQ
Pro*C环境搭建(dts环境为例)
1)CREATE FUNCTION/PACKAGE
vb端呼叫后台linux脚本
PACKAGE/PACKAGE BODY:daemon(怎样在Oracle数据库中如何直接运行OS命令)
FUNCTION:server system_ (传参数呼叫后台脚本)
2)所有ProC程序都放在/bpcs/source(dts环境)
/home/oracle2/dtlb/source(dtlb环境)
/bpcs/source下(每个PC程序需要和三个文件makefile/I2OCOMM.PC/I2OCOMM.H一起)
注意PC程序中的用户名/密码=bach/daxonerp
#mkdir /bpcs/ora/batchjob
#mkdir /bpcs/cron
batchq.pc 编译后生成可执行文件bqtchq #mv batchq /usr/bin/obatchq
submit.pc 编译后生成可执行文件submit
#mv submit /bpcs/ora/batchjob/osubmit
(obatchq,osubmit 为后台被呼叫的pc程序)
daemon.pc 编译后生成可执行文件daemon
#nohup /bpcs/cron/daemon/daemon &(做为守护进程启动)
3)2支SHELL(obpcsbatch/obpcson)COPY 到/usr/bin下
(被前台呼叫的脚本程序,在/usr/bin下)
4)#mkdir /tmp/wrksplf(pc报表存放的地方)
PC可执行文件放在/bpcs/ora/batchjob下
批处理程序obatchq_job,CPOY到/bpcs/cron/batchq下再执行 ./obatchq_job
就启动batchq
dtlb环境与dts类似,只是在程序放在不通的路径,具体路径可以根据需求更换
目前路径:
dts: daemon /bpcs/cron/daemon
obatchq_job /bpcs/cron/batchjob
obpcsbatch/obpcson /usr/bin
obatchq /usr/bin
osubmit /bpcs/ora/batchjob
编译完的pc程序放在 /bpcs/ora/batchjob
Sourcecode放在 /bpcs/source
dtlb: daemon /home/oracle2/dtlb/cron/daemon
obatchq_job /home/oracle2/dtlb/cron/batchjob
obpcsbatdt/obpcsondt(更名,区别dts环境) /usr/bin
obatchqdt (更名,区别dts环境) /usr/bin
osubmit /home/oracle2/dtlb/ora/batchjob
编译完的pc程序放在 /home/oracle2/dtlb/ora/batchjob
sourcecode放在 /home/oracle2/dtlb/source
启动Pro*C
dtserp环境:
1. startup database
2. startup listener
[oracle@dtserp oracle]$ lsnrctl start
3. 启动daemon (root执行)
将.bash_profile配置文件改为dtserp的环境(记得确认使之生效) [# vi .bash_profile # source .bash_profile]
#cd /bpcs/cron/daemon
#nohup /bpcs/cron/daemon/daemon &
4. 执行批处理程序
#cd /bpcs/cron/batchjob
#./obatchq_job
dtlberp环境:
1.startup database
2.startup listener
[oracle2@dtserp oracle2]$ lsnrctl start dtlberp
3.启动daemon(root执行)
将.bash_profile配置文件改为dtserp的环境(记得确认使之生效)
#cd /home/oracle2/dtlb/cron/daemon
#nohup /home/oracle2/dtlb/cron/daemon/daemon &
4. 执行批处理程序
#cd /home/oracle2/dtlb/cron/batchjob
#./obatchq_job
查看进程:
# ps -ef|grep da
/home/oracle2/dtlb/cron/daemon/daemon
/bpcs/cron/daemon/daemon
# ps -ef|grep ba
/usr/bin/obatchqdt QBATCH
/usr/bin/obatchqdt RBATCH
/usr/bin/obatchqdt NBATCH
/usr/bin/obatchqdt FBATCH/usr/bin/obatchq QBATCH
/usr/bin/obatchq RBATCH
/usr/bin/obatchq NBATCH
/usr/bin/obatchq FBATCH
启动em:
分别oracle、oracle2
$emctl start dbconsole
关于dailyjob
脚本放置在/SysAdmin/cron/中
Crontab排程如下(root用户)
00 21 * * * sh /SysAdmin/cron/fin_cron.file/finjob
00 22 * * * sh /SysAdmin/cron/fin_cron.file/inv920
00 23 * * * sh /SysAdmin/cron/fin_cron.file/btpjob
00 00 * * * sh /SysAdmin/cron/fin_cron.file/cshjob
00 01 * * * sh /SysAdmin/cron/fin_cron.file/autoissue
00 02 * * * sh /SysAdmin/cron/mm_cron.file/mmjob
crontab –e 编辑
crontab –l 查看