You are browsing the archive for 开源产品和技术.

WordPressMU+BuddyPress+bbPress简易安装步骤

五月 22, 2009 in PHP开源

 

社会性网络服务(SNS)可谓是2008互联网最火爆的现象了,国内无数复制FaceBook的SNS网站如雨后春笋般一个接一个,如校内、开心等等

WordPress公司也发布了基于WordpressMU的SNS产品BuddyPress,BuddyPress实际上就是一些WordpressMU的插件,因此BuddyPress把WordpressMU的关注点从博客移到了社区,下面描述在Windows平台下安装BuddyPress的基本步骤:

 

Read the rest of this entry →

JVM, Connection Pool相关的Metalink文章

五月 17, 2009 in Java开源

 

Oracle Metalink上有很多JVM和连接池相关的文章,为了使用方便,将其纪录汇总

 

1,监控OC4J连接池情况

567784.1 How To Monitor A Connection Pool Within OC4J 10.1.3.x Remotely
本文描述如何使用Oracle提供的工具来监控OC4J下连接池的情况,确保已正确释放连接

 

2,监控OC4J JVM信息

734481.1 How To Monitor The JVM For OC4J 10.1.3.x Remotely
本文描述了如何使用Oracle提供的工具来监控OC4J的JVM,查看JVM堆,线程和相关JVM信息

 

3,监控OC4J JVM内存使用情况

443506.1 How to monitor memory usage in OC4J 10.1.3.x
本文描述如何通过各种方式和工具来监控OC4J的JVM内存使用情况

 

4,如何编写程序来确保无ResultSet/Connection/Statement泄露

402480.1 How To Ensure No ResultSet/Connection/Statement Leaks Exist in Your JDBC Code
本文描述了如何编写JDBC相关程序来确保没有ResultSet/Connection/Statement泄露,避免:ORA 1000 -  “maximum open cursors exceeded”;ORA 20 – “maximum number of processes (%s) exceeded”. 之类的数据库错误发生

 

5,EBS11i R12 JVM相关

362851.1 Guidelines to setup the JVM in Apps Ebusiness Suite 11i and R12
567551.1 Configuring various JVM tuning parameters for Oracle E-Business suite 11i and R12
462550.1 Generate JVM heap dump in E-Business suite 11i and R12

 

actionscript3中的动态类(dynamic class)

五月 15, 2009 in RIA Flex

 

如Java或者C++这样面向对象语言中,只有通过实例化类来创建一个对象,对象只能访问类中定义的属性和方法,如下面Employee的定义:

1
2
3
4
class Employee {
  String firstName;
  String lastName;
}

 

在程序中只能通过如下的方式来访问属性:

1
2
3
4
Employee emp = new Employee();
emp.firstName = "arone";
emp.lastName = "zhang" ;
System.out.println(emp.lastName + "," + emp.firstName);

 

而在actionscript中,这样的类被叫做sealed,而它还提供了另外一种类叫做动态类(Dynamic Class),可以在运行时通过程序来添加新的属性或方法,只要在类定义的时候添加关键字:dynamic 就可以,下面通过创建一个DynamicClass类

?View Code ACTIONSCRIPT
1
2
3
4
5
6
7
8
9
10
package
{
  public dynamic class DynamicClass
  {
    public var description:String;		
    public function DynamicClass()
    {
    }
  }
}

 

下面创建一个TestDynamicClass来来动态添加属性 dynamicName 和方法 dynamicFunction :

?View Code ACTIONSCRIPT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package {
  import flash.display.Sprite;	
 
  public class TestDynamicClass extends Sprite
  {
    public function TestDynamicClass()
    {
      var dynamicClass:DynamicClass = new DynamicClass();
      dynamicClass.description = "this's test.";
      trace("dynamic class description: " + dynamicClass.description);
 
      dynamicClass.dynamicName = "dynamicName" ;
      trace("dynamic property: " + dynamicClass.dynamicName);
 
      dynamicClass.dynamicFunction = function(){
        trace(dynamicClass.description,dynamicClass.dynamicName);
      }
 
      dynamicClass.dynamicFunction();
    }
  }
}

 

运行后,输出如下的结果:

1
2
3
dynamic class description: this's test.
dynamic property: dynamicName
this's test. dynamicName

 

需要注意的是,如果一个继承动态类的类,默认情况下并不是动态类

 

使用jstatd和visualVM监控JVM

五月 13, 2009 in Java开源

 

VisualVM是集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。

在JDK Update7之后,VisualVM作为JDK的一部分发布,但同时VisualVM也发布独立的版本。VisualVM必须运行在JDK1.6以上的VM环境下,但可以用它来监控JDK1.4以上的JVM。

Read the rest of this entry →

几个与JVM相关的JDK工具:jps, jstat, jmap

五月 2, 2009 in Java开源

?

在项目中遇到OOM(Out of Memory)的问题,为了分析内存和JVM的垃圾回收器GC问题,一并把JVM相关的一些工具也研究了一下:

  1. jps:Java进程查看工具,实际上它和Unix/Linux上面的ps命令的功能差不多
  2. jstat:Java内存使用情况监控工具
  3. jmap:输出JVM内存中对象的工具

这些工具位于JAVA_HOME/bin目录下

?

Read the rest of this entry →