- 六. 配置 Quartz RMI 选项
当通过 RMI 使用 Quartz 启动一个 Quartz 实例时,你需要把它配置为经由 RMI "导出" 服务。然后你就能创建客户端,配置它们的 Quartz Scheduler 作为 "代理" 工作而连接到服务端来。表 A.3 列出了可用的 RMI 设定。
Read More表 A.3. Quartz 使用 RMI 时的属性 名称 必须 类型 默认值 org.quartz.scheduler.rmi.export 否 Boolean false org.quartz.scheduler.rmi.registryHost 否 String localhost org.quartz.scheduler.rmi.registryPort 否 Integer 1099 org.quartz.scheduler.rmi.createRegistry 否 String never org.quartz.scheduler.rmi.serverPort 否 Integer Random org.quartz.scheduler.rmi.proxy 否 Boolean false - 二. 配置 Quartz ThreadPool
表 A.2 列出了配置 Quartz ThreadPool 可用的属性。只有少些属性是必须的,剩下的都有合理的默认值。
Read More表 A.2. 配置 Quartz ThreadPool 的属性 名称 必须 类型 默认值 org.quartz.threadPool.class 是 String null org.quartz.threadPool.threadCount 是 Integer -1 org.quartz.threadPool.threadPriority 否 Integer 5 org.quartz.threadPool.makeThreadsDaemons 否 boolean false org.quartz.threadPool.threadsInheritGroup-
OfInitializingThread否 boolean true org.quartz.threadPool.threadsInheritContext-
ClassLoaderOfInitializingThread否 boolean false - 附录 A. Quartz 配置参考
本附录编写作为配置一个 Quartz 应用的快速参考。尽管这些信息在 Quartz 文档中都有,但是这个附录提供了一种更快的方式来查找配置属性和它们可能的值。
一. 主要的 Quartz 属性
表 A.1 列出了主要的 Scheduler 属性。它们用于声明和标识 Scheduler 和其他高层次的设置。 Read More 自适应收集器
在第一篇:有关于 JVM 的垃圾收集(一) 中谈到过几种垃圾收集的算法, 然而我们的 JVM 启动之后并不要求彻头彻尾的死板的使用一种垃圾收集算法,固定的算法参数。因为某种情况下某些垃圾收集算法工作得更好, 而别外一些收集算法在另外的情况下工作得更好,所以自适应的垃圾收集技术应运而生。自适应算法监视堆中的情形,并且对应的调整为合适的垃圾收集技术。 或能是换一种垃圾收集算法,或者是调整当前算法参数,或者把堆划分为子堆,同时在不同的子堆中使用不同的算法。
简述火车算法
垃圾收集一般都会停止整个程序的运行来查找和收集垃圾对象,它们可能在程序执行的任意时刻暂停,并且暂停的时间也无法确定。 垃圾收集也可能使得程序对事件响应迟钝,无法满足实时系统的要求。如果一种垃圾收集算法可能导致用户可察觉的到的停顿或者使得程序无法适合实时系统的要求, 这种算法被称作破坏性。垃圾收集算法的还有一个基本目标是使本质上的破坏性尽可能少,如果可能的话,尽可能消除这种破坏性。
Read More- 在网上 Google/Baidu 一下 “iptables 代理服务器” 多是讲的 iptables 结合 Squid 来实现透明代理的,用 iptables 把请求转发到 Squid 的代理端口上的,由于 Squid 有其局限性,不能支持 POP3、SMTP 和 P2P 协议。所以想在不影响多数人上网方式,集中控制的情况下,给自己单独开个小灶,用 iptables 在代理服务器上另辟一条溪径。
代理服务器有两网卡:
eth0 10.1.0.1 连接内部的网卡
eth1 202.x.x.x 能上互联网的网卡
建立脚本,比如 /usr/local/transparent_proxy.sh,内容如下: Read More 如上篇:Unmi 学习 Groovy 之 Groovy 和 Swing,Groovy 应用 Markup、命名参数、匿名构造和闭包很好的支持了 Swing 开发。然而 IBM 当初考虑到 Swing 的表现自行开发了一个界面框架,并已广受开发者青睐,也在 RCP 中得到了发展。Groovy 自然也看到了这一点,有了实际动作,见 http://groovy.codehaus.org/GroovySWT。它通过 SwtBuilder 和 JFaceBuilder 不令提供了对 Swt 的支持,还支持了 Swt 更上一层的 JFace。
要使用 GroovySWT,必须先下载到 groovy-swt-0.3.jar,或用 Eclipse 自带的 swt.jar,或从 Swt 官方网站(http://www.eclipse.org/swt/) 上下载最新的 swt.jar。或者直接下载打包的 groovy-swt-0.3-including-Eclipse-libs.ZIP,其中包含有 groovy-swt-0.3 和 swt/jface 等包。swt/jface 工程的 classpath 设置这里不多说,本文假定你对 Swt 有一定的了解,最好能理解 Swt 的 HelloWorld 程序。下面还是以例子进行说明吧。 Read More
- 选择一种动态脚本语言,不仅仅是用它来执行一些控制台或是后台任务,还希望能快速建立 GUI 程序,开发自己的小巧实用的工具。而 Groovy 借助于 GroovyMarkup,并巧妙的结合了 Java 2 与生俱来的 Swing 来创建用户图形界面。当界面程序执行过程中,可直接修改脚本代码来调整显示和功能,无须再编译,比之 Java Swing 程序来的便捷。
其实这还应该是 GroovyMarkup 的内容,本篇也可以叫之 《Unmi 学习 Groovy 之 GroovyMarkup (三)》
Groovy 提供了 SwingBuilder 标记类,它使得创建 Swing 用户界面比 Java 更快,代码更省。当然程序的执行性能在小程序方面已无所谓轻重了。还是以实际例子为见: Read More 在前一篇 Unmi 学习 Groovy 之 GroovyMarkup (一) 引入了 GroovyMarkup 及介绍了其中的一个 Builder(MarkupBuilder) 的用法。本篇继续。
groovy.util.NodeBuilder,用来创建一般任意对象的树状结构。看到了,它不在 groovy.xml 包之下,但它是一个 Builder,所以秉承了 Builder 的语法规则,而且还可用路径(对象导航)的方式来访问这个 Builder 实例中的节点或属性值。还是来看例子:
1import groovy.util.NodeBuilder; 2 3someBuilder = new NodeBuilder(); //只有这么一个构建方法 4 5root = someBuilder.users([balance:100]){ //这一块的语法完全同 MarkupBuilder 6 user([gender:"male"],"Unmi"); 7 user("Joe"){ 8 order(item:"Book"); 9 } 10} 11 12println root; //因为 NodeBuilder 不预示着输出,所以需要显示的 println看看上面程序的输出: Read More
- 每一种语言都不能忽略了 XML 操作相关的 API,而 Groovy 把使用 XML 的美妙和简易性推向了极致,这就是 GroovyMarkup。它不仅简化了 SAX、DOM 操作,并且把这一理念引入到了 Swing、Swt 界面绘制领域中,Ant、Maven 构建脚本生成中;甚至铺散到更广阔的领域。
Groovy 用闭包和命名参数给标记数据的操作创建通用的语法。GroovyMarkup 在实际的应用中表现为各种 Builder。例如在 Groovy 中内建了以下几个 Builder。
·groovy.xml.MarkupBuilder -- 将你的对象序列化成 XML 或 XHTML
·groovy.xml.SAXBuilder -- 可以用于现有的 SAX 处理器
·groovy.xml.DOMBuilder -- 创建并解析 DOM 文档
而且 GroovyMarkup 语法已经被公认为对操作特定于领域的对象结构很有价值,例如 Ant 文件和 Swing 用户界面。 Read More DBMS_JOB系统包是Oracle“任务队列”子系统的API编程接口。DBMS_JOB包对于任务队列提供了下面这些功能:提交并且执行一个任务、改变任务的执行参数以及删除或者临时挂起任务等。
DBMS_JOB包是由ORACLE_HOME目录下的rdbms/admin子目录下的DBMSJOB.SQL和PRVTJOB.PLB 这两个脚本文件创建的。这两个文件被CATPROC.SQL脚本文件调用,而CATPROC.SQL这个文件一般是在数据库创建后立即执行的。脚本为DBMS_JOB包创建了一个公共同义词,并给该包授予了公共的可执行权限,所以所有的Oracle用户均可以使用这个包。 Read More