1. 使用帮助手册
如果你是在 Linux/Unix 下,那么 Man 给我们准备好了各色点心,用 man 加上下面中的类别名就能查阅到对应的帮助,如 man perldata
|
或分 FAQ 来分类手册,还能在手册中搜索内容,如 man perlfunc split --- 搜索 split 函数的使用 man perlvar ARGV --- 内置变量 ARGV 的帮助信息 |
1. 使用帮助手册
如果你是在 Linux/Unix 下,那么 Man 给我们准备好了各色点心,用 man 加上下面中的类别名就能查阅到对应的帮助,如 man perldata
|
或分 FAQ 来分类手册,还能在手册中搜索内容,如 man perlfunc split --- 搜索 split 函数的使用 man perlvar ARGV --- 内置变量 ARGV 的帮助信息 |
二. Quartz 中集群是如何工作的
一个 Quartz 集群中的每个节点是一个独立的 Quartz 应用,它又管理着其他的节点。意思是你必须对每个节点分别启动或停止。不像许多应用服务器的集群,独立的 Quartz 节点并不与另一其的节点或是管理节点通信。(将来的 Quartz 版本将会设计成让节点能与其他节点直接通信,而不是借助于数据库。) 取而代之的是,Quartz 应用是通过数据库表来感知到另一应用的。
| Quartz 集群仅能使用 JDBC JobStore 工作因为集群中节点依赖于数据库来传播 Scheduler 实例的状态,你只能在使用 JDBC JobStore 时应用 Quartz 集群。这意味着你必须使用 JobStoreTX 或是 JobStoreCMT 作为 Job 存储;你不能在集群中使用 RAMJobStore 的。在将来的释放版中非常可能移除这个需求,节点也将能直接与另一节点直接通过网络协议,可能使用 JGroup 进行通信。 |
图 11.1 显示了每个节点直接与数据库通信,若离开数据库将对其他节点一无所知 阅读全文 >>
客户端连接到另一台机器上的 DB2 数据库,用 DB2 的控制中心连接没问题,但是用 Quest Central for DB2 来连接,输入用户名和密码,确定,出现提示窗口:
[IBM][CLI Driver] SQL0332N 没有从源代码页 "86" 至目标代码页 "819" 的转换。原因代码是 "DB2INST1"。 SQLSTATE=01539
无法登录,原因是本机的代码页(codepage) 与数据库的代码页不相符且无符完成又向转换。
解决办法是在命令行下执行 db2set DB2CODEPAGE=819
dos> db2set DB2CODEPAGE=819
然后,再次用 Quest Central for DB2 来连接数据库就 OK 啦
参考:1. SQL0332N Reason Code 1
第十一章. Quartz 集群
不可避免的,我们还是要说到集群。虽然单个 Quartz 实例能给予你很好的 Job 调度能力,但它不能令典型的企业需求,如可伸缩性、高可靠性满足。假如你需要故障转移的能力并能运行日益增多的 Job,Quartz 集群势必成为你方言的一部分了。本章就告诉你如何使用 Quartz 的集群能力来更好的支持你的业务需求,并且即使是其中一台机器在最糟的时间崩溃了也能确保所有的 Job 得到执行。
一. 集群对 Quartz 来说意味着什么?
集群扮演着运行一个组件或应用的多个实例,它们以透明的方式提供服务。集群是企业范畴的事物,而不局限于 Java 的世界里。当部署 J2EE 应用时,例如,供应商为应用服务器提供了集群的能力,以便于像 EJB、JNDI 和 Web 组件能获得高可用性。然当客户端请求这些服务时候,它们就能更可靠的提供服务。 阅读全文 >>
原来只是关注过跨平台组件的选择对比,有 GTK、wxWidgets、Qt、AWT/SWING、SWT。
GTK 是 GNOME 的实现组件
wxWidgets 对于用过 MFC 的人来说用起来很顺手
Qt 是 KDE 的实现组件
AWT/SWING 无需多说,SWT 相信也为 Java 开发人员熟知了。
曾得益于 VC 写的程序小巧且基本上拷个 EXE 文件到别人机器上就能运行,所以希望还是用 C++ 来编写界面程序,所以考虑过 wxWidgets 和 Qt。后来发现这两个组件的动态库的个头也不小,即使在客户端安装个 JRE 又何妨,何况 JAVA+SWT 的程序与 wxWidgets/Qt 的本地程序速度上差别已不大。综上,如果仅仅是跨平台的界面程序个人看重 JAVA+SWT 了,SWING 给我产生的欲望还不大。 阅读全文 >>
前面写过一篇:Oracle 驱动版本引起的显示字段奇怪编码问题。讲到因 Oracle 8.0.5 不支持子查询排序,为改善原来那种每次翻页时都捋出所有数据成对象到 List 中,然后从中拣取页面实际要显示的记录的性能问题时,采用了 rs.absolute() 直接跳到起始记录游标的方法,但又引入了乱码问题,例如:"无效",变成了 "0xE697A0E69588"。
虽说,换个驱动,如 8.1.7.0.0 以上版本的驱动就能解决乱码的问题,但这一换又怕会影响到其他的应用。有朋友评论说,其实循环 next() 到某处比 absolute() 定位要好,乍一看,有些牵强,不过试试就知道了。下面就来做样一个测试,测试代码如下: 阅读全文 >>
http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#jmxagent
http://java.sun.com/javase/6/docs/technotes/guides/management/index.html
-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=6666 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
五. Quartz 工具插件
Quartz 框架包括几个你能用于你的应用中的几个插件。本节简单描述它们和它们的用途。
·JobInitializationPlugin
我们已经多次谈到过这个插件。它从一个 XML 文件中加载 Job 和 Trigger 信息(默认文件名是 quartz_jobs.xml) 。你可以通过在 quartz.properties 文件中为这个插件设定 filename 参数来配置文件名。假如你不需要数据库来存储你的 Job 或者是需要能快速测试特定 Job 的话,这个插件非常有帮助。 阅读全文 >>
有一 Java 控制台程序,启动经过一段时间之后从 Windows 任务管理器里看它所占用的内存稳定在 540M 左右。
启动参数是:-Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128
但只要你把那个控制台窗口最小化后,观察到的内存用瞬间下降到 100 多M,有时候甚至是几十M。然后不管是窗口保持最小化还是恢复了,它所占用的内存又以几十M几十M的上扬,直至先前的 540 M 左右。每次最小化窗口都可以观察到这种现象。
控制台窗口的参数:屏幕缓冲区大小:宽 120;高 300。窗口大小:宽 120;高 40。
不知道在控制台窗口最小化那时,JVM 做了些什么事情能让内存骤降下来,而复又升回去。
四. 使用多个插件
你喜欢多少个,就可以在 quartz.properties 文件中注册多少个插件。然而,加载和初始化的顺序却不能保证,因为 Quartz 加载先把所有的属性到一个 Map 中,然后按照从 Map 中取出的顺序遍历插件。
为规避这一限制,你可以创建一个 Quartz 插件作为父插件,然后以给定的顺序加载其他多个插件。代码 8.6 显示了 ParentPlugin 长什么样子。
代码 8.6. ParentPlugin 能以特定的顺序加载子插件 阅读全文 >>