JBOSS 点滴
丰丰的博客

2010年8月22日

BIEE作为Oracle的新的商业智能平台企业版,起源于Oracle所收购的 Siebel公司,BIEE原来叫做Siebel Analytic,但是Siebel也不是它的发明者,它是Siebel在2001年收购的另一个公司叫nQuire software的产品,这个从它的配置文件的名称就可以看出来(NQSConfig,还一直保留着nQuire software的痕迹)。但是这个产品无论是在Siebel还是在Oracle都得到了发扬光大,我的理解是,也许它不一定是最好的BI工具,但是却是 一个非常有创造力的工具,它对于物理层,逻辑层,展现层的理解和定义创造了一个非常简洁而清晰的数据模型,使用这个数据模型可以完整地连接企业内各个异构 数据源和前台的业务使用人员,使商业智能真正能够在企业范围内得到大规模部署和使用:就是报表的“开发”以一种非常容易的方式交还给业务人员,他们就可以 随时产生自己所需要的智能数据报表,而不是把需求再提交给开发人员,而开发人员,在定义好了商业智能的元数据之后,就可以避免对业务人员的连续不断的需求 疲于应付了
posted @ 2010-08-22 22:33 半导体 阅读(25) | 评论 (0)编辑 收藏

2010年8月12日

IE选项->自定义级别->允许Scriptlet

posted @ 2010-08-12 11:41 半导体 阅读(25) | 评论 (0)编辑 收藏

2010年3月16日

CLASSPATH
.;%JAVA_HOME%\BIN;
JAVA_HOME
C:\Program Files\Java\jdk1.5.0_04
JBOSS_HOME
D:\hsweb\jboss-4.0.2;
Path
.;%JAVA_HOME%\bin;
posted @ 2010-03-16 17:21 半导体 阅读(50) | 评论 (0)编辑 收藏
 
解决方法:
1.在工程目录下的.mymetadata文件中可能webrootdir被改无效了(把下面内容拷到你的.mymetadate文件中的相应位置上);或者有可能少了这context-root这个属性;添加上这个属性即可,内容如下:
context-root="/上面的name属性值"
2.关掉Eclipse,再启动Eclipse,接着发布工程,发布成功!

.mymetadata文件
<?xml version="1.0" encoding="UTF-8"?>
<project-module
type="WEB"
name="myweb"
id="myeclipse.1202968712015"
context-root="/myweb" j2ee-spec="1.4"
archive="personnel.war">
<attributes>
<attribute name="webrootdir" value="WebRoot" />
</attributes>
</project-module>
posted @ 2010-03-16 16:42 半导体 阅读(71) | 评论 (0)编辑 收藏

2010年1月12日

logic:present 和 logic:empty他们的用法大致相同,唯一的不同点是:两者在对空字符串的处理上存在着不同。


下面为index.jsp中的代码:

 1 <logic:notPresent name="users">
 2  notpresent
 3 </logic:notPresent>
 4 <logic:notEmpty name="users">
 5  notempty
 6 </logic:notEmpty>
 7 <logic:empty name="users">
 8  empty
 9 </logic:empty>
10 <logic:present name="users">
11  present
12 </logic:present>

当第一次访问该JSP的时候,由于users没有定义,并且也不在page,request,session,application任何一个作用域中,因此输出的结果为notpresent,empty。

下面我们增加一个action,让他在index.jsp之前执行,然后再跳转到index.jsp中,同时在该action的execute方法中增加如下代码:
 
1String userName = "";
2request.setAttribute("users", userName);
3return new ActionForward("/index.jsp");
4 这里将userName保存在request中,key为users,再将请求转发至index.jsp中,但是userName的值为一个空字符串,转发过后,输出的值为:empty,present

这里我们再做一次改动,将action的execute方法中的代码改为:

1String userName = null;
2request.setAttribute("users", userName);
3return new ActionForward("/hello.jsp");
4 不同的是userName 不再为空字符串了,而是null值,当转发至index.jsp后,输出的值为:notpresent,empty 。

对比这几次改动,我们可以得出结论:

对于没有在page,request,session,application中定义或者是没有分配内存空间(null值)的变量,这两个标记处理的方法是一致的,都会认为此变量不存在(notpresent)或者为空(empty)。而对于空字符串""值,他们的处理就不一样了,logic:present 标记认为空字符串仍然是存在的,也就是说,只要是引用了一块内存空间的变量,logic:present 就会返回present ;而logic:empty则认为空字符串仍然为空,由此得出,在logic:empty看来,变量不仅仅要引用一块内存空间,而且该地址空间的值不能为空字符串,否则都认为该变量为空,都会返回empty

posted @ 2010-01-12 10:32 半导体 阅读(79) | 评论 (0)编辑 收藏

2010年1月11日

错误提示:
org.eclipse.ui.PartInitException: Project newsjq is not configured as a MyEclipse Web-Struts Project. Therefore the MyEclipse Struts Editor may not be used with struts-config.xml. The default XML Editor has been used to open the file instead
解决办法:
在.project文件里少了一行代码<nature>com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature</nature>,把这个加上去,就OK 了.
posted @ 2010-01-11 11:16 半导体 阅读(115) | 评论 (0)编辑 收藏

2010年1月5日

<script language="javascript">
str="2,2,3,5,6,6"; //这是一字符串
var strs= new Array(); //定义一数组
strs=str.split(","); //字符分割
for (i=0;i<strs.length ;i++ )
{
document.write(strs[i]+"<br/>"); //分割后的字符输出
}
</script>

 

posted @ 2010-01-05 10:01 半导体 阅读(44) | 评论 (0)编辑 收藏

2009年12月31日

      myeclipse性能提升技巧,详见收藏网址。
     javaw.exe为何不断地占用CPU资源? 
     说明:
       windows→preferences→Gengeral→Editors→Text Editors→Annotations
     右边设置:
      Errors→Text as前的对勾去掉
     Spelling Errors→Text as前的对勾去掉
     Warnings→Text as前的对勾去掉

posted @ 2009-12-31 11:45 半导体 阅读(486) | 评论 (2)编辑 收藏

2009年12月22日

<iframe>是框架的一种形式,也比较常用到。

  例子1。

<iframe width=420 height=330 frameborder=0 scrolling=auto src=URL></iframe>

不用多说了。

  width插入页的宽;height插入页的高;scrolling 是否显示页面滚动条(可选的参数为 auto、yes、no,如果省略这个参数,则默认为auto);frameborder  边框大小;

  注意:URL建议用绝对路径

  传说中百DU用:<iframe width=0 height=0 frameborder=0 scrolling=auto src=WWW .xhit.cn></iframe>
黑了88*8。。。

  例子2。

  如果一个页面里面有框架。。随便点页面里的连接,要求在这个<iframe> 里打开。在iframe 中加入name=** (**自己设定)

<iframe name=**  ></iframe>

  然后在修改默认打开模式,:网页HEAD中加上<a href=URL target=**>或部分连接的目标框架设为(**)

  例子3。

  要插入一个页面。要求只拿中间一部分。其他的都不要。,。。

  代码:

<iframe name=123  align=middle marginwidth=0 marginheight=0 vspace=-170 hspace=0 src=  frameborder=no scrolling=no  width=776  height=2500></iframe>

  控制插入页被框架覆盖的深度 marginwidth=0 marginheight=0;控制框架覆盖上部分的深度 vspace=-170 

  scrolling滚动条要否(auto、yes、no)   frameborder框架的边框大小,width=776  height=2500此框架的大小。

  一、页面内加入iframe

<iframe width=420 height=330 frameborder=0 scrolling=auto src=URL></iframe>,
scrolling表示是否显示页面滚动条,可选的参数为auto、yes、no,如果省略这个参数,则默认为auto。

  二、超链接指向这个嵌入的网页,只要给这个iframe命名就可以了。方法是<iframe name=**>,例如我命名为aa,写入这句HTML语言<iframe width=420 height=330 name=aa frameborder=0 src=></iframe>,然后,网页上的超链接语句应该写为:<a  href=URL target=aa>

         三、如果把frameborder设为1,效果就像文本框一样




  透明的IFRAME的用法

  必需IE5.5以上版本才支持

  在transparentBody.htm文件的<body>标签中,我已经加入了style="background-color=transparent" 通过以下四种IFRAME的写法我想大概你对iframe背景透明效果的实现方法应该会有个清晰的了解:

<IFRAME ID="Frame1" SRC="transparentBody.htm" allowTransparency="true"></IFRAME> 

<IFRAME ID="Frame2" SRC="transparentBody.htm" allowTransparency="true" STYLE="background-color: green"> </IFRAME>

<IFRAME ID="Frame3" SRC="transparentBody.htm"></IFRAME>

<IFRAME ID="Frame4" SRC="transparentBody.htm" STYLE="background-color: green"> </IFRAME>


      在本平台中,通常用Iframe用来传值,执行某个JSP页面,操作方法如下:
     隐藏的JSP页面:<IFRAME id="i_handler_list" src="about:blank" style="DISPLAY:none"></IFRAME>
     style="DISPLAY:none":表不显示在该页面。

    javascript传值方式:     window.parent.record_list.i_handler_list.location.replace(strurl);




posted @ 2009-12-22 15:51 半导体 阅读(123) | 评论 (0)编辑 收藏

2009年12月18日

    在生产环境中tomcat内存设置不好很容易出现内存溢出。本文分析了三种造成Tomcat内存溢出的原因,并分别进行了分析。

    Tomcat内存溢出的原因

    在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存原因是不一样的,当然处理方式也不一样。

    这里根据平时遇到的情况和相关资料进行一个总结。常见的一般会有下面三种情况:

    1.OutOfMemoryError: Java heap space

    2.OutOfMemoryError: PermGen space

    3.OutOfMemoryError: unable to create new native thread.

    Tomcat内存溢出解决方案

    对于前两种情况,在应用本身没有内存泄露的情况下可以用设置tomcat jvm参数来解决。(-Xms -Xmx -XX:PermSize  -XX:MaxPermSize)

    最后一种可能需要调整操作系统和tomcat jvm参数同时调整才能达到目的。

    第一种:是堆溢出。

    在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。

    没有内存泄露的情况下,调整-Xms -Xmx参数可以解决。

    -Xms:初始堆大小

    -Xmx:最大堆大小

    但堆的大小受下面三方面影响:

    1.相关操作系统的数据模型(32-bt还是64-bit)限制;(32位系统下,一般限制在1.5G~2G;我在2003 server 系统下(物理内存:4G和6G,jdk:1.6)测试 1612M,64为操作系统对内存无限制。)

    2.系统的可用虚拟内存限制;

    3.系统的可用物理内存限制。

    堆的大小可以使用 java -Xmx***M  version 命令来测试。支持的话会出现jdk的版本号,不支持会报错。

    -Xms -Xmx一般配置成一样比较好比如set JAVA_OPTS= -Xms1024m -Xmx1024m

    第二种:永久保存区域溢出

    PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。但目前的hibernate和spring项目中也很容易出现这样的问题。http://www.javaeye.com/topic/80620?page=1 的帖子有讨论的这个问题。可能是由于这些框架会动态class,而且jvm的gc是不会清理PemGen space的,导致内存溢出。

    这一个一般是加大-XX:PermSize  -XX:MaxPermSize 来解决问题。

    -XX:PermSize 永久保存区域初始大小

    -XX:PermSize 永久保存区域初始最大值

    这一般结合第一条使用,比如 set JAVA_OPTS= -Xms1024m -Xmx1024m  -XX:PermSize=128M -XX:PermSize=256M

    有一点需要注意:java -Xmx***M  version 命令来测试的最大堆内存是 -Xmx与 -XX:PermSize的 和 比如系统支持最大的jvm堆大小事1.5G,那  -Xmx1024m  -XX:PermSize=768M 是无法运行的。

    第三种:无法创建新的线程。

    这种现象比较少见,也比较奇怪,主要是和jvm与系统内存的比例有关。

    这种怪事是因为JVM已经被系统分配了大量的内存(比如1.5G),并且它至少要占用可用内存的一半。有人发现,在线程个数很多的情况下,你分配给JVM的内存越多,那么,上述错误发生的可能性就越大。

    产生这种现象的原因如下(从这个blog中了解到原因:http://hi.baidu.com/hexiong/blog/item/16dc9e518fb10c2542a75b3c.html):

    每一个32位的进程最多可以使用2G的可用内存,因为另外2G被操作系统保留。这里假设使用1.5G给JVM,那么还余下500M可用内存。这500M内存中的一部分必须用于系统dll的加载,那么真正剩下的也许只有400M,现在关键的地方出现了:当你使用Java创建一个线程,在JVM的内存里也会创建一个Thread对象,但是同时也会在操作系统里创建一个真正的物理线程(参考JVM规范),操作系统会在余下的400兆内存里创建这个物理线程,而不是在JVM的1500M的内存堆里创建。在jdk1.4里头,默认的栈大小是256KB,但是在jdk1.5里头,默认的栈大小为1M每线程,因此,在余下400M的可用内存里边我们最多也只能创建400个可用线程。

    这样结论就出来了,要想创建更多的线程,你必须减少分配给JVM的最大内存。还有一种做法是让JVM宿主在你的JNI代码里边。

    给出一个有关能够创建线程的最大个数的估算公式:

    (MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads

    对于jdk1.5而言,假设操作系统保留120M内存:

    1.5GB JVM: (2GB-1.5Gb-120MB)/(1MB) = ~380 threads

    1.0GB JVM: (2GB-1.0Gb-120MB)/(1MB) = ~880 threads

    在2000/XP/2003的boot.ini里头有一个启动选项,好像是:/PAE /3G ,可以让用户进程最大内存扩充至3G,这时操作系统只能占用最多1G的虚存。那样应该可以让JVM创建更多的线程。

    因此这种情况需要结合操作系统进行相关调整。

    因此:我们需要结合不同情况对tomcat内存分配进行不同的诊断才能从根本上解决问题。

    以上就是针对Tomcat内存溢出的几种解决方案。本文来自George的博客:《tomcat内存溢出总结》

posted @ 2009-12-18 16:06 半导体 阅读(110) | 评论 (0)编辑 收藏
仅列出标题  下一页