CICS: CICS 是一系列为 IBM和非 IBM 平台上的应用提供联机事务处理和事务管理的产品,其功能是为商业应用提供一个事务处理环境。CICS其全称是 Customer Information Control System,即客户信息控制系统。 RACF: Resource Access Control Facility(资源访问控制程序)是用于IBM主机(大型服务器)操作系统的安全管理产品RACF只分配给有权使用申请资源的用户的计算机系统(比如文件,打印序列,程序的运行空间等等)。为了实现这些,RACF识别并授权给一个用户,并决定这个用户可以使用什么样的资源,并且对非授权用户试图访问保护资源进行记录日志和报告。 3270: The IBM 3270 is a class of terminals made by IBM since 1972 (known as "display devices") normally used to communicate with IBM mainframes. IBM stopped manufacturing terminals many years ago, but the IBM 3270 protocol is still commonly used via terminal emulation to access some mainframe-based applications. Accordingly, such applications are sometimes referred to as green screen applications. Use of 3270 is slowly diminishing over time as more and more mainframe applications acquire Web interfaces, but some web applications use the technique of "screen scraping" to capture old screens and transfer the data to modern front-ends.
摘自: http://www.ibm.com/developerworks/cn/java/j-lo-jvm-perf/ JVM 的实现 Sun Hotspot、IBM J9、Oracle JRockit 一. Java 堆和栈 类装载子系统:通过类的全限定名(包名和类名,网络装载还包括 URL)将 Class 装载进运行时数据区; 方法区:Class 对于所有方法和 static 静态数据的定义存储在这里,它就像一张表或数组,让程序执行时在这里找到相应方法的 Java 字节码和静态数据; Java 堆:Java 对象的持久化存储区,从类实例化而来的对象存储在此,垃圾收集也在此进行,若是空间不够容纳当前所有对象,Out Of Memory 的异常将会抛出,对 Java 堆和垃圾收集的认识对应用性能调优很关键; 创建的 Java 对象(包括数组,数组也是一种对象)分配在堆中,垃圾收集对象来释放空间; 最常设置的堆大小参数有:-Xms,设置堆的初始大小;-Xmx,设置堆空间的最大值;-Xmn,设置年轻代空间大小;-Xmo,设置年老代空间大小 Java 栈:Java 方法的字节码执行的地方,方法中局部变量的生命周期都在栈中,栈的大小是我们要考虑的一个关键点,它直接决定了方法调用的层数,这对递归程序来说尤为重要。我们所用的 JVM 都是基于 Java 栈的运行机制,而有一个例外的实现,Google 移动设备操作系统 Android 的虚拟机 Dalvik 则是基于寄存器的机制(Dalvik 虽然支持 Java 语言开发,但从虚拟机的角度看,并不符合 Java 标准),关于虚拟机实现时,栈和寄存器机制的比较,请参考论文“Virtual Machine Showdown: Stack Versus Registers”; 栈划分为操作数栈、栈帧数据和局部变量区,方法中分配的局部变量在栈中,同时每一次方法的调用都会在栈中分配栈帧. 对于基于栈的 Java 虚拟机,方法的调用和执行伴随着压栈和出栈操作。每个线程有各自独立的栈,由虚拟机来管理栈的大小,但我们应该对它的大小有个概念。栈的大小是把双刃剑,如果太小,可能会导致栈溢出,特别是在该线程内有递归、大的循环时出现溢出的可能性更大,如果过大,就会影响到可创建栈的数量,如果是多线程的应用,就会导致内存溢出。通过 -Xss可以设置 Java 栈的最大值,默认值为 256K。 程序计数器:对于基于栈实现的 JVM,这几乎是唯一寄存器了,它用来指示当前 Java 执行引擎执行到哪条 Java 字节码,指针指向方法区的字节码; 本地方法栈:这是 Java 调用操作系统本地库的地方,用来实现 JNI(Java Native Interface,Java 本地接口); 执行引擎:JVM 的心脏,控制装入 Java 字节码并解析; 本地接口:连接了本地方法栈和操作系统库。 二. Java内存泄漏例子 下面的pop1会引起内存泄漏 public class Stack { private static final int MAXLEN = 10; private Object stk[] = new Object[MAXLEN]; private int stkp = -1; public void push(Object p) { stk[++stkp] = p; } public Object pop1() { return stk[stkp--]; } public Object pop2() { Object p = stk[stkp]; stk[stkp--] = null; return p; } }
Process Server 启动时报错 Caused by: org.omg.CORBA.INTERNAL: CREATE_LISTENER_FAILED_4 vmcid: 0x49421000 minor code: 56 completed: No Changing the host file fixed it. For windows : c:\windows\system32\drivers\etc\hosts 127.0.0.1 localhost .
use "netstat -b" to see used ports and the executables using them 搜索打开的端口号: in Windows: netstat -an|find "61616" in Linux: netstat -an|grep 61616
manage 用户的expectation,不要造成无谓的刷网页。许多网友提出的分布式队列是个好的思路。买票是用户选择排队,并知道当前还有多少票,有多少人在排,就不会有恐慌的心理了。 2. 前端网页的优化是必须的,不知道现在有没有用到CDN 3. 为什么有很多钱付了,票没了的情况? 不知这其中的事务是怎么处理的。如果这是可接受并预先通知用户的话也罢...
SID是Oracle实例名,实例名指的是用于响应某个数据库操作的数据库管理系统的名称。实例名是由初始化参数文件的参数instance_name决定的。如果这个参数不被指定(即instance_name没有被指定为任何值),那么实例的名字由该用户的环境变量ORACLE_SID(注意这里是大写)决定。在windows平台下,则是注册表中oracle_sid值决定。 SID是Oracle实例的唯一名称标识,用户去访问数据库,实际上是向某一个Oracle实例发送请求,oracle实例负责向数据库获取数据。Oracle实例 = 内存结构+后台进程,所以Oracle实例是临时性的;可以通过startup nomount去启动实例,但是注意这时Oracle数据库并没有启动,需要用open去启动数据库; 一个实例只能对应一个数据库,一个数据库可以用多个实例; 2. SERVICE_NAME指的是listener中的全局数据库名:这个名字是由listener.ora中GLOBAL_DBNAME参数决定的。这个名字代表的是客户端连接到数据库时,tnsnames.ora中service_name参数所对应的值。 GLOBAL_DBNAME=DBNAME.DBDOMAIN 3. 连接字符串 配置tnsname.ora时,可以用SID,也可以用SERVICE_NAME. 注意这两个值不一定相同,具体要看数据库服务器中的配置。 connect_str = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = xxxx ) ) connect_str = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521)) ) (CONNECT_DATA = (SID = xxx) (SERVER = DEDICATED) ) ) 4. schema 命名空间 命名空间定义了一组对象类型,在命名空间里,对象的名字必须是唯一的,当然,在不同的命名空间里,是可以使用相同的的名字的。Table,View,Sequence,Package等对象共享一个名字空间,所以同一个名字空间中不能有相同的。Indexes,Constraints,Triggers等对象有各自的名字空间,因此可以有相同的名字。 一般来说,Schema是基于用户的, 在数据库中创建一个用户,就创建了一个和用户名相同的Shema。
XMLHttpRequest readyState Integer reporting the status of the request: 0 = uninitialized 1 = loading 已调用open方法 2 = loaded 已调用send方法 3 = interactive 已接收部分数据 4 = completed 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据
SessionScheduler 中 jobToBeExecuted 是回调的逻辑。这里通过Observer 模式通知到具体的业务模块去处理。