<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    牛仔褲的夏天

    JAVA是藍(lán)色的- online

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      30 隨筆 :: 5 文章 :: 15 評(píng)論 :: 0 Trackbacks

    #

         摘要: from: http://bobcat.webappcabaret.net/javachina/faq/ant_01.htm FAQ on ANT Building Process by Roseanne Zhang scjp, advanced, job tips, xml, ant, c/c++, ...  閱讀全文
    posted @ 2006-03-27 10:00 luckyrobbie 閱讀(191) | 評(píng)論 (0)編輯 收藏

    aix的系統(tǒng)備份命令是mksysb, make system backup ,有點(diǎn)類似 ghost.

    aix5.3支持微分區(qū)技術(shù),所謂微分區(qū)就是1臺(tái)機(jī)器上裝多個(gè)OS(操作系統(tǒng)),把這臺(tái)機(jī)器上的cpu資源進(jìn)行劃分,然后分配給每一個(gè)os使用,最小粒度是0.1個(gè)cpu.有點(diǎn)類似vmware軟件.讓一個(gè)機(jī)器跑多個(gè)操作系統(tǒng).這項(xiàng)技術(shù)早在ibm的大機(jī)上就已經(jīng)實(shí)現(xiàn)了.只不過(guò)最近才在小機(jī)和pc機(jī)器上發(fā)布.

    TIVOLI是系統(tǒng)管理軟件.

    關(guān)閉aix的命令:shutdown ->正常關(guān)機(jī),關(guān)閉所有服務(wù). halt -> 相當(dāng)于直接關(guān)閉電源.
    重啟aix:shutdown -Fr

    查看出錯(cuò)信息:errpt errpt -a | more -> 分頁(yè)顯示 errpt -a > /tmp/err01 輸出到文件.
    清除錯(cuò)誤信息:errclear 0

    smit 用鼠標(biāo)操作 smitty 用鍵盤來(lái)操作,一般用smitty為好.

    ping -f 全速ping ,利用所有的服務(wù)器資源來(lái)ping,如果是多個(gè)服務(wù)器ping一個(gè)ip,可以把機(jī)器ping死.

    幾個(gè)關(guān)于磁盤的名詞:
    lv: logical volume 邏輯卷
    pv: physical volume 物理卷
    vg: volume group 卷組
    pp: physical partition 物理分區(qū)
    lp: logical partition 邏輯分區(qū)

    pv對(duì)應(yīng)的是物理硬盤或者是磁盤陣列上劃分的lun,一個(gè)vg最多可以有1016個(gè)pp.
    pv的上面是vg,一個(gè)vg可以包含多個(gè)pv.
    vg的上面是lv,lv如果不作任何處理就是裸設(shè)備,也可以作成文件系統(tǒng).
    lv被分為多個(gè)lp,默認(rèn)情況下,lp與pp是一一對(duì)應(yīng)的,也可以做成一對(duì)多的.這樣就相當(dāng)于用多個(gè)pp來(lái)作raid0備份.

    lsdev -C | grep disk 可以查看物理磁盤的硬件信息
    lspv 查看pv的信息 -p hdisk0 查看具體數(shù)據(jù)存放的位置:例如,數(shù)據(jù)在第m到n個(gè)pp上面.
    lsvg 查看vg的信息 -l vg的列表 -c 被使用的vg -l rootvg 查看rootvg的詳情.
    lslv -m lv1 查看lv1 的lp與pp的映射.
    getlvcv -AT lv1 看到lv1的控制信息.
    fsck -y /dev/newlv 檢查lv.

    smit vg 可以管理vg
    smit lv 管理lv

    varryonvg rootvg 激活rootvg卷組,varryoffvg newvg 使newvg卷組脫機(jī).

    nbpi:number of bytes per inode 每個(gè)i節(jié)點(diǎn)擁有的字節(jié)數(shù),這個(gè)參數(shù)越小,文件系統(tǒng)的可用的inode越多.如果inode用完,即使有剩余空間,系統(tǒng)也會(huì)報(bào)空間不夠.此時(shí)要調(diào)小nbpi的值.一般是4k
    df -k 中iused 指的是i節(jié)點(diǎn)的使用情況.

    設(shè)置從cd啟動(dòng),bootlist -m normal cd0

    啟動(dòng)時(shí)按ESC+1或者F1,可以進(jìn)入啟動(dòng)菜單.選擇啟動(dòng)方式.

    用smitty crfs 創(chuàng)建完文件系統(tǒng)以后還要mount.
    /etc/filesystems 文件記錄文件系統(tǒng)的信息.如想把某個(gè)lv映射到不同的文件系統(tǒng)路徑上面,可以直接修改這個(gè)文件.

    用logform /dev/testloglv 將lv格式化成jfs的log的格式.

    file 文件名 可以看某個(gè)文件的信息,包括文件類型,可執(zhí)行文件,文本文件,等等.

    uname -a 可以看到os的信息.

    fsck 檢查文件系統(tǒng)的信息,在umount的時(shí)候是準(zhǔn)確的, 相當(dāng)于windows的磁盤掃描.

    碎片整理 smitty jfs

    lsfs /root 顯示文件系統(tǒng)的屬性

    各個(gè)組件的關(guān)系:

    lsps -a 查看page space的使用情況

    vgda:vg description area 每個(gè)vg的頭部存放vg的描述信息,
    如果包含2個(gè)pv,那么第一個(gè)pv會(huì)在頭部和另一個(gè)位置存放2個(gè)vgda,第2個(gè)pv也會(huì)存放一個(gè).
    如果包含3個(gè)pv,那么每個(gè)pv上都有1個(gè)vgda.
    vg的信息在odm中也會(huì)存儲(chǔ),但必須和vgda中的信息一致,否則無(wú)法varryonvg,有下面4個(gè)命令來(lái)管理odm中的vg信息.
    importvg:從vgda中讀取信息到odm中
    exportvg:從odm中刪除vg信息
    varryonvg:激活(online)vg
    varryoffvg:卸載(offline)vg

    修改vg的factor,這樣可以將vg的max pp 從默認(rèn)的1016 增大1倍,到2032,但由于vgda的總大小不變,這些信息都是記錄到里面的.所以vg的最大文件數(shù)要減小1倍,實(shí)際上是個(gè)等式:max pp * max file = 固定的一個(gè)值,factor增大,實(shí)際上是max pp * factor,max file / factor.具體做法:chvg -t 2 rootvg 修改factor為2.vgda

    用cfgmgr,來(lái)刷新,來(lái)認(rèn)出新assign的hdisk.
    cfgmgr -v 檢查新設(shè)備,新硬件.
    -i /dev/cd0 從光盤自動(dòng)安裝新硬件驅(qū)動(dòng).

    當(dāng)作雙機(jī)時(shí),2個(gè)服務(wù)器server1 和 server2 來(lái)連接同一個(gè)盤陣,server1對(duì)磁盤分配一個(gè)pvid,當(dāng)?shù)谝淮吻袚Q到server2時(shí),要用ckdev命令來(lái)讀出server1配置的pvid.系統(tǒng)是通過(guò)pvid來(lái)識(shí)別pv的.
    ckdev -l hdisk1 -a pv = clear 清除pvid
    ckdev -l hdisk1 -a pv = yes 新置pvid

    lsdev 查看物理設(shè)備
    lsdev -C 顯示所有設(shè)備狀態(tài)
    rmdev -l cd0 邏輯刪除 cd0
    mkdev -l cd0 安裝cd0
    rmdev -d -l cd0 刪除cd0設(shè)備驅(qū)動(dòng)

    查看cpu的信息
    lsattr -El proc0
    lsdev -C | grep proc
    查看內(nèi)存的信息
    lsattr -El mem0
    查看光驅(qū)的信息
    lsattr -El cd0
    查看硬盤的信息
    lsattr -El hdisk0

    lscfg -vp | more 分頁(yè)看全部硬件信息
    prtconf | more 列出硬件信息

    查看誰(shuí)在使用cdrom fuser /cdrom -k 直接殺掉用戶進(jìn)程

    telnet的登陸信息存放在/etc/motd文件中.
    想查看最近有誰(shuí)登陸,用last命令.
    查看登錄失敗的信息: /etc/security/failedlogin
    存放用戶密碼的文件:/etc/security/passwd

    用戶登錄需要運(yùn)行的腳本:
    1 /etc/profile
    2 /etc/environment 在這個(gè)文件中設(shè)置中文環(huán)境,LANG=zh_CN
    3 用戶profile ,分2種情況:
    如果是命令行登錄,則運(yùn)行/home/user/.profile
    如果是圖形登錄,則運(yùn)行 /home/user/.dtprofile 需要將次文件中,#DTSOURCEPROFILE=TRUE 的# 去掉,否則還是使用.profile.

    在/dev下面有2種設(shè)備,一種是block設(shè)備,一種是char(字符)設(shè)備.這取決于不同的應(yīng)用.

    vmstat的某些行的解釋:
    vmstat->faults->cs: user calls 用戶調(diào)用的次數(shù)
    cpu->wa: >40 說(shuō)明io繁忙
    kthr: kernel thread
    kthr->r 在運(yùn)行隊(duì)列中等待執(zhí)行的進(jìn)程
    b 正在等待io的進(jìn)程
    memory->avm:active vitual memory 物理內(nèi)存+使用的虛擬內(nèi)存,以4k為單位.
    page->re:是pin 和 pout 的總和.
    sr:search的內(nèi)存塊數(shù).
    fr:釋放的內(nèi)存塊數(shù).
    每次作page out時(shí),系統(tǒng)要搜索物理內(nèi)存以找到可以釋放的塊,sr和fr分別代表搜索的和通過(guò)搜索找到的可以釋放的塊 數(shù).如果2者很接近,說(shuō)明內(nèi)存中有很多用于file cache,內(nèi)存的數(shù)量是夠用的.如果fr/sr的值很小,說(shuō)明內(nèi)存不夠.

    tty:代表終端

    iostat:
    %tm_act 實(shí)際transaction的百分比
    tps 每秒發(fā)生的次數(shù)
    kbps 每秒的速率
    名詞:thrasing: 應(yīng)用程序頻繁交換,導(dǎo)致paging過(guò)多.

    /usr/samples/kernel/vmtune -f 120 -F 128
    -f 120 代表minfree mem < 120 時(shí)要進(jìn)行page out
    -F 128 代表maxfree mem > 128 時(shí)要進(jìn)行page in
    -p -P 也跟page out 有關(guān),具體不清楚,還需明確.

    sar->avque:平均的請(qǐng)求數(shù)

    對(duì)文件系統(tǒng)作監(jiān)視:filemon
    filemon -o /tmp/a.txt -O all -v
    運(yùn)行之后系統(tǒng)會(huì)一直監(jiān)視文件系統(tǒng)的使用情況并記錄日志,-T 64000 是使用的buffer cache,在大型系統(tǒng)上,這個(gè)值可以調(diào)大.
    運(yùn)行一段時(shí)間后,要停掉filemon,使用trcstop 或者 kill -9 進(jìn)程.
    從a.txt中可以看到使用最頻繁的文件等信息,有些類似statspack的報(bào)告.

    對(duì)于后綴是Z的文件用uncompress來(lái)解壓縮. uncompress a.tar.Z

    用strings 命令來(lái)看2進(jìn)制文件

    如何調(diào)大page space,直接設(shè)置對(duì)應(yīng)lv的大小.如果對(duì)應(yīng)lv的vg空間不夠的話,可以向vg中加硬盤.

    dd的用法:dd if=/dev/rnewfs of=/dev/rcopyfs bs=1024 count=10240
    bs: block size 塊大小,1024字節(jié)
    count: block count 塊的數(shù)量
    if是input file ,of 是output file

    將任務(wù)切換到后臺(tái)執(zhí)行: ctrl+z ,然后 bg+回車
    查看后臺(tái)執(zhí)行的程序:jobs
    把后臺(tái)執(zhí)行的程序切換到前臺(tái)執(zhí)行:fg %n n是后臺(tái)的job 編號(hào)

    ip抓包工具:iptrace 和 tcpdump
    iptrace -a a.out
    停止iptrace:kill -9
    tcpdump -i en1 -w a.out a.out 是輸出文件

    把進(jìn)程與cpu綁定:bindprocessor -U 進(jìn)程號(hào) cpuid
    bindprocessor -U 12345 0

    odm庫(kù):
    env | grep obj
    ODMDIR=/etc/objrepos 這是odm庫(kù)的存儲(chǔ)路徑

    在disk0上生成引導(dǎo)區(qū)
    bosboot -a -d /dev/hdisk0

    用kdb 查看os 的 dump

    ethernet channel 把2個(gè)網(wǎng)卡綁定到1個(gè)ip,可以作網(wǎng)絡(luò)負(fù)載均衡.

    crontab 設(shè)置定時(shí)任務(wù)
    crontab -l list the crontab
    crontab -e edit the crontab
    crontab的格式:分鐘 小時(shí) 月中的天數(shù) 月份 星期 命令
    minute:
    0 到 59
    hour:
    0 到 23
    day_of_month:
    1 到 31
    month:
    1 到 12
    weekday:
    星期日到星期六的 0 到 6 時(shí)
    要在每星期日上午 2 時(shí)運(yùn)行 fwlogmgmt 命令,請(qǐng)將下列各行添加至 crontab 文件底部:
    0 2 * * 0 /usr/bin/fwlogmgmt -1

    發(fā)送郵件,aix和redhad linux 都默認(rèn)安裝了smtp郵件服務(wù),可以直接給internet發(fā)郵件.
    mail -s "test mail"
    haochunpeng@ninetowns.com < $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert$ORACLE_SID.log
    mail -s "test mail"
    haochunpeng@ninetowns.com <<EOF
    ******** MAIL CONTENT *******
    FJLADSFJLAKHFGAL
    FJALDSKFJA
    FASLJFLASF
    *****************************
    EOF
    有了crontab和mail,就可以定時(shí)監(jiān)控?cái)?shù)據(jù)庫(kù),然后把報(bào)告發(fā)送郵件到管理員的信箱.

    kill -9 9 是kill命令傳送的一個(gè)信號(hào),一共15個(gè)信號(hào)可以發(fā)送.

    /etc/ftpusers 限制登錄ftp的用戶,誰(shuí)在這個(gè)文件里面,誰(shuí)就登不進(jìn)去.

    網(wǎng)絡(luò)服務(wù) /etc/inetd.conf 刷新 refresh src -d

    lslpp -l | grep http 查看安裝的軟件

    檢查瓶頸:
    利用vmstat iostat 查看總體情況,ps aux 可以看到具體進(jìn)程占用資源的情況.
    如果是io瓶頸,可以利用filemon -o /tmp/a.txt -O all; sleep 10;trcstop 來(lái)查看io資源的使用情況.

    辨別僵尸進(jìn)程:ps -ef pid 那列是 defunc的為僵尸進(jìn)程.

    幾個(gè)不錯(cuò)的aix網(wǎng)站:
    http://www.douzhe.com
    http://www.xfocus.net/articles/200208/433.html

    posted @ 2006-03-27 09:57 luckyrobbie 閱讀(2020) | 評(píng)論 (0)編輯 收藏

    昨晚貝貝的幼兒園里每個(gè)班級(jí)都召開家長(zhǎng)會(huì),這是貝貝的第一次家長(zhǎng)會(huì)。

    前一天貝貝媽媽讓我準(zhǔn)備的發(fā)言稿,可是在昨天上午的電話里面LP說(shuō)不準(zhǔn)備采納我寫的,她自己已經(jīng)準(zhǔn)備了一份了,郁悶。

    晚上我6點(diǎn)才趕到家,貝貝媽媽已經(jīng)開始出發(fā)去幼兒園了。于是我匆匆吃過(guò)晚飯,拉著貝貝去湊熱鬧。貝貝和我說(shuō)家長(zhǎng)會(huì)不能帶小孩去的。我告訴他沒關(guān)系,我們?cè)谟變簣@玩,不進(jìn)教室。

    帶著我買的奧特曼飛機(jī),貝貝在操場(chǎng)上的各個(gè)滑梯滑了n次,我們就開始往教室門口蹭了。上了樓梯,到了自己教室門口,貝貝賴著不肯往前走了,呵呵。過(guò)了一會(huì),他壯著膽子靠近了一點(diǎn),然后“啪啪啪啪”的大步跑過(guò)教室前的走廊,我心中一笑,仿佛看到了自己童年的影子。跟上去和他在前面的一個(gè)活動(dòng)空間一起玩。

    家長(zhǎng)會(huì)開了近2個(gè)小時(shí),比別的班級(jí)結(jié)束的晚,看來(lái)貝貝的老師還是比較認(rèn)真負(fù)責(zé)的。我們?cè)跇翘萆系鹊搅素愗悑寢專缓蟾吒吲d興的一起回家了。

    貝貝媽媽說(shuō),家長(zhǎng)會(huì)上老師多次表?yè)P(yáng)了貝貝。優(yōu)點(diǎn)是:有禮貌,守紀(jì)律,愛學(xué)習(xí),還有想象力和創(chuàng)造力比較豐富,這一點(diǎn)我特別欣賞。需要提高的是:動(dòng)手能力。我也覺得在家里太嬌慣貝貝了,今后要讓他自己的事情自己做。

    希望貝貝快快樂樂成長(zhǎng)。^^
    posted @ 2006-03-24 12:32 luckyrobbie 閱讀(241) | 評(píng)論 (0)編輯 收藏

    教孩子禮貌待人

       各位老師和家長(zhǎng),我是貝貝的媽媽,今日很高興能在這次家長(zhǎng)會(huì)上,和大家一起交流和探討關(guān)于對(duì)孩子進(jìn)行文明禮貌教育的話題。
           作為每個(gè)父母,都希望自己的孩子能夠從小養(yǎng)成講文明、懂禮貌的好習(xí)慣。文明禮貌的行為習(xí)慣是從小開始長(zhǎng)期實(shí)踐而形成的。如何對(duì)孩子進(jìn)行文明和禮貌教育,我認(rèn)為著重從以下三個(gè)方面開展:

             一、父母的言行和思維在孩子成長(zhǎng)過(guò)程中起到關(guān)鍵的影響作用
            小孩子的求知欲是非常強(qiáng)的,因此孩子的成長(zhǎng)過(guò)程也是一個(gè)學(xué)習(xí)的過(guò)程。孩子對(duì)于一個(gè)環(huán)境從陌生到熟悉的認(rèn)可過(guò)程,其實(shí)就是一種習(xí)慣的養(yǎng)成過(guò)程,這個(gè)環(huán)境是指孩子身邊的一切事物。孩子在和外界環(huán)境的接觸過(guò)程中,會(huì)不斷主動(dòng)或者被動(dòng)的接受一些言論、行為和思想。而作為與孩子關(guān)系最為密切的父母,則更應(yīng)在自己的言行舉止方面做到誠(chéng)實(shí)守信、禮貌待人,用文明的思想灌輸給子女,給孩子起到模范表率作用。久而久之,我們的孩子才會(huì)看在眼里,學(xué)在心里,并把父母的這種行為意識(shí)加上自己的理解作為一個(gè)定式記憶在自己的腦海中。而且會(huì)把這個(gè)思維定式作為一種潛意識(shí)在合適的場(chǎng)合表達(dá)出來(lái)。因此,我認(rèn)為父母的意識(shí)形態(tài)對(duì)孩子的表率作用在孩子的成長(zhǎng)過(guò)程中尤為重要。
            在日常生活中,我們?cè)谪愗惖臓敔斈棠碳依锏臅r(shí)間比較多,大家經(jīng)常在一起吃飯聊天和做游戲的場(chǎng)合也比較多。我和貝貝的爸爸對(duì)長(zhǎng)輩都是很尊重的,貝貝也在這種氛圍中也慢慢養(yǎng)成尊敬長(zhǎng)輩的好習(xí)慣。為了讓孩子能夠正確理解我們的一些做法,我們會(huì)在適當(dāng)?shù)臅r(shí)機(jī)和貝貝解釋為什么要在待人接物中文明禮貌的原因,貝貝會(huì)耐心地聽我們說(shuō),還會(huì)問(wèn)一些為什么的問(wèn)題,理解后就會(huì)知道怎么做是正確的,怎么做是錯(cuò)誤的。此外,我們有時(shí)會(huì)通過(guò)講故事的方法,加強(qiáng)孩子思維能力的培養(yǎng)。當(dāng)講到某個(gè)環(huán)節(jié),讓貝貝判斷出故事中某個(gè)小動(dòng)物或者小朋友應(yīng)該怎么做,或者對(duì)貝貝說(shuō)如果是你,你會(huì)怎么做。
            二、及時(shí)發(fā)現(xiàn)并糾正孩子的一些不好的做法
    .........................................................................
            三、在集體生活中培養(yǎng)文明禮貌的習(xí)慣
    ..........................................................................
           最后和大家分享一下我在一個(gè)早期教育節(jié)目中的收獲, 兒童最佳智力結(jié)構(gòu)是記憶力,注意力,觀察力,想象力,思維能力和操作能力這六方面的能力。其中思維能力是核心。我們有些家長(zhǎng)只注重孩子記憶力的訓(xùn)練,如記憶和背誦一些唐詩(shī)等等,而忽視了其他方面的鍛煉和開發(fā),缺乏想像力和創(chuàng)造力、動(dòng)手能力,造成智力結(jié)構(gòu)失衡發(fā)展,這是對(duì)孩子教育中的一個(gè)誤區(qū)。

    posted @ 2006-03-24 09:39 luckyrobbie 閱讀(296) | 評(píng)論 (0)編輯 收藏

    是學(xué)習(xí)JSF的時(shí)候了,請(qǐng)看下面摘抄的文章

    Struts和JSF/Tapestry都屬于表現(xiàn)層框架,這兩種分屬不同性質(zhì)的框架,后者是一種事件驅(qū)動(dòng)型的組件模型,而Struts只是單純的MVC模式框架,老外總是急吼吼說(shuō)事件驅(qū)動(dòng)型就比MVC模式框架好,何以見得,我們下面進(jìn)行詳細(xì)分析比較一下到底是怎么回事?

      首先事件是指從客戶端頁(yè)面(瀏覽器)由用戶操作觸發(fā)的事件,Struts使用Action來(lái)接受瀏覽器表單提交的事件,這里使用了Command模式,每個(gè)繼承Action的子類都必須實(shí)現(xiàn)一個(gè)方法execute。

      在struts中,實(shí)際是一個(gè)表單Form對(duì)應(yīng)一個(gè)Action類(或DispatchAction),換一句話說(shuō):在Struts中實(shí)際是一個(gè)表單只能對(duì)應(yīng)一個(gè)事件,struts這種事件方式稱為application event,application event和component event相比是一種粗粒度的事件。

      struts重要的表單對(duì)象ActionForm是一種對(duì)象,它代表了一種應(yīng)用,這個(gè)對(duì)象中至少包含幾個(gè)字段,這些字段是Jsp頁(yè)面表單中的input字段,因?yàn)橐粋€(gè)表單對(duì)應(yīng)一個(gè)事件,所以,當(dāng)我們需要將事件粒度細(xì)化到表單中這些字段時(shí),也就是說(shuō),一個(gè)字段對(duì)應(yīng)一個(gè)事件時(shí),單純使用Struts就不太可能,當(dāng)然通過(guò)結(jié)合JavaScript也是可以轉(zhuǎn)彎實(shí)現(xiàn)的。

      而這種情況使用JSF就可以方便實(shí)現(xiàn),

    <h:inputText id="userId" value="#{login.userId}">
      <f:valueChangeListener type="logindemo.UserLoginChanged" />
    </h:inputText>

      #{login.userId}表示從名為login的JavaBean的getUserId獲得的結(jié)果,這個(gè)功能使用struts也可以實(shí)現(xiàn),name="login" property="userId"

      關(guān)鍵是第二行,這里表示如果userId的值改變并且確定提交后,將觸發(fā)調(diào)用類UserLoginChanged的processValueChanged(...)方法。

      JSF可以為組件提供兩種事件:Value Changed和 Action. 前者我們已經(jīng)在上節(jié)見識(shí)過(guò)用處,后者就相當(dāng)于struts中表單提交Action機(jī)制,它的JSF寫法如下:

    <h:commandButton id="login" commandName="login">
      <f:actionListener type=”logindemo.LoginActionListener” />
    </h:commandButton>

      從代碼可以看出,這兩種事件是通過(guò)Listerner這樣觀察者模式貼在具體組件字段上的,而Struts此類事件是原始的一種表單提交Submit觸發(fā)機(jī)制。如果說(shuō)前者比較語(yǔ)言化(編程語(yǔ)言習(xí)慣做法類似Swing編程);后者是屬于WEB化,因?yàn)樗莵?lái)自Html表單,如果你起步是從Perl/PHP開始,反而容易接受Struts這種風(fēng)格。

    posted @ 2006-03-24 08:58 luckyrobbie 閱讀(213) | 評(píng)論 (0)編輯 收藏

    • 在JMS的Connection Factories 中新建一個(gè)連接工廠
    • 在Stores中新建一個(gè)存儲(chǔ)空間,可以為jdbc或者file類型
    • 在Servers中新建一個(gè)Server
    • 展開剛才創(chuàng)建的DemoJMSServer,新建一個(gè)Destinations,其中有2種類型,queue:點(diǎn)對(duì)點(diǎn)方式,topic:廣播方式給所有的MDB
    • 在jb中新建一個(gè)MDB,transaction type:bean ,Destination type:javax.jms.Queue,在Destination name中輸入剛才在weblogic的jms里面建立的目標(biāo)名稱,Pool properties的Maximum pool size:10
    • 在onMessage方法中加入代碼
      public?void?onMessage(Message?msg){?
      try?{

      ??????TextMessage?TMS?
      =?(TextMessage)?msg;

      ??????String?a1?
      =?TMS.getText();

      ??????String?b1?
      =?a1;

      ??????System.out.println(
      "Message?getted?Is?:"?+?a1?+?">>>>>>>>>>>OK");

      ??????Context?context?
      =?new?InitialContext();

      ??????Object?ref?
      =?context.lookup("Sess");? //session bean的本地接口

      ??????SessHome?sessHome?
      =?(SessHome)?PortableRemoteObject.narrow(ref,?SessHome.class);

      ??????sessHome.create().insTableAa11(a1,?b1);

      ??????
      //這是通過(guò)Session?Bean的insTableAa11調(diào)用EntityBean的ejbHomeEjbInsertAa11

      ??????
      //功能其是很簡(jiǎn)單,插入Aa11表一條記錄(a1,a1)

      ????}


      ????
      catch?(Exception?ex)?{

      ??????ex.printStackTrace();

      ????}

      }
    • deploy這個(gè)消息驅(qū)動(dòng)Bean
    • new一個(gè)MDBTestClient class
      package?bmpsessmdb;
      import?java.util.*;

      import?javax.jms.*;

      import?javax.naming.*;


      public?class?MDBTestClient?{
      ????
      public?final?static?String

      ??????JNDI_FACTORY?
      =?"weblogic.jndi.WLInitialContextFactory";

      ??
      public?final?static?String?URL?=?"t3://127.0.0.1:7001";

      ??
      private?static?final?String?QUEUE_CONNECTION_FACTORY?=

      ??????
      "DemoJMSConnectionFactory";

      ??
      private?static?final?String?QUEUE?=?"DemoJMSQueue";

      ??
      private?static?InitialContext?getInitialContext(String?url)?throws

      ??????NamingException?
      {

      ????Hashtable?env?
      =?new?Hashtable();

      ????env.put(Context.INITIAL_CONTEXT_FACTORY,?JNDI_FACTORY);

      ????env.put(Context.PROVIDER_URL,?url);

      ????
      return?new?InitialContext(env);

      ??}




      ??
      public?static?void?main(String[]?args)?throws?Exception?{

      ????Context?ctx?
      =?getInitialContext(URL);

      ????QueueConnectionFactory?qConnFact?
      =

      ????(QueueConnectionFactory)?ctx.lookup(QUEUE_CONNECTION_FACTORY);

      ????QueueConnection?qConn?
      =?qConnFact.createQueueConnection();

      ????QueueSession?qSess?
      =?qConn.createQueueSession(false,

      ??????????????????????????????????????????????????Session.AUTO_ACKNOWLEDGE);

      ????Queue?q?
      =?(Queue)?ctx.lookup(QUEUE);

      ????QueueSender?qSend?
      =?qSess.createSender(q);



      ????TextMessage?txtMsg?
      =?qSess.createTextMessage("songtx3");

      ????System.out.println(
      "Sending?a?message?to?queue");

      ????qSend.send(txtMsg);

      ????
      //---------------------------------------------------------//

      ????txtMsg?
      =?qSess.createTextMessage("songtx4");

      ????System.out.println(
      "Sending?a?message?to?queue");

      ????qSend.send(txtMsg);

      ????
      //---------------------------------------------------------//

      ????qConn.close();

      ????System.exit(
      0);

      ??}


      }
    • 運(yùn)行測(cè)試,over
    posted @ 2006-03-23 14:51 luckyrobbie 閱讀(1556) | 評(píng)論 (0)編輯 收藏

    1.為每個(gè)模塊準(zhǔn)備一個(gè)配置文件,如:
    ? struts-config.xml(缺省配置文件),
    ? struts-config-customer.xml,
    ? struts-config-order.xml
    每個(gè)配置文件的寫法可以參照struts-config.xml

    2.配置web.xml文件

    < servlet >
    < init - param > ???? // 缺省模塊
    ???? < param - name > config </ param - name >
    ????
    < param - value >/ WEB - INF / struts - config.xml </ param - value >
    </ init - param >

    < init - param > ????? // customer模塊
    ???? < param - name > config / customer </ param - name >
    ????
    < param - value >/ WEB - INF / struts - config - customer.xml </ param - value >
    </ init - param >

    < init - param > ????? // order模塊
    ???? < param - name > config / order </ param - name >
    ????
    < param - value >/ WEB - INF / struts - config - order.xml </ param - value >
    </ init - param >
    </ servlet >

    3.準(zhǔn)備各個(gè)模塊所需的ActionForm、Action和JSP等資源

    在多模塊間進(jìn)行全局轉(zhuǎn)發(fā)
    struts-config.xml:

    < struts - config >
    ????
    < global - forwards >
    ????
    < forword?name = “toModuleB”
    ????????contextRelative
    = true

    ????????path
    = / moduleB / index. do

    ????????redirect
    = true ”? />

    ????
    </ global - forwards >
    </ struts - config >
    posted @ 2006-03-22 16:04 luckyrobbie 閱讀(376) | 評(píng)論 (0)編輯 收藏

    在tomcat中的配置比較簡(jiǎn)單
    首先定義了tomcat-users.xml 中的內(nèi)容,主要設(shè)置了用戶和角色
    <?xml?version='1.0'?encoding='utf-8'?>
    <tomcat-users>
    ??
    <role?rolename="tomcat"/>
    ??
    <role?rolename="role1"/>
    ??
    <role?rolename="manager"/>
    ??
    <role?rolename="wxds"?description=""/>
    ??
    <role?rolename="admin"/>
    ??
    <user?username="tomcat"?password="tomcat"?roles="tomcat"/>
    ??
    <user?username="both"?password="tomcat"?roles="tomcat,role1"/>
    ??
    <user?username="role1"?password="tomcat"?roles="role1"/>
    ??
    <user?username="abc"?password="abc"?fullName="abcabc"?roles="wxds"/>
    ??
    <user?username="admin"?password=""?roles="admin,manager"/>
    </tomcat-users>

    然后在application中的web.xml中對(duì)應(yīng)的<web-app>中增加如下設(shè)置
    ???<security-constraint>
    ???????
    <web-resource-collection>
    ???????????
    <web-resource-name>Protected?Area</web-resource-name>
    ????????
    <!--?Define?the?context-relative?URL(s)?to?be?protected?-->
    ???????????
    <url-pattern>*</url-pattern>
    ????????
    <!--?If?you?list?http?methods,?only?those?methods?are?protected?-->
    ????????
    <http-method>DELETE</http-method>
    ???????????
    <http-method>GET</http-method>
    ???????????
    <http-method>POST</http-method>
    ????????
    <http-method>PUT</http-method>
    ???????
    </web-resource-collection>
    ???????
    <auth-constraint>
    ???????????
    <!--?Anyone?with?one?of?the?listed?roles?may?access?this?area?-->
    ???????????
    <role-name>wxds</role-name>
    ???????
    </auth-constraint>
    ???
    </security-constraint>
    ???
    <login-config>
    ???????
    <auth-method>BASIC</auth-method>
    ???????
    <realm-name>EShop</realm-name>
    ???
    </login-config>

    這樣就好了,登錄這個(gè)web應(yīng)用會(huì)有個(gè)驗(yàn)證窗口彈出,輸入用戶名abc和密碼abc后就能正常訪問(wèn)了。

    在weblogic8.1中的配置比較麻煩,首先在web.xml的<web-app>中增加上面一段代碼后,還要加上這一段
    <security-role>
    ??????
    <role-name>wxds</role-name>
    </security-role>

    然后新建一個(gè)weblogic.xml 內(nèi)容如下
    <?xml?version="1.0"?encoding="UTF-8"?>
    <!DOCTYPE?weblogic-web-app?PUBLIC?"-//BEA?Systems,?Inc.//DTD?Web?Application?8.1//EN"?"http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">

    <weblogic-web-app>

    ??
    <security-role-assignment>
    ????
    <role-name>wxds</role-name>
    ????
    <principal-name>wxds_group</principal-name>
    ??
    </security-role-assignment>

    </weblogic-web-app>

    進(jìn)入weblogic的console,在mydomain-security-realms中新建一個(gè)realm
    name: wxdsRealm
    check roles and policies for: web applications and ejbs protected in dd
    展開wxdsRealm,
    在providers中configure a new default adjudicator... 默認(rèn)創(chuàng)建
    在auditors中創(chuàng)建一個(gè)缺省auditor
    然后創(chuàng)建一個(gè)缺省的authentication,authorizers, cred mappers 和role mapper 等等
    最后可以在testing中測(cè)試一下 validate this security realm... 看是否successful

    在groups中定義一個(gè)group name: wxds_group
    在users中configure a new user
    name: jyds password:11111111
    把剛才建立的wxds_group 增加進(jìn)來(lái)

    把Security中的Default Realm設(shè)置為wxdsRealm, 最后Apply就ok啦。

    posted @ 2006-03-22 14:24 luckyrobbie 閱讀(466) | 評(píng)論 (0)編輯 收藏

    Databases and JDBC Drivers

    This page lists the most current information about databases and some of their JDBC drivers that can be used for import data or extract XML schema from database structure features. Information about what file(s) to load in the Preferences->Database->JDBC Drivers as well as information about driver classes and URL formats are also provided. An extensive list of JDBC drivers is also available at JDBC?section at Sun?Microsystems.

    Oracle 10.2.0.1.0: Oracle JDBC Driver 10.1.0.2.0

    Files: ojdbc14.jar

    Driver Class: oracle.jdbc.OracleDriver

    URL: jdbc:oracle:thin:@<host>:<port1521>:<sid>

    jdbc:oracle:oci:@<host>:<port1521>:<sid>

    OBS: The same driver file used for both thin and OCI connections.
    ?Download Driver

    ?

    DB2 8.2: IBM DB2 JDBC Universal Driver 2.3.63

    Files: db2jcc.jar, db2jcc_license_cu.jar

    Driver Class: com.ibm.db2.jcc.DB2Driver

    URL: jdbc:db2://<host>:<port50000>/<database>
    ?Download Driver

    ?

    SQL Server 2000 - 8.00.2039: SQL Server Driver 2.2.0040

    Files: mssqlserver.jar, msbase.jar, msutil.jar

    Driver Class: com.microsoft.jdbc.sqlserver.SQLServerDriver

    URL: jdbc:microsoft:sqlserver://<host>:<port1433>;DatabaseName=<database>
    ?Download Driver

    ?

    Sybase ASE 12.5.3: jConnect 6.0 Build 25308

    Files: jconn3.jar

    Driver Class: com.sybase.jdbc3.jdbc.SybDriver

    URL: jdbc:sybase:Tds:<host>:<port2048>/<database>
    ?Download Driver

    ?

    Informix 9.40: Informix 2.21.JC6

    Files: ifxjdbc.jar

    Driver Class: com.informix.jdbc.IfxDriver

    URL: jdbc:informix-sqli://<host>:<port>/<database>:informixserver=<dbservername>
    ?Download Driver

    ?

    MySQL 4.1.12: mysql-connector-java-3.1.8

    Files: mysql-connector-java-3.1.8-bin.jar

    Driver Class: com.mysql.jdbc.Driver

    URL: jdbc:mysql://<host>:<port3306>/<database>
    ?Download Driver

    ?

    MySQL 5.0.2: mysql-connector-java-3.1.5-gamma

    Files: mysql-connector-java-3.1.5-gamma-bin.jar

    Driver Class: com.mysql.jdbc.Driver

    URL: jdbc:mysql://<host>:<port3306>/<database>
    ?Download Driver

    ?

    PostgeSQL 7.4.8: PostgreSQL 7.4.4 JDBC2 with SSL

    Files: pg74.215.jdbc2ee.jar

    Driver Class: org.postgresql.Driver

    URL: jdbc:postgresql://<host>:<port5432>/<database>
    ?Download Driver

    ?

    MaxDB 7.4.3: SAP DB JDBC Driver 7.4.4

    Files: sapdbc.jar

    Driver Class: com.sap.dbtech.jdbc.DriverSapDB

    URL: jdbc:sapdb://<host>:<port>/<database>
    ?Download Driver

    ?

    FrontBase 3.6.21: FBJDriver 2.4.7

    Files: frontbasejdbc.jar

    Driver Class: com.frontbase.jdbc.FBJDriver

    URL: jdbc:FrontBase://<host>:<port>/<database>
    ?Download Driver

    ?

    Sybase ASA 9.0.2.2452: jConnect 6.0 Build 25308

    Files: jconn3.jar

    Driver Class: com.sybase.jdbc3.jdbc.SybDriver

    URL: jdbc:sybase:Tds:<host>:<port2638>/<database>
    ?Download Driver

    ?

    JDataStore 6.7.25 Embedded: DataStore Driver 6.0

    Files: jdsserver.jar

    Driver Class: com.borland.datastore.jdbc.DataStoreDriver

    URL: jdbc:borland:dslocal:<file>
    ?Download Driver

    ?

    JDataStore 6.7.25 Server: DataStore Driver 6.0

    Files: jdsremote.jar

    Driver Class: com.borland.datastore.jdbc.DataStoreDriver

    URL: jdbc:borland:dslocal:<file>
    ?Download Driver

    ?

    Cache 5.0 Server: InterSystems Cache JDBC 5.0

    Files: CacheDB.jar

    Driver Class: com.intersys.jdbc.CacheDriver

    URL: jdbc:Cache://<host>:<port>/<namespace>
    ?Download Driver
    posted @ 2006-03-21 10:55 luckyrobbie 閱讀(564) | 評(píng)論 (0)編輯 收藏

    剛剛在電視中看到一個(gè)早期教育的節(jié)目.

    兒童最佳智力結(jié)構(gòu)是記憶力, 注意力, 觀察力, 想象力, 思維能力操作能力. 其中思維能力是核心.

    我們有些家長(zhǎng)只注重記憶力,如記憶和背誦一些唐詩(shī)等等,而忽視了其他方面的鍛煉和開發(fā),缺乏想像力和創(chuàng)造力、動(dòng)手能力,造成智力結(jié)構(gòu)失衡發(fā)展.這是我們需要注意的.


    posted @ 2006-03-20 16:31 luckyrobbie 閱讀(255) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共3頁(yè): 上一頁(yè) 1 2 3 下一頁(yè) 
    主站蜘蛛池模板: 噜噜综合亚洲AV中文无码| 国产亚洲福利在线视频| 精品一区二区三区无码免费视频 | 99久久综合精品免费| 日韩中文字幕精品免费一区| 在线播放高清国语自产拍免费| 亚洲AⅤ永久无码精品AA| 最新国产AV无码专区亚洲| 久久亚洲AV成人无码| 亚洲中文字幕乱码一区| 永久免费观看黄网站| 国产精品亚洲专区无码牛牛| 又黄又大的激情视频在线观看免费视频社区在线 | 国产亚洲精品成人AA片新蒲金| 亚洲av色福利天堂| 一本天堂ⅴ无码亚洲道久久| 美女被免费网站视频在线| 好紧我太爽了视频免费国产| 免费看成人AA片无码视频羞羞网| 又粗又硬又大又爽免费视频播放| 亚洲国产精品无码久久一线| 77777午夜亚洲| aa级毛片毛片免费观看久| 在线看免费观看AV深夜影院| 又粗又硬又黄又爽的免费视频 | 国产国拍亚洲精品福利| 亚洲美女视频免费| 青青视频免费在线| 99re在线视频免费观看| 四虎影视永久免费视频观看| 亚洲天堂视频在线观看| 国产精品久久久久久亚洲影视| 久久青草国产免费观看| 国产一级一片免费播放i| 亚洲综合国产精品| 男女男精品网站免费观看| 7m凹凸精品分类大全免费| 亚洲成人影院在线观看| 亚洲性猛交xx乱| 中文字幕视频免费在线观看| 成年女人免费v片|