通过jQuery的addClass来使得table的row高亮显示的困惑

问题起因:目前的项目中要实现下面的功能,在对话框中提供检索功能,检索结果使用table显示,然后使用鼠标单击行进行选中处理。为了使得画面更加易用,在鼠标移动经过某一行时,让改行进行高亮。使用jQuery进行下面的处理

//these two line adds the color to each different row
$("#mytable tr:even").addClass("eventr");;
$("#mytable tr:odd").addClass("oddtr");;
//handle the mouseover , mouseout and click event
$("#mytable tr").mouseover(function() {$(this).addClass("trover");}).mouseout(function() {$(this).removeClass("trover");}).click(function() {$(this).toggleClass("trclick");});

但是无论如何尝试,总达不到理想效果。目前问题还在困惑中。
... Read more!

在通过showModalDialog弹出的窗口中submit

问题:在通过showModalDialog弹出的子窗口中执行submit提交时,会弹出一个新窗口,并且无法正常获取目前的session
环境:SUN的JSF RI 1.2 TOMCAT6

经由:做JSF开发是第一次,这次从共通,基盘开始都是从0着手。以前用struts用惯了,没有感觉页面会有什么困难。但是在做子窗口进行查询的时候就遇到这个棘手的问题。google了一下。得出结论如下:
<head></head>标签里面加入如下标签
<base target="_self" />
... Read more!

在Ubuntu 7.10中Linux安装 Oracle 11g

在Ubuntu 7.10中Linux安装 Oracle 11g


这里是最新更新:在Ubuntu 7.10中Linux安装 Oracle 11g
环境准备:
OS版本:Ubuntu 7.10 (实际上在8.04中也没有问题)
Oracle版本:11gR1
安装方式:本地安装
本文是参考Installing Oracle 11g on Ubuntu 7.10 ,但实际上是半翻译性质,加入了自己在实际中遇到的问题,以及解决方法,但是所有的命令以及画面截图都没有替换,还是使用原来作者的截图。或许在实际安装中会有一些出入。
这里描述的是完全从0 开始安装Oracle,如果是几次安装失败然后重新安装的话,不必从这里重新开始,自己判断从下面的某一步开始继续您的操作,我在实际中遇到了一些问题,导致安装失败,基本上都是从建立Oracle安装目录,运行安装界面开始的。在安装中遇到过不少问题,也反复过好多次,每次重新安装的时候都是将已经安装上的旧文件删除,然后从头安装。在Linux中安装或许这个是一大好处。

1,安装前准备
首先确认一下自己的版本,然后更新一下系统。
root@idlebox:~# uname -a
Linux idlebox 2.6.22-14-server #1 SMP Sun Oct 14 23:34:23 GMT 2007 i686 GNU/Linux
root@idlebox:~# apt-get update
(...)
root@idlebox:~# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
  libssl0.9.8 tzdata
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 3479kB of archives.
After unpacking 262kB of additional disk space will be used.
Do you want to continue [Y/n]?
安装一些安装Oracle所必须的包:(你可以使用sudo su来进入root)
root@idlebox:~# apt-get install gcc make binutils libaio1 gawk ksh libc6-dev rpm libmotif3 alien lsb-rpm libtool
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  autotools-dev cpp cpp-4.1 debhelper dpkg-dev gcc-4.1 gcc-4.1-base gettext html2text intltool-debian libbeecrypt6 libice6 libneon25 librpm4 libsm6
  libx11-6 libx11-data libxau6 libxdmcp6 libxext6 libxml2 libxmu6 libxp6 libxt6 linux-libc-dev patch po-debconf x11-common
Suggested packages:
  lintian binutils-doc cpp-doc gcc-4.1-locales dh-make debian-keyring gcc-multilib manpages-dev autoconf automake1.9 flex bison gdb gcc-doc
  gcc-4.1-multilib gcc-4.1-doc cvs gettext-doc glibc-doc libtool-doc automaken g77 fortran77-compiler gcj make-doc diff-doc
Recommended packages:
  libmudflap0-dev libltdl3-dev xml-core libmail-sendmail-perl libcompress-zlib-perl
The following NEW packages will be installed:
  alien autotools-dev binutils cpp cpp-4.1 debhelper dpkg-dev gawk gcc gcc-4.1 gcc-4.1-base gettext html2text intltool-debian ksh libaio1 libbeecrypt6
  libc6-dev libice6 libmotif3 libneon25 librpm4 libsm6 libtool libx11-6 libx11-data libxau6 libxdmcp6 libxext6 libxml2 libxmu6 libxp6 libxt6 linux-libc-dev
  lsb-rpm make patch po-debconf rpm x11-common
0 upgraded, 40 newly installed, 0 to remove and 0 not upgraded.
Need to get 5355kB/21.2MB of archives.
After unpacking 69.8MB of additional disk space will be used.
Do you want to continue [Y/n]? 
安装必须的包后,做下面的操作,修改sh的指向。
root@idlebox:~# cd /bin
root@idlebox:~# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2007-11-04 15:29 /bin/sh -> dash
root@idlebox:/bin# ln -sf bash /bin/sh
root@idlebox:/bin# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2007-11-05 10:42 /bin/sh -> bash
对我们的系统做一些修改,添加oracle相关的用户和组。
01 root@idlebox:~# addgroup oinstall
   Adding group `oinstall' (GID 1001) ...
   Done.
02 root@idlebox:~# addgroup dba
   Adding group `dba' (GID 1002) ...
   Done.
03 root@idlebox:~# addgroup nobody
   Adding group `nobody' (GID 1003) ...
   Done.
04 root@idlebox:~# usermod -g nobody nobody
05 root@idlebox:~# useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle
06 root@idlebox:~# passwd -l oracle
   Password changed.
07 root@idlebox:~# mkdir /home/oracle
08 root@idlebox:~# chown -R oracle:dba /home/oracle
09 root@idlebox:~# ln -s /usr/bin/awk /bin/awk
10 root@idlebox:~# ln -s /usr/bin/rpm /bin/rpm
11 root@idlebox:~# ln -s /usr/bin/basename /bin/basename
12 root@idlebox:~# mkdir /etc/rc.d
13 root@idlebox:~# for i in 0 1 2 3 4 5 6 S ; do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d ; done
14 root@idlebox:~# mkdir -p /u01/app/oracle
15 root@idlebox:~# chown -R oracle:dba /u01
  • Lines 01-03 添加了必须的用户组。
  • Line 04 adapts Ubuntu nobody users so the Oracle installer doesn’t get confused.
  • On lines 05-08 创建oracle用户,并且锁住帐号帐号使得该帐号禁止登录,并且创建oracle帐号的HOME目录,注意这个目录不是ORACL_HOME。
  • On lines 09-13 创建一些链接,避免在安装时候可能会出现一些问题。
  • 最后, 在lines 14-15 创建ORACLE_BASE 和 ORACLE_HOME. 这里是你实际安装的目标路径。
下面我们要修改一些是同参数。首先加入下面的内容到你的 /etc/sysctl.conf (具体解释可以看一下一些详细的参数介绍资料)
fs.file-max = 65535
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
增加下面的内容到 /etc/security/limits.conf:文件的最后
oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535
操作下面的命令,对 /etc/pam.d/login 进行必要的修改。
cat >> /etc/pam.d/login << EOF
session required /lib/security/pam_limits.so
session required pam_limits.so
然后我们要加载我们修改的 /etc/sysctl.conf 文件的设置,使的不需要重新启动系统而立即生效。
root@idlebox:~# sysctl -p
kernel.printk = 4 4 1 7
kernel.maps_protect = 1
fs.file-max = 65535
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
2,安装Oracle
假设我们的安装文件在 /media/database,首先我们切换到root用户,执行如下操作:
root@idlebox:~# xhost +
然后通过su切换到oracle用户。配置一下下面的环境变量:
root@idlebox:~# su - oracle
oracle@idlebox:~$ export DISPLAY=:0.0
oracle@idlebox:~$ export LC_ALL=C
然后启动我们的图形安装界面,加入 -ignoreSysPrereqs 参数。
oracle@idlebox:~$ cd /media/database/
oracle@idlebox:/media/database$ ./runInstaller -ignoreSysPrereqs
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 80 MB.   Actual 6555 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 400 MB    Passed
Checking monitor: must be configured to display at least 256 colors
    >>> Could not execute /usr/bin/xdpyinfo    Failed <<<<

>>> Ignoring required pre-requisite failures. Continuing…

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2007-11-04_09-39-05PM. Please wait …
等待数秒后,我们会看到下面的安装界面。点击 Next.
更改group为 dba 然后点击 Next:
在这个界面,选择Oracle的安装路径,然后点击 Next:
点击勾上所有的checkbox,然后点击Next.
在这个界面你可以选择是否创建一个数据库,或者单纯的安装Oracle,我是选择的创建一个数据库,后面会提示你的数据库的SID,以及相关的密码,这边的画面可能会有一点出入,但是并不是很复杂,自己稍微作一下判断,这边是仅仅安装Oracle而不创建数据库的截图,请注意!!然后点击Next
安装确认画面,点击 Install:
整个安装过程会需要一定的时间。
到安装进度的最后,(如果是选择了创建一个数据库的话,可能会耗费更多的时间)会跳出来一个对话框,要求你用root权限,运行两个脚本,注意在运行这两个必要的脚本之前,不要点击OK按钮。
新开一个窗口,执行上面画面提示的脚本:
root@idlebox:~# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory to 770.
Changing groupname of /u01/app/oraInventory to dba.
The execution of the script is complete
root@idlebox:~# /u01/app/oracle/product/11.1.0/db_1/root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/11.1.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: (hit enter)
   Copying dbhome to /usr/local/bin …
   Copying oraenv to /usr/local/bin …
   Copying coraenv to /usr/local/bin …

Creating /etc/oratab file…
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
执行完毕后,点击上面界面的OK按钮,进入到最后的界面。
到这里安装已经基本结束,但是我们还必须要做一些事情,修改/etc/profile文件,加入下面两行:
export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
export PATH=$PATH:/u01/app/oracle/product/11.1.0/db_1/bin
添加一个自动启动脚本,内容如下:(如果你在安装的时候选择创建一个数据库的话,本脚本会在系统启动的时候启动在/etc/oratab文件中设置的数据库实例。
#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Listener and Instances
# It relies on the information on /etc/oratab

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
export ORACLE_OWNR=oracle
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
    echo "Oracle startup: cannot start"
    exit 1
fi

case "$1" in
    start)
        # Oracle listener and instance startup
        echo -n "Starting Oracle: "
        su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
        su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME_LISTNER"
        touch /var/lock/oracle
        echo "OK"
        ;;
    stop)
        # Oracle listener and instance shutdown
        echo -n "Shutdown Oracle: "
        su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
        su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME_LISTNER"
        rm -f /var/lock/oracle
        echo "OK"
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: `basename $0` start|stop|restart|reload"
        exit 1
esac

exit 0
将上述文件保存到 /etc/init.d/oracledb 修改期拥有者为 root,加入可执行权限:
root@idlebox:~# chmod a+x /etc/init.d/oracledb
如果你希望在系统启动的时候启动数据库的话,执行下面的操作:
root@idlebox:/bin# update-rc.d oracledb defaults 99
 Adding system startup for /etc/init.d/oracledb ...
   /etc/rc0.d/K99oracledb -> ../init.d/oracledb
   /etc/rc1.d/K99oracledb -> ../init.d/oracledb
   /etc/rc6.d/K99oracledb -> ../init.d/oracledb
   /etc/rc2.d/S99oracledb -> ../init.d/oracledb
   /etc/rc3.d/S99oracledb -> ../init.d/oracledb
   /etc/rc4.d/S99oracledb -> ../init.d/oracledb
   /etc/rc5.d/S99oracledb -> ../init.d/oracledb
如果你在安装的同时创建了一个数据库实例,那么你可以在/etc/oratab中看到如下内容
orcl:/u01/app/oracle/product/11.1.0/db_1:N
这里的orcl是你创建时候的SID,上面的内容代表启动的时候不自动启动此数据库实例,你需要讲”N“改为”Y“,如下:
orcl:/u01/app/oracle/product/11.1.0/db_1:Y
将你自己的帐号加入到dba的组中去,你可以直接编辑 /etc/group 文件:
dba:x:1002:oracle,pythian
下面你可以测试一下你的安装了n:
pythian@idlebox:~$ sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 - Production on Mon Nov 5 12:23:20 2007

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

SQL> connect /as sysdba
Connected.
SQL>
在系统安装完毕后,数据库是处于运行状态的,同时,如果你选择了创建数据库,那么Oracle的企业管理服务也同时处于运行状态。你可以在浏览器中打开企业管理器,如下:
https://localhost:1158/em
注意上面的oracledb A脚本中并不会自动启动你的企业管理服务,这个家伙太过于巨大了,在emctl运行状态,你可以看看你的CPU负荷,我的是基本保持100%。
你可以通过下面的命令来启动或者停止emctl
oracle@idlebox:~$ export ORACLE_SID=orcl
oracle@idlebox:~$ $ORACLE_HOME/bin/emctl start dbconsole

停止emctl
oracle@idlebox:~$ export ORACLE_SID=orcl
oracle@idlebox:~$ $ORACLE_HOME/bin/emctl stop dbconsole

===END===

... Read more!

日本的民族主义

今天下午去拜访老友,经过横滨的时候,因为顺便要去银行半点事情,出了一下车站,车站广场的一个异常亢奋的演讲声让我忍不住驻足。看了他们的标语,听了他们的演讲,让身为中国人的我感到异常的愤怒。 DSC_0005 但就奥运会来讲,日本是最没有资格讲抵制的,或许没有多少人了解,1940年的奥运会的情况。1938年国际奥委会开罗会议后不久,日本奥委会保证如期举行奥运的梦幻破灭了,在军方压力下,不得不宣布1940年日本无法举行奥运会。德国纳粹虽然急于发动战争,却还想利用奥运会为自己贴金。而日本这国主义却是赤膊上阵,肆无忌惮地宣称,为了纪念帝国建立2600周年,要在1940年举行大规模的军事演习,不想搞什么奥运会。在这种形势下,国际奥委会才决定将夏季奥运会会址改在赫尔辛基,会期定在1940年7月20日至8月4日。 DSC_0003 还打着救国济民的幌子。 DSC_0007 注意了一下周边,这个人异常亢奋的演讲了半天,听众是寥寥无几。跟以前竞选期间的演讲热度完全不可以相比。 DSC_0008 这个名字非常有意思。嘿嘿。~~
... Read more!

上周的BBQ

应该是两三周以前,小段同学就张罗着BBQ了,但是种种原因,上周终于决定去了。老天也帮忙,是一个不错的天气,虽然小段同学一直是好天气的克星,但是那天他的“反作用”没有发挥出来。

DSC_0001

地点非常不错,离车站也很近,虽然我迟到了接近一个小时,但是还是赶上了开始。三位猛将兄在不断的测试风向,调整火势。
DSC_0003
第一只海螺肉的出膛,是采用最原始的方式来达成的。还把段同学家做饭的筷子给折断了。看看下面的成果。
DSC_0005
DSC_0006
DSC_0090
这个我就不想多说什么了。汗。。。。。。。。。。。。。

DSC_0011

干杯三人组。虽然是大热天,河水还真冷。

DSC_0017

准备的材料非常丰富阿。

DSC_0021

段夫人亲自做的调料,非常合我的口味,再次谢谢了。嘿嘿。。

DSC_0020

大虾非常的爽。


DSC_0031
DSC_0024
DSC_0036

DSC_0055

段夫人的手法真是佩服。

DSC_0056
DSC_0058

玩水咯。。。

DSC_0059
DSC_0074

挑战了一下激流,虽然看上去表面上很平静,下面的水流可真是吓人阿。

... Read more!

7月6日,BBQ

DSC_0001DSC_0005
DSC_0003DSC_0006
DSC_0007DSC_0011
DSC_0020DSC_0021
DSC_0024DSC_0031
DSC_0036DSC_0043
DSC_0055DSC_0056
DSC_0058DSC_0059
DSC_0074DSC_0090
DSC_0092DSC_0095
endend
DSC_0104
... Read more!