从事银行核心系统设计开发的程序猿
发布时间:2019-06-05 11:17:27
AS400传统写法比开放平台数据库执行SQL效率高的几个原因,我想了一下,看看对不对。1,没有sql语句的解析处理,直接操作文件指针,也不需要统计更新,不会系统自己选错索引。2,访问时直接定位文件指针位置,然后READ,READP,按记录前后读,无需像sql这样事先准备结果集(结果集是最消耗的因素)。3,PF是定长记录,.........【阅读全文】
发布时间:2018-12-06 12:05:12
使用十进制浮点数,可以避免二进制浮点数与我们习惯的十进制数之间的表示误差.这个在金融领域是非常重要的.但是计算机基本都只能对二进制浮点数进行计算,也就是IEEE754格式表示的浮点数.很多程序都会自己模拟十进制浮点数的计算.为了统一,IEEE754做了扩展,包括了十进制的浮点数.IEEE 754-2008里面规定了十进制浮点数的.........【阅读全文】
发布时间:2018-05-17 15:02:23
1,系统总体架构 1.1,外部整体架构(整体边界原则) 1.2,物理部署架构 1.3,内部层次架构 1.4,专题讨论2,需求分析 &n.........【阅读全文】
发布时间:2018-03-30 23:58:00
在核心系统的设计实现中,24小时机制向来是一个重点难点。早期的银行只有柜面一个业务办理渠道,因此当时的综合业务系统,跟随网点的营业时间,分为日起,营业,日结,日终批量这几个阶段。所有网点日结后,才开始日终批量,这时是不办理联机业务的。随着科技发展,.........【阅读全文】
发布时间:2018-03-30 23:56:40
分表与分区的选择: 分表是表名不同,表结构一致,由应用程序自行实现访问的封装。 分区是在同一个表内,由数据库实现记录存储的分片,对应用程序透明。此时索引可选择是分区索引还.........【阅读全文】
发布时间:2017-09-19 23:06:50
股份制:招行,中信。城商:北京银行,宁波银行,汉口银行,青岛商行,赣州商行,锦州银行。农信:北京,天津,黑龙江,吉林,内蒙古,河北,山西,甘肃,浙江,安徽,江西,福建,深圳,东莞,顺德。......【阅读全文】
发布时间:2017-08-26 12:12:05
最近在AIX环境下,使用esql编译ec/ecpp形成的.o和xlc/xlC编译普通c/cpp形成的.o进行连接,运行时发现不同.o调用传递struct结构参数访问会有错位。排除了程序本身的原因,最后发现是AIX下esql和xlc编译时默认结构对齐编译参数设置是不同的。esql编译时,可以用esql -v查看,发现-qalign=nature,而根据xlc帮助,默.........【阅读全文】
发布时间:2017-08-05 20:24:13
上一篇实现,是统计了每一次函数调用的层次关系和耗时。如果在函数调用比较多的情况下,更关心的是减少输出,只需要总计的耗时即可。另外如果是后台程序,输出到文件会更好。因此,对程序做了改进。当设置TRACELOG环境变量,则输出到这个环境变量指定的文件中。如果设置了DETAILF,则会输出调用层次关系和每一次的耗.........【阅读全文】
发布时间:2017-08-02 20:54:54
北京 神码 System i上海 神码->FNS System p重庆 神码 System i -> System p宁夏 神码->东华 System p天津 &nb.........【阅读全文】
发布时间:2017-06-29 08:15:20
示例程序整体结构如下。 源程序:ps.c,cm.c,ps_tran.c,cm_tran.c(以上分版本1,版本2),main.c,makefile,aix,makefile.linux。 目标程序:libps.so,libcm.so,libps_tran.so,libcm_tran.so(以上分版本1,版本2),main。 &n.........【阅读全文】
发布时间:2017-05-25 00:42:35
在AIX中,xlc编译器有个选项-qfunctrace,使用此选项编译的程序,自动会在每个函数的入口出口处调用以下自定义函数。extern "C" void__func_trace_enter(const char * const proc_name, const c.........【阅读全文】
发布时间:2017-05-23 06:36:35
世界上唯一不变的是变化,对于动态连接库更是如此。动态库天生为方便程序的更新而设计,只需要替代库文件,无需重新编译主程序,即可运行更新后的版本。另外,动态库是多应用共享的,多个程序使用同一个库,那么库只会加载一份。 但是,现实往往不这么简单。既然动态库.........【阅读全文】
发布时间:2017-05-18 07:17:12
unix平台下,动态连接库的使用有两种方式,link方式和dlopen方式。需要设置LD_LIBRARY_PATH作为查找路径(低版本AIX使用LIBPATH)。link方式是程序启动时加载所有编译时连接的动态库,直到程序结束也不会关闭。dlopen方式是在运行中按照参数指定的方式加载动态库,并可以使用dlclose函数关闭,直到下次再使用dlopen重新加.........【阅读全文】
发布时间:2017-05-14 23:46:59
根据银监会网站信息,列出各省的城商行清单如下。(不包括13家全国股份制商行,例如浙商银行,平安银行,渤海银行,恒丰银行)上海:上海银行福建:厦门银行,厦门国际银行,福建海峡银行,泉州银行浙江:宁波银行,宁波东海银行,宁波通商银行,杭州银行,温州银行,嘉兴银行,湖州银行,绍兴银行,金华银行,浙江稠.........【阅读全文】
发布时间:2017-05-12 00:15:58
在C/C++程序中,全局和静态变量,编译器会默认初始化为0。而局部变量是没有默认值的,分配到的内存空间保留原有无意义的值。在很多老旧代码中,初始化和使用都不规范,导致非常容易出现异常情况。为了降低异常的概率,通过xlc的编译参数,可以让局部变量也进行默认值初始化动作。参考xlc的帮助:&nbs.........【阅读全文】
发布时间:2017-05-12 00:07:33
在EXEC SQL中,如果SQL语句出现了“//”符号,那么会导致后面一直到“;”结尾的SQL语句都被忽略,而不止当前行。这样往往会出乎程序员的意料。例如以下例子程序t1.ec。int main(){ EXEC SQL UPDATE vyktd .........【阅读全文】
发布时间:2016-07-09 23:21:46
操作系统V7R3的主要变化: 7.3 CL语言 没有新增的内容。 C/C++语言 新增了对C++11标准的支持。通过LANGLVL(*EXTENDED0X)可以开放使用。 RPG语言 增加了完全自由格式的写法。第一行**FREE表示整个文件.........【阅读全文】
发布时间:2016-04-13 02:46:06
*交易和组件写法Firebird核心系统的整体结构,是由主控--交易--组件这几个层次组成的。联机交易主控由C程序编写,异步交易主控和日终批量主控由CL和RPGLE程序编写。主控通过交易码调用相应的交易RPGLE程序,交易程序又通过CALLP调用不同模块的组件RPGLE程序,完成整个处理逻辑。交易程序和组件程序都总结了一套模.........【阅读全文】
发布时间:2016-04-11 01:25:47
*面向对象实现运行中目标解析,模拟覆盖方法在核心系统这样大型的软件系统设计中,面向对象的设计方法,有助于分解复杂度,既保持抽象统一,又有灵活性。这里说的面向对象设计方法,不是指使用面向对象的编程语言就可以,而是指设计系统的思想。系统架构不进化,即使用Java这样的面向对象编程语言,也一.........【阅读全文】
发布时间:2016-04-05 02:34:06
*异常处理在核心系统开发和运行中,异常处理是特别重要的一环。异常的规划,对于系统的表现能力和查错能力有着巨大的作用,仔细的设计是十分值得的。之前的报文格式中,提到Firebird的返回码,是10位STRING。如果交易正常,返回码为'OK',如果出错,则为错误代码。如果为AS400系统级错误,则为F+系统错误代码,.........【阅读全文】
发布时间:2016-04-04 19:37:48
*命名限定在以往的RPG程序中,很让人头疼的一点就是字段的来源不直观,以及同名字段的相互影响。在程序中,字段可以是通过F表定义文件而引入的记录格式字段,也可以是EXTNAME引入的参照外部文件形成的结构字段,还可以是DS定义的字段以及直接用D定义的变量。如果考虑到有/COPY引入DS定义的情况,通常会造成在程序.........【阅读全文】
发布时间:2016-02-22 00:14:14
*数据字典和枚举值 在核心系统应用开发中,数据字典有举足轻重的作用。数据字典是对系统中所有字段的归纳抽象,需要规范同类字段的类型长度,方便定义和修改。 但是,在过去的核心系统中,数据字典的理解往往也会有失误。常见的错误方法,是试图穷举定义所有可以出现的字段名字.........【阅读全文】
发布时间:2015-08-24 02:37:49
*报文格式
AS400核心系统的联机交易报文,是体现系统设计优劣的一个重要部分,并且,也决定了联机交易主控的处理方式
系统的报文规范遵循简单灵活安全高效的原则,应做到以下几点。首先,交易通过短连接单次通讯完成,不需要先分配端口,多次交互,也没有任.........【阅读全文】
发布时间:2015-08-21 02:06:25
*多成员表
银行核心系统通常生命周期在10年左右,现在随着银行系统的数量和复杂度增加,系统的生命期也有逐渐变长的趋势。通常核心系统上线时,很多数据表的记录数并不太多,而当系统运行年限越来越长,巨型数据表就越来越多。另外,随着城商、农信的省级集中,用.........【阅读全文】
发布时间:2015-08-10 02:26:16
*性能加速之批处理事务提交
在核心系统中,对性能要求最高的,就是批处理程序了。那么,对批处理提升性能,有哪些技术方法呢?下面介绍一下在Firebird系统中的做法。......【阅读全文】