#
字段 | | 允許值 | | 允許的特殊字符 |
秒 |
|
0-59 |
|
, - * / |
分 |
|
0-59 |
|
, - * / |
小時 |
|
0-23 |
|
, - * / |
日期 |
|
1-31 |
|
, - * ? / L W C |
月份 |
|
1-12 或者 JAN-DEC |
|
, - * / |
星期 |
|
1-7 或者 SUN-SAT |
|
, - * ? / L C # |
年(可選) |
|
留空, 1970-2099 |
|
, - * / |
The '*' character is used to specify all values. For example, "*" in the minute field means "every minute".
“*”字符被用來指定所有的值。如:”*“在分鐘的字段域里表示“每分鐘”。
The '?' character is allowed for the day-of-month and day-of-week fields. It is used to specify 'no specific value'. This is useful when you need to specify something in one of the two fileds, but not the other. See the examples below for clarification.
“?”字符只在日期域和星期域中使用。它被用來指定“非明確的值”。當你需要通過在這兩個域中的一個來指定一些東西的時候,它是有用的。看下面的例子你就會明白。
月份中的日期和星期中的日期這兩個元素時互斥的一起應(yīng)該通過設(shè)置一個問號(?)來表明不想設(shè)置那個字段
The '-' character is used to specify ranges For example "10-12" in the hour field means "the hours 10, 11 and 12".
“-”字符被用來指定一個范圍。如:“10-12”在小時域意味著“10點、11點、12點”。
The ',' character is used to specify additional values. For example "MON,WED,FRI" in the day-of-week field means "the days Monday, Wednesday, and Friday".
“,”字符被用來指定另外的值。如:“MON,WED,FRI”在星期域里表示”星期一、星期三、星期五”.
The '/' character is used to specify increments. For example "0/15" in the seconds field means "the seconds 0, 15, 30, and 45". And "5/15" in the seconds field means "the seconds 5, 20, 35, and 50". Specifying '*' before the '/' is equivalent to specifying 0 is the value to start with. Essentially, for each field in the expression, there is a set of numbers that can be turned on or off. For seconds and minutes, the numbers range from 0 to 59. For hours 0 to 23, for days of the month 0 to 31, and for months 1 to 12. The "/" character simply helps you turn on every "nth" value in the given set. Thus "7/6" in the month field only turns on month "7", it does NOT mean every 6th month, please note that subtlety.
The 'L' character is allowed for the day-of-month and day-of-week fields. This character is short-hand for "last", but it has different meaning in each of the two fields. For example, the value "L" in the day-of-month field means "the last day of the month" - day 31 for January, day 28 for February on non-leap years. If used in the day-of-week field by itself, it simply means "7" or "SAT". But if used in the day-of-week field after another value, it means "the last xxx day of the month" - for example "6L" means "the last friday of the month". When using the 'L' option, it is important not to specify lists, or ranges of values, as you'll get confusing results.
L是‘last’的省略寫法可以表示day-of-month和day-of-week域,但在兩個字段中的意思不同,例如day-of-month域中表示一個月的最后一天,
如果在day-of-week域表示‘7’或者‘SAT’,如果在day-of-week域中前面加上數(shù)字,它表示一個月的最后幾天,例如‘6L’就表示一個月的最后一個
星期五,
The 'W' character is allowed for the day-of-month field. This character is used to specify the weekday (Monday-Friday) nearest the given day. As an example, if you were to specify "15W" as the value for the day-of-month field, the meaning is: "the nearest weekday to the 15th of the month". So if the 15th is a Saturday, the trigger will fire on Friday the 14th. If the 15th is a Sunday, the trigger will fire on Monday the 16th. If the 15th is a Tuesday, then it will fire on Tuesday the 15th. However if you specify "1W" as the value for day-of-month, and the 1st is a Saturday, the trigger will fire on Monday the 3rd, as it will not 'jump' over the boundary of a month's days. The 'W' character can only be specified when the day-of-month is a single day, not a range or list of days
.
The 'L' and 'W' characters can also be combined for the day-of-month expression to yield 'LW', which translates to "last weekday of the month".
The '#' character is allowed for the day-of-week field. This character is used to specify "the nth" XXX day of the month. For example, the value of "6#3" in the day-of-week field means the third Friday of the month (day 6 = Friday and "#3" = the 3rd one in the month). Other examples: "2#1" = the first Monday of the month and "4#5" = the fifth Wednesday of the month. Note that if you specify "#5" and there is not 5 of the given day-of-week in the month, then no firing will occur that month.
The 'C' character is allowed for the day-of-month and day-of-week fields. This character is short-hand for "calendar". This means values are calculated against the associated calendar, if any. If no calendar is associated, then it is equivalent to having an all-inclusive calendar. A value of "5C" in the day-of-month field means "the first day included by the calendar on or after the 5th". A value of "1C" in the day-of-week field means "the first day included by the calendar on or after sunday".
關(guān)于cronExpression的介紹:
字段 允許值 允許的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小時 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可選) 留空, 1970-2099 , - * /
表達式意義
"0 0 12 * * ?" 每天中午12點觸發(fā)
"0 15 10 ? * *" 每天上午10:15觸發(fā)
"0 15 10 * * ?" 每天上午10:15觸發(fā)
"0 15 10 * * ? *" 每天上午10:15觸發(fā)
"0 15 10 * * ? 2005" 2005年的每天上午10:15觸發(fā)
"0 * 14 * * ?" 在每天下午2點到下午2:59期間的每1分鐘觸發(fā)
"0 0/5 14 * * ?" 在每天下午2點到下午2:55期間的每5分鐘觸發(fā)
"0 0/5 14,18 * * ?" 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發(fā)
"0 0-5 14 * * ?" 在每天下午2點到下午2:05期間的每1分鐘觸發(fā)
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44觸發(fā)
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15觸發(fā)
"0 15 10 15 * ?" 每月15日上午10:15觸發(fā)
"0 15 10 L * ?" 每月最后一日的上午10:15觸發(fā)
"0 15 10 ? * 6L" 每月的最后一個星期五上午10:15觸發(fā)
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一個星期五上午10:15觸發(fā)
"0 15 10 ? * 6#3" 每月的第三個星期五上午10:15觸發(fā)
每天早上6點
0 6 * * *
每兩個小時
0 */2 * * *
晚上11點到早上8點之間每兩個小時,早上八點
0 23-7/2,8 * * *
每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 11 4 * 1-3
1月1日早上4點
0 4 1 1 *
quartz的高級特性不僅如此
1 數(shù)據(jù)庫存儲
2 集群支持
3 數(shù)據(jù)庫持久化任務(wù),trigger
4 trigger 的停止,運行
5 任務(wù)的任意添加
6 比corntrigger 更詳盡的任務(wù)安排
7 線程的內(nèi)部數(shù)據(jù)交換
一個cron表達式有至少6個(也可能7個)有空格分隔的時間元素。 按順序依次為 1.秒(0~59) 2.分鐘(0~59) 3.小時(0~23) 4.天(月)(0~31,但是你需要考慮你月的天數(shù)) 5.月(0~11) 6.天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,F(xiàn)RI,SAT) 7.年份(1970-2099) 其中每個元素可以是一個值(如6),一個連續(xù)區(qū)間(9-12),一個間隔時間(8-18/4)(/表示每隔4小時),一個列表(1,3,5),通配符。 由于"月份中的日期"和"星期中的日期"這兩個元素互斥的,必須要對其中一個設(shè)置?. 0 0 10,14,16 * * ? 每天上午10點,下午2點,4點 0 0/30 9-17 * * ??? 朝九晚五工作時間內(nèi)每半小時 0 0 12 ? * WED 表示每個星期三中午12點 有些子表達式能包含一些范圍或列表 例如:子表達式(天(星期))可以為 “MON-FRI”,“MON,WED,F(xiàn)RI”,“MON-WED,SAT” “*”字符代表所有可能的值 因此,“*”在子表達式(月)里表示每個月的含義,“*”在子表達式(天(星期))表示星期的每一天 “/”字符用來指定數(shù)值的增量 例如:在子表達式(分鐘)里的“0/15”表示從第0分鐘開始,每15分鐘 ; 在子表達式(分鐘)里的“3/20”表示從第3分鐘開始,每20分鐘(它和“3,23,43”)的含義一樣
“?”字符僅被用于天(月)和天(星期)兩個子表達式,表示不指定值 當2個子表達式其中之一被指定了值以后,為了避免沖突,需要將另一個子表達式的值設(shè)為“?” “L” 字符僅被用于天(月)和天(星期)兩個子表達式,它是單詞“last”的縮寫 但是它在兩個子表達式里的含義是不同的。 在天(月)子表達式中,“L”表示一個月的最后一天 , 在天(星期)自表達式中,“L”表示一個星期的最后一天,也就是SAT 如果在“L”前有具體的內(nèi)容,它就具有其他的含義了 例如:“6L”表示這個月的倒數(shù)第6天,“FRIL”表示這個月的最后一個星期五 注意:在使用“L”參數(shù)時,不要指定列表或范圍,因為這會導(dǎo)致問題 ============================================
CronTrigger配置完整格式為: [秒] [分] [小時] [日] [月] [周] [年] 序號 | 說明 | 是否必填 | 允許填寫的值 | 允許的通配符 | 1 | 秒 | 是 | 0-59 | , - * / | 2 | 分 | 是 | 0-59 | , - * / | 3 | 小時 | 是 | 0-23 | , - * / | 4 | 日 | 是 | 1-31 | , - * ? / L W | 5 | 月 | 是 | 1-12 or JAN-DEC | , - * / | 6 | 周 | 是 | 1-7 or SUN-SAT | , - * ? / L # | 7 | 年 | 否 | empty 或 1970-2099 | , - * / |
通配符說明: * 表示所有值. 例如:在分的字段上設(shè)置 "*",表示每一分鐘都會觸發(fā)。 ? 表示不指定值。使用的場景為不需要關(guān)心當前設(shè)置這個字段的值。例如:要在每月的10號觸發(fā)一個操作,但不關(guān)心是周幾,所以需要周位置的那個字段設(shè)置為"?" 具體設(shè)置為 0 0 0 10 * ? - 表示區(qū)間。例如 在小時上設(shè)置 "10-12",表示 10,11,12點都會觸發(fā)。 , 表示指定多個值,例如在周字段上設(shè)置 "MON,WED,FRI" 表示周一,周三和周五觸發(fā) / 用于遞增觸發(fā)。如在秒上面設(shè)置"5/15" 表示從5秒開始,每增15秒觸發(fā)(5,20,35,50)。 在月字段上設(shè)置'1/3'所示每月1號開始,每隔三天觸發(fā)一次。 L 表示最后的意思。在日字段設(shè)置上,表示當月的最后一天(依據(jù)當前月份,如果是二月還會依據(jù)是否是潤年[leap]), 在周字段上表示星期六,相當于"7"或"SAT"。如果在"L"前加上數(shù)字,則表示該數(shù)據(jù)的最后一個。例如在周字段上設(shè)置"6L"這樣的格式,則表示“本月最后一個星期五" W 表示離指定日期的最近那個工作日(周一至周五). 例如在日字段上設(shè)置"15W",表示離每月15號最近的那個工作日觸發(fā)。如果15號正好是周六,則找最近的周五(14號)觸發(fā), 如果15號是周未,則找最近的下周一(16號)觸發(fā).如果15號正好在工作日(周一至周五),則就在該天觸發(fā)。如果指定格式為 "1W",它則表示每月1號往后最近的工作日觸發(fā)。如果1號正是周六,則將在3號下周一觸發(fā)。(注,"W"前只能設(shè)置具體的數(shù)字,不允許區(qū)間"-"). # 序號(表示每月的第幾個周幾),例如在周字段上設(shè)置"6#3"表示在每月的第三個周六.注意如果指定"#5",正好第五周沒有周六,則不會觸發(fā)該配置(用在母親節(jié)和父親節(jié)再合適不過了) ;
小提示: 'L'和 'W'可以一組合使用。如果在日字段上設(shè)置"LW",則表示在本月的最后一個工作日觸發(fā); 周字段的設(shè)置,若使用英文字母是不區(qū)分大小寫的,即MON 與mon相同; 常用示例: 0 0 12 * * ? | 每天12點觸發(fā) | 0 15 10 ? * * | 每天10點15分觸發(fā) | 0 15 10 * * ? | 每天10點15分觸發(fā) | 0 15 10 * * ? * | 每天10點15分觸發(fā) | 0 15 10 * * ? 2005 | 2005年每天10點15分觸發(fā) | 0 * 14 * * ? | 每天下午的 2點到2點59分每分觸發(fā) | 0 0/5 14 * * ? | 每天下午的 2點到2點59分(整點開始,每隔5分觸發(fā)) | 0 0/5 14,18 * * ? | 每天下午的 2點到2點59分、18點到18點59分(整點開始,每隔5分觸發(fā)) | 0 0-5 14 * * ? | 每天下午的 2點到2點05分每分觸發(fā) | 0 10,44 14 ? 3 WED | 3月分每周三下午的 2點10分和2點44分觸發(fā) | 0 15 10 ? * MON-FRI | 從周一到周五每天上午的10點15分觸發(fā) | 0 15 10 15 * ? | 每月15號上午10點15分觸發(fā) | 0 15 10 L * ? | 每月最后一天的10點15分觸發(fā) | 0 15 10 ? * 6L | 每月最后一周的星期五的10點15分觸發(fā) | 0 15 10 ? * 6L 2002-2005 | 從2002年到2005年每月最后一周的星期五的10點15分觸發(fā) | 0 15 10 ? * 6#3 | 每月的第三周的星期五開始觸發(fā) | 0 0 12 1/5 * ? | 每月的第一個中午開始每隔5天觸發(fā)一次 | 0 11 11 11 11 ? | 每年的11月11號 11點11分觸發(fā)(光棍節(jié)) |
一、ORACLE的啟動和關(guān)閉 1、在單機環(huán)境下 要想啟動或關(guān)閉ORACLE系統(tǒng)必須首先切換到ORACLE用戶,如下 su - oracle
a、啟動ORACLE系統(tǒng) oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit
b、關(guān)閉ORACLE系統(tǒng) oracle>svrmgrl SVRMGR>connect internal SVRMGR>shutdown SVRMGR>quit
啟動oracle9i數(shù)據(jù)庫命令: $ sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect / as sysdba Connected to an idle instance. SQL> startup^C
SQL> startup ORACLE instance started.
2、在雙機環(huán)境下 要想啟動或關(guān)閉ORACLE系統(tǒng)必須首先切換到root用戶,如下 su - root
a、啟動ORACLE系統(tǒng) hareg -y oracle
b、關(guān)閉ORACLE系統(tǒng) hareg -n oracle
Oracle數(shù)據(jù)庫有哪幾種啟動方式
說明:
有以下幾種啟動方式: 1、startup nomount 非安裝啟動,這種方式啟動下可執(zhí)行:重建控制文件、重建數(shù)據(jù)庫
讀取init.ora文件,啟動instance,即啟動SGA和后臺進程,這種啟動只需要init.ora文件。
2、startup mount dbname 安裝啟動,這種方式啟動下可執(zhí)行: 數(shù)據(jù)庫日志歸檔、 數(shù)據(jù)庫介質(zhì)恢復(fù)、 使數(shù)據(jù)文件聯(lián)機或脫機, 重新定位數(shù)據(jù)文件、重做日志文件。
執(zhí)行“nomount”,然后打開控制文件,確認數(shù)據(jù)文件和聯(lián)機日志文件的位置, 但此時不對數(shù)據(jù)文件和日志文件進行校驗檢查。
3、startup open dbname 先執(zhí)行“nomount”,然后執(zhí)行“mount”,再打開包括Redo log文件在內(nèi)的所有數(shù)據(jù)庫文件, 這種方式下可訪問數(shù)據(jù)庫中的數(shù)據(jù)。
4、startup,等于以下三個命令 startup nomount alter database mount alter database open
5、startup restrict 約束方式啟動 這種方式能夠啟動數(shù)據(jù)庫,但只允許具有一定特權(quán)的用戶訪問 非特權(quán)用戶訪問時,會出現(xiàn)以下提示: ERROR: ORA-01035: ORACLE 只允許具有 RESTRICTED SESSION 權(quán)限的用戶使用
6、startup force 強制啟動方式 當不能關(guān)閉數(shù)據(jù)庫時,可以用startup force來完成數(shù)據(jù)庫的關(guān)閉 先關(guān)閉數(shù)據(jù)庫,再執(zhí)行正常啟動數(shù)據(jù)庫命令
7、startup pfile=參數(shù)文件名 帶初始化參數(shù)文件的啟動方式 先讀取參數(shù)文件,再按參數(shù)文件中的設(shè)置啟動數(shù)據(jù)庫 例:startup pfile=E:Oracleadminoradbpfileinit.ora
8、startup EXCLUSIVE 二、用戶如何有效地利用數(shù)據(jù)字典 ORACLE的數(shù)據(jù)字典是數(shù)據(jù)庫的重要組成部分之一,它隨著數(shù)據(jù)庫的產(chǎn)生而產(chǎn)生, 隨著數(shù)據(jù)庫的變化而變化, 體現(xiàn)為sys用戶下的一些表和視圖。數(shù)據(jù)字典名稱是大寫的英文字符。
數(shù)據(jù)字典里存有用戶信息、用戶的權(quán)限信息、所有數(shù)據(jù)對象信息、表的約束條件、統(tǒng)計分析數(shù)據(jù)庫的視圖等。 我們不能手工修改數(shù)據(jù)字典里的信息。
很多時候,一般的ORACLE用戶不知道如何有效地利用它。
dictionary 全部數(shù)據(jù)字典表的名稱和解釋,它有一個同義詞dict dict_column 全部數(shù)據(jù)字典表里字段名稱和解釋
如果我們想查詢跟索引有關(guān)的數(shù)據(jù)字典時,可以用下面這條SQL語句:
SQL>select * from dictionary where instr(comments,'index')>0;
如果我們想知道user_indexes表各字段名稱的詳細含義,可以用下面這條SQL語句:
SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES';
依此類推,就可以輕松知道數(shù)據(jù)字典的詳細名稱和解釋,不用查看ORACLE的其它文檔資料了。
下面按類別列出一些ORACLE用戶常用數(shù)據(jù)字典的查詢使用方法。
1、用戶
查看當前用戶的缺省表空間 SQL>select username,default_tablespace from user_users;
查看當前用戶的角色 SQL>select * from user_role_privs;
查看當前用戶的系統(tǒng)權(quán)限和表級權(quán)限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs;
2、表
查看用戶下所有的表 SQL>select * from user_tables;
查看名稱包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0;
查看某表的創(chuàng)建時間 SQL>select object_name,created from user_objects where object_name=upper('&table_name');
查看某表的大小 SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');
查看放在ORACLE的內(nèi)存區(qū)里的表 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;
3、索引
查看索引個數(shù)和類別 SQL>select index_name,index_type,table_name from user_indexes order by table_name;
查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper('&index_name');
查看索引的大小 SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');
4、序列號
查看序列號,last_number是當前值 SQL>select * from user_sequences;
5、視圖
查看視圖的名稱 SQL>select view_name from user_views;
查看創(chuàng)建視圖的select語句 SQL>set view_name,text_length from user_views; SQL>set long 2000; 說明:可以根據(jù)視圖的text_length值設(shè)定set long 的大小 SQL>select text from user_views where view_name=upper('&view_name');
6、同義詞
查看同義詞的名稱 SQL>select * from user_synonyms;
7、約束條件
查看某表的約束條件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name');
SQL>select c.constraint_name,c.constraint_type,cc.column_name from user_constraints c,user_cons_columns cc where c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position;
8、存儲函數(shù)和過程
查看函數(shù)和過程的狀態(tài) SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE';
查看函數(shù)和過程的源代碼 SQL>select text from all_source where owner=user and name=upper('&plsql_name');
三、查看數(shù)據(jù)庫的SQL 1、查看表空間的名稱及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name;
2、查看表空間物理文件的名稱及大小
select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;
3、查看回滾段名稱及大小
select segment_name, tablespace_name, r.status, (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id = v.usn(+) order by segment_name ;
4、查看控制文件
select name from v$controlfile;
5、查看日志文件
select member from v$logfile;
6、查看表空間的使用情況
select sum(bytes)/(1024*1024) as free_space,tablespace_name from dba_free_space group by tablespace_name;
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
7、查看數(shù)據(jù)庫庫對象
select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;
8、查看數(shù)據(jù)庫的版本
Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';
9、查看數(shù)據(jù)庫的創(chuàng)建日期和歸檔方式
Select Created, Log_Mode, Log_Mode From V$Database; 四、ORACLE用戶連接的管理
用系統(tǒng)管理員,查看當前數(shù)據(jù)庫有幾個用戶連接:
SQL> select username,sid,serial# from v$session;
如果要停某個連接用
SQL> alter system kill session 'sid,serial#';
如果這命令不行,找它UNIX的進程數(shù)
SQL> select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr;
說明:21是某個連接的sid數(shù)
然后用 kill 命令殺此進程號。
五、SQL*PLUS使用 a、近入SQL*Plus $sqlplus 用戶名/密碼
退出SQL*Plus SQL>exit
b、在sqlplus下得到幫助信息 列出全部SQL命令和SQL*Plus命令 SQL>help 列出某個特定的命令的信息 SQL>help 命令名
c、顯示表結(jié)構(gòu)命令DESCRIBE SQL>DESC 表名
d、SQL*Plus中的編輯命令 顯示SQL緩沖區(qū)命令 SQL>L
修改SQL命令 首先要將待改正行變?yōu)楫斍靶?br />SQL>n 用CHANGE命令修改內(nèi)容 SQL>c/舊/新 重新確認是否已正確 SQL>L
使用INPUT命令可以在SQL緩沖區(qū)中增加一行或多行 SQL>i SQL>輸入內(nèi)容
e、調(diào)用外部系統(tǒng)編輯器 SQL>edit 文件名 可以使用DEFINE命令設(shè)置系統(tǒng)變量EDITOR來改變文本編輯器的類型,在login.sql文件中定義如下一行 DEFINE_EDITOR=vi
f、運行命令文件 SQL>START test SQL>@test
常用SQL*Plus語句 a、表的創(chuàng)建、修改、刪除 創(chuàng)建表的命令格式如下: create table 表名 (列說明列表);
為基表增加新列命令如下: ALTER TABLE 表名 ADD (列說明列表) 例:為test表增加一列Age,用來存放年齡 sql>alter table test add (Age number(3));
修改基表列定義命令如下: ALTER TABLE 表名 MODIFY (列名 數(shù)據(jù)類型) 例:將test表中的Count列寬度加長為10個字符 sql>alter atble test modify (County char(10));
b、將一張表刪除語句的格式如下: DORP TABLE 表名; 例:表刪除將同時刪除表的數(shù)據(jù)和表的定義 sql>drop table test
c、表空間的創(chuàng)建、刪除
六、ORACLE邏輯備份的SH文件
完全備份的SH文件:exp_comp.sh
rq=` date +"%m%d" `
su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/export/db_comp$rq.dmp"
累計備份的SH文件:exp_cumu.sh
rq=` date +"%m%d" `
su - oracle -c "exp system/manager full=y inctype=cumulative file=/oracle/export/db_cumu$rq.dmp"
增量備份的SH文件: exp_incr.sh
rq=` date +"%m%d" `
su - oracle -c "exp system/manager full=y inctype=incremental file=/oracle/export/db_incr$rq.dmp"
root用戶crontab文件 /var/spool/cron/crontabs/root增加以下內(nèi)容
0 2 1 * * /oracle/exp_comp.sh
30 2 * * 0-5 /oracle/exp_incr.sh
45 2 * * 6 /oracle/exp_cumu.sh
當然這個時間表可以根據(jù)不同的需求來改變的,這只是一個例子。
七、ORACLE 常用的SQL語法和數(shù)據(jù)對象
一.數(shù)據(jù)控制語句 (DML) 部分
1.INSERT (往數(shù)據(jù)表里插入記錄的語句)
INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名;
字符串類型的字段值必須用單引號括起來, 例如: ’GOOD DAY’ 如果字段值里包含單引號’ 需要進行字符串轉(zhuǎn)換, 我們把它替換成兩個單引號'. 字符串類型的字段值超過定義的長度會出錯, 最好在插入前進行長度校驗.
日期字段的字段值可以用當前數(shù)據(jù)庫的系統(tǒng)時間SYSDATE, 精確到秒 或者用字符串轉(zhuǎn)換成日期型函數(shù)TO_DATE(‘2001-08-01’,’YYYY-MM-DD’) TO_DATE()還有很多種日期格式, 可以參看ORACLE DOC. 年-月-日 小時:分鐘:秒 的格式Y(jié)YYY-MM-DD HH24:MI:SS
INSERT時最大可操作的字符串長度小于等于4000個單字節(jié), 如果要插入更長的字符串, 請考慮字段用CLOB類型, 方法借用ORACLE里自帶的DBMS_LOB程序包.
INSERT時如果要用到從1開始自動增長的序列號, 應(yīng)該先建立一個序列號 CREATE SEQUENCE 序列號的名稱 (最好是表名+序列號標記) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; 其中最大的值按字段的長度來定, 如果定義的自動增長的序列號 NUMBER(6) , 最大值為999999 INSERT 語句插入這個字段值為: 序列號的名稱.NEXTVAL
2.DELETE (刪除數(shù)據(jù)表里記錄的語句)
DELETE FROM表名 WHERE 條件;
注意:刪除記錄并不能釋放ORACLE里被占用的數(shù)據(jù)塊表空間. 它只把那些被刪除的數(shù)據(jù)塊標成unused.
如果確實要刪除一個大表里的全部記錄, 可以用 TRUNCATE 命令, 它可以釋放占用的數(shù)據(jù)塊表空間 TRUNCATE TABLE 表名; 此操作不可回退.
3.UPDATE (修改數(shù)據(jù)表里記錄的語句)
UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 條件;
如果修改的值N沒有賦值或定義時, 將把原來的記錄內(nèi)容清為NULL, 最好在修改前進行非空校驗; 值N超過定義的長度會出錯, 最好在插入前進行長度校驗..
注意事項: A. 以上SQL語句對表都加上了行級鎖, 確認完成后, 必須加上事物處理結(jié)束的命令 COMMIT 才能正式生效, 否則改變不一定寫入數(shù)據(jù)庫里. 如果想撤回這些操作, 可以用命令 ROLLBACK 復(fù)原.
B. 在運行INSERT, DELETE 和 UPDATE 語句前最好估算一下可能操作的記錄范圍, 應(yīng)該把它限定在較小 (一萬條記錄) 范圍內(nèi),. 否則ORACLE處理這個事物用到很大的回退段. 程序響應(yīng)慢甚至失去響應(yīng). 如果記錄數(shù)上十萬以上這些操作, 可以把這些SQL語句分段分次完成, 其間加上COMMIT 確認事物處理. 二.數(shù)據(jù)定義 (DDL) 部分
1.CREATE (創(chuàng)建表, 索引, 視圖, 同義詞, 過程, 函數(shù), 數(shù)據(jù)庫鏈接等)
ORACLE常用的字段類型有 CHAR 固定長度的字符串 VARCHAR2 可變長度的字符串 NUMBER(M,N) 數(shù)字型M是位數(shù)總長度, N是小數(shù)的長度 DATE 日期類型
創(chuàng)建表時要把較小的不為空的字段放在前面, 可能為空的字段放在后面
創(chuàng)建表時可以用中文的字段名, 但最好還是用英文的字段名
創(chuàng)建表時可以給字段加上默認值, 例如 DEFAULT SYSDATE 這樣每次插入和修改時, 不用程序操作這個字段都能得到動作的時間
創(chuàng)建表時可以給字段加上約束條件 例如 不允許重復(fù) UNIQUE, 關(guān)鍵字 PRIMARY KEY
2.ALTER (改變表, 索引, 視圖等)
改變表的名稱 ALTER TABLE 表名1 TO 表名2;
在表的后面增加一個字段 ALTER TABLE表名 ADD 字段名 字段名描述;
修改表里字段的定義描述 ALTER TABLE表名 MODIFY字段名 字段名描述;
給表里的字段加上約束條件 ALTER TABLE 表名 ADD CONSTRAINT 約束名 PRIMARY KEY (字段名); ALTER TABLE 表名 ADD CONSTRAINT 約束名 UNIQUE (字段名);
把表放在或取出數(shù)據(jù)庫的內(nèi)存區(qū) ALTER TABLE 表名 CACHE; ALTER TABLE 表名 NOCACHE;
3.DROP (刪除表, 索引, 視圖, 同義詞, 過程, 函數(shù), 數(shù)據(jù)庫鏈接等)
刪除表和它所有的約束條件 DROP TABLE 表名 CASCADE CONSTRAINTS;
4.TRUNCATE (清空表里的所有記錄, 保留表的結(jié)構(gòu))
TRUNCATE 表名;
三.查詢語句 (SELECT) 部分
SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 條件;
字段名可以帶入函數(shù) 例如: COUNT(*), MIN(字段名), MAX(字段名), AVG(字段名), DISTINCT(字段名), TO_CHAR(DATE字段名,'YYYY-MM-DD HH24:MI:SS')
NVL(EXPR1, EXPR2)函數(shù) 解釋: IF EXPR1=NULL RETURN EXPR2 ELSE RETURN EXPR1
DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函數(shù) 解釋: IF AA=V1 THEN RETURN R1 IF AA=V2 THEN RETURN R2 ..…
ELSE RETURN NULL
LPAD(char1,n,char2)函數(shù) 解釋: 字符char1按制定的位數(shù)n顯示,不足的位數(shù)用char2字符串替換左邊的空位
字段名之間可以進行算術(shù)運算 例如: (字段名1*字段名1)/3
查詢語句可以嵌套 例如: SELECT …… FROM (SELECT …… FROM表名1, [表名2, ……] WHERE 條件) WHERE 條件2;
兩個查詢語句的結(jié)果可以做集合操作 例如: 并集UNION(去掉重復(fù)記錄), 并集UNION ALL(不去掉重復(fù)記錄), 差集MINUS, 交集INTERSECT
分組查詢 SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] GROUP BY字段名1 [HAVING 條件] ;
兩個以上表之間的連接查詢
SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 表名1.字段名 = 表名2. 字段名 [ AND ……] ;
SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 表名1.字段名 = 表名2. 字段名(+) [ AND ……] ;
有(+)號的字段位置自動補空值
查詢結(jié)果集的排序操作, 默認的排序是升序ASC, 降序是DESC
SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] ORDER BY字段名1, 字段名2 DESC;
字符串模糊比較的方法
INSTR(字段名, ‘字符串’)>0 字段名 LIKE ‘字符串%’ [‘%字符串%’]
每個表都有一個隱含的字段ROWID, 它標記著記錄的唯一性.
四.ORACLE里常用的數(shù)據(jù)對象 (SCHEMA)
1.索引 (INDEX)
CREATE INDEX 索引名ON 表名 ( 字段1, [字段2, ……] ; ALTER INDEX 索引名 REBUILD;
一個表的索引最好不要超過三個 (特殊的大表除外), 最好用單字段索引, 結(jié)合SQL語句的分析執(zhí)行情況, 也可以建立多字段的組合索引和基于函數(shù)的索引
ORACLE8.1.7字符串可以索引的最大長度為1578 單字節(jié) ORACLE8.0.6字符串可以索引的最大長度為758 單字節(jié)
2.視圖 (VIEW)
CREATE VIEW 視圖名AS SELECT …. FROM …..; ALTER VIEW視圖名 COMPILE;
視圖僅是一個SQL查詢語句, 它可以把表之間復(fù)雜的關(guān)系簡潔化.
3.同義詞 (SYNONMY) CREATE SYNONYM同義詞名FOR 表名; CREATE SYNONYM同義詞名FOR 表名@數(shù)據(jù)庫鏈接名;
4.數(shù)據(jù)庫鏈接 (DATABASE LINK) CREATE DATABASE LINK數(shù)據(jù)庫鏈接名CONNECT TO 用戶名 IDENTIFIED BY 密碼 USING ‘數(shù)據(jù)庫連接字符串’;
數(shù)據(jù)庫連接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定義.
數(shù)據(jù)庫參數(shù)global_name=true時要求數(shù)據(jù)庫鏈接名稱跟遠端數(shù)據(jù)庫名稱一樣
數(shù)據(jù)庫全局名稱可以用以下命令查出 SELECT * FROM GLOBAL_NAME;
查詢遠端數(shù)據(jù)庫里的表 SELECT …… FROM 表名@數(shù)據(jù)庫鏈接名;
五.權(quán)限管理 (DCL) 語句
1.GRANT 賦于權(quán)限 常用的系統(tǒng)權(quán)限集合有以下三個: CONNECT(基本的連接), RESOURCE(程序開發(fā)), DBA(數(shù)據(jù)庫管理) 常用的數(shù)據(jù)對象權(quán)限有以下五個: ALL ON 數(shù)據(jù)對象名, SELECT ON 數(shù)據(jù)對象名, UPDATE ON 數(shù)據(jù)對象名, DELETE ON 數(shù)據(jù)對象名, INSERT ON 數(shù)據(jù)對象名, ALTER ON 數(shù)據(jù)對象名
GRANT CONNECT, RESOURCE TO 用戶名; GRANT SELECT ON 表名 TO 用戶名; GRANT SELECT, INSERT, DELETE ON表名 TO 用戶名1, 用戶名2;
2.REVOKE 回收權(quán)限
REVOKE CONNECT, RESOURCE FROM 用戶名; REVOKE SELECT ON 表名 FROM 用戶名; REVOKE SELECT, INSERT, DELETE ON表名 FROM 用戶名1, 用戶名2;
查詢數(shù)據(jù)庫中第63號錯誤: select orgaddr,destaddr from sm_histable0116 where error_code='63';
查詢數(shù)據(jù)庫中開戶用戶最大提交和最大下發(fā)數(shù): select MSISDN,TCOS,OCOS from ms_usertable;
查詢數(shù)據(jù)庫中各種錯誤代碼的總和: select error_code,count(*) from sm_histable0513 group by error_code order by error_code;
查詢報表數(shù)據(jù)庫中話單統(tǒng)計種類查詢。 select sum(Successcount) from tbl_MiddleMt0411 where ServiceType2=111 select sum(successcount),servicetype from tbl_middlemt0411 group by servicetype
J2SDK在目錄%JAVA_HOME%/bin提供了密鑰庫管理工具Keytool,用于管理密鑰、證書和證書鏈。Keytool工具的命令在JavaSE6中已經(jīng)改變,不過以前的命令仍然支持。Keytool也可以用來管理對稱加密算法中的密鑰。 最簡單的命令是生成一個自簽名的證書,并把它放到指定的keystore文件中: keytool -genkey -alias tomcat -keyalg RSA -keystore c:/mykey 如果c:/mykey文件不存在,keytool會生成這個文件。按照命令的提示,回答一系列問題,就生成了數(shù)字證書。注意,公共名稱(cn)應(yīng)該是服務(wù)器的域名。這樣keystore中就存在一個別名為tomcat的實體,它包括公鑰、私鑰和證書。這個證書是自簽名的。 Keytool工具可以從keystore中導(dǎo)出證書,但是不能導(dǎo)出私鑰。對于配置apache這樣的服務(wù)器,就不太方便。這種情況下就完全用OpenSSL吧,上一篇文章《SSL-用OpenSSL生成證書文件》中已經(jīng)做了介紹。不過keytool對于J2EE AppServer是很有用的,它們就是用keystore存儲證書鏈的。keystore的作用類似于windows存放證書的方式,不過跨平臺了,^_^下面用Keytool生成CSR(Certificate Signing Request),并用OpenSSL生成CA簽名的證書。
1. 準備 1) 在bin目錄下新建目錄 demoCA、demoCA/certs、demoCA/certs 、 demoCA/newcerts 2) 在demoCA建立一個空文件 index.txt 3) 在demoCA建立一個文本文件 serial, 沒有擴展名,內(nèi)容是一個合法的16進制數(shù)字,例如 0000 4) 配置環(huán)境變量PATH,加入%JAVA_HOME%/bin,本文用的JavaSDK1.6
2. 生成CA的自簽名證書 openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
3. 生成server端證書 1) 生成KeyPair生成密鑰對 keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -keystore server_keystore 輸入common name時,要和服務(wù)器的域名保持一致。 2) 生成證書簽名請求 keytool -certreq -alias tomcat_server -sigalg MD5withRSA -file tomcat_server.csr -keypass 123456 -storepass 123456 -keystore server_keystore 3) 用CA私鑰進行簽名,也可以到權(quán)威機構(gòu)申請CA簽名。 openssl ca -in tomcat_server.csr -out tomcat_server.crt -cert ca.crt -keyfile ca.key -notext -config openssl.cnf 其中-notext表示不要把證書文件的明文內(nèi)容輸出到文件中去,否則在后面用keytool導(dǎo)入到keystore時會出錯。 4) 導(dǎo)入信任的CA根證書到keystore keytool -import -v -trustcacerts -alias my_ca_root -file ca.crt -storepass 123456 -keystore server_keystore 5) 把CA簽名后的server端證書導(dǎo)入keystore keytool -import -v -alias tomcat_server -file tomcat_server.crt -storepass 123456 -keystore server_keystore 6) 查看server端證書 keytool -list -v -keystore server_keystore 可以看到tomcat_server的證書鏈長度是2 4. 生成client端證書 1) 生成客戶端CSR openssl genrsa -des3 -out tomcat_client.key 1024 openssl req -new -key tomcat_client.key -out tomcat_client.csr -config openssl.cnf 2) 用CA私鑰進行簽名,也可以到權(quán)威機構(gòu)申請CA簽名 openssl ca -in tomcat_client.csr -out tomcat_client.crt -cert ca.crt -keyfile ca.key -notext -config openssl.cnf 3) 生成PKCS12格式證書 openssl pkcs12 -export -inkey tomcat_client.key -in tomcat_client.crt -out tomcat_client.p12 4) 使用Keytool列出pkcs12證書的內(nèi)容: keytool -rfc -list -keystore tomcat_client.p12 -storetype pkcs12
1、啟動虛擬機 2、我的android sdk在“E:\android\android開發(fā)環(huán)境\android SDK\platform-tools”把要安裝的apk復(fù)制到這個根目錄(和adb.exe同文件夾)。 2、點擊電腦左下角的“開始”按鈕,輸入cmd然后點擊回車打開cmd輸入框。 3、 (由于我的Android SDK安裝路徑為e盤,所以需要定位模擬器platform-tools目錄) 在cmd命令提示符中輸入E: 回車,如圖 第一行, 4、apk名稱為zq7.1.1.apk 
這樣就安裝成功了
摘要: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http:... 閱讀全文
摘要: 這篇文章是假設(shè)你曾經(jīng)使用過JavaScript的,所以如果你從沒有接觸過它,也許你需要先了解下更基礎(chǔ)的知識。現(xiàn)在我們開始吧! 模塊有多少人在一個文件中寫的JS像下面的代碼塊一樣?(注意:我可沒有說內(nèi)嵌在HTML文件中哦):123var someSharedValue = 10;var myFunction = function(){ //do something }var another... 閱讀全文
摘要: 引言Java 開發(fā)者一般不需要考慮內(nèi)存釋放問題,全交由 GC 去處理。但是在一些生產(chǎn)環(huán)境中,JVM 經(jīng)過長時間運行后,即使是一些很小的未釋放的 Java 對象,日積月累也會導(dǎo)致內(nèi)存資源枯竭,最終使 Java 應(yīng)用崩潰的問題。本文將就一個 AIX 平臺上基于 IBM JDK 開發(fā)的 Java 應(yīng)用內(nèi)存枯竭的實際案例分析過程,來引領(lǐng)讀者理解基于 IBM JDK 的 Java 應(yīng)用內(nèi)存泄漏調(diào)查方法,以及... 閱讀全文
4.到myfaces項目網(wǎng)站http://myfaces.apache.org/,下載與客戶應(yīng)用同一版本的最簡單的sample應(yīng)用myfaces-example-simple-1.1.9.war,在WAS上安裝進行測試,頁面無法顯示,進行第1步更改類加載路徑也無法顯示。檢查myfaces-example-simple-1.1.9.war的lib目錄,刪除掉xml-apis-1.0.b2.jar和xmlParserAPIs-2.0.2.jar包,運行成功。 5.回到客戶應(yīng)用,刪除掉xml-apis-1.0.b2.jar和xmlParserAPIs-2.0.2.jar,更改類加載路徑,頁面正常顯示。 6.如果實際診斷中,能夠明確斷定是某個類的加載出了問題,可以打開“詳細類裝入”:選擇“應(yīng)用程序服務(wù)器/server1/進程定義/Java虛擬機”,選擇“詳細類裝入”如下圖: 
重啟WAS之后,在native_stderr.log中,可以看到類的加載信息,例如: class load: org.apache.taglibs.standard.tlv.JstlBaseTLV from: file:/D:/Program/was61/AppServer/profiles/TestProfile/installedApps/wdanNode02Cell/myfaces-example-simple-1_1_9_war.ear/myfaces-example-simple-1.1.9.war/WEB-INF/lib/jstl-1.2.jar 如果還需要類加載的更詳細信息,可以在診斷跟蹤中設(shè)置 *=info: com.ibm.ws.classloader.*=all,具體做法為:登陸管理控制臺,左邊導(dǎo)航樹選擇“故障診斷/日志和跟蹤”,然后在右面區(qū)域選擇進程名(單機環(huán)境通常為server1)/診斷跟蹤,然后選擇“更改日志詳細信息級別”,設(shè)置“*=info: com.ibm.ws.classloader.*=all”,保存。 

重啟WAS。在profile_root/logs/server1/trace.log中,就可以看到類加載的詳細信息。例如: > loadClass name=com.ibm.isclite.container.collaborator.PortletServletCollaborator … com.ibm.ws.classloader.CompoundClassLoader@3f603f6 Local ClassPath: D:\Program\was61\AppServer\systemApps\isclite.ear\struts.jar; … Delegation Mode: PARENT_FIRST [09-12-31 11:39:18:671 CST] 0000000a CompoundClass < loadClass Exit 需要注意的是,開源項目為應(yīng)用開發(fā)節(jié)省了很多工作量,但開發(fā)人員使用開源項目時,最好對該開源項目的運行機制、代碼,以及要使用的應(yīng)用服務(wù)器類加載機制有較好的理解,以便于錯誤診斷。
進入 [install directory]/profiles/wp_profile/config/cells/[cell name]/nodes/[node name]/servers/server1/目錄; 編輯server.xml,尋找startupTrace Specification元素,將其值改為:*=info:com.ibm.ws.webcontainer.*=all:com.ibm.wsspi.webcontainer.*=all:HTTPChannel=all:GenericBNF=all 重啟Websphere,通過瀏覽器訪問一下websphere,然后到websphere的日志目錄[install directory]/profiles/wp_profile/logs/server1下,就可以看到跟蹤日志文件trace.log
在每個專欄中,支持權(quán)威將討論 IBM Technical Support 的可用于 WebSphere 產(chǎn)品的資源、工具和其他元素,以及一些可以進一步增強您的 IBM 支持體驗的技術(shù)和新思想。 最新快報 按照慣例,我們將首先提供關(guān)于整個 WebSphere® 社區(qū)的一些重要新聞: 繼續(xù)關(guān)注與支持相關(guān)的各個網(wǎng)站以及本專欄,以獲得有關(guān)我們所碰到的其他工具的新聞。 接下來讓我們繼續(xù)今天的主題…… 回頁首 “再多一個工具我就要尖叫了” 我們在與 WebSphere 產(chǎn)品用戶進行有關(guān)問題確定的交談時,遇到的一個常見問題是“我現(xiàn)在應(yīng)該使用哪個工具?”本專欄自從開始以來,已描述了如何以及何時使用許多問題確定工具,但是如果像這樣一次一個地介紹工具,跟蹤每個可用的工具將會充滿了挑戰(zhàn),要確定哪個工具最適合于任何給定的情形就更不用說了。由于更廣大的 IBM WebSphere Support 社區(qū)是相當動態(tài)的工具開發(fā)人員社區(qū)這一事實,問題變得進一步復(fù)雜化,這意味著可用的工具集始終變化不定,針對相似的問題,某一天使用的最佳工具可能在幾個月后已經(jīng)不一樣了。 我們的希望在于,本文將為您闡明某些目前可用的主要問題確定工具。您將在下面找到簡單的參考表格,其中在單個地方顯示了您在與 WebSphere Support 合作時可能遇到的最常見問題確定工具,特別是有關(guān) IBM WebSphere Application Server 和 Java 虛擬機(Java Virtual Machine,JVM)的工具。這些表格并不詳盡,所提供的信息在性質(zhì)上是不完美的——因為在本文發(fā)表之后,工具將繼續(xù)發(fā)展改進,并且不同的人將以不同的方式評價各個工具。然而,不管您最終使用的工具是什么,此信息都可作為有價值的初始參考點。如果您碰巧發(fā)現(xiàn)這種方法很成功,請告訴我們,以便我們能夠為今后的專欄計劃定期的更新。 回頁首 我們選擇的工具 在接觸到具體的表格之前,檢查一下我們在組合這些信息時使用的指導(dǎo)原則是有幫助的: - 可用性
與 IBM Support 組織直接或間接提供的大多數(shù)問題確定資源一樣,本文專門集中于可從 IBM 免費獲得的工具。這并不是說不存在其他工具;IBM(特別是 Tivoli®)和其他軟件供應(yīng)商提供了各種收費的問題確定工具,您可以使用它們來調(diào)查 WebSphere 問題。其中有些工具提供的功能遠遠超出了這里提到的免費工具的范圍。然而,就本文的目的而言,以及為了確保每個人都有訪問這些資源的同等能力,這些表格省略了商業(yè)化的工具。 - 可訪問性
在評估問題確定工具時,IBM 將考慮所有的相關(guān)候選工具,而不管這些工具駐留在何處。不過在一般情況下,IBM Support 僅收集 IBM Support Assistant 提供的公共平臺中的獨立工具(除非存在收集其他工具的技術(shù)原因)。IBM Support Assistant 是中央存儲庫,目前用于查找所有的工具、用于安裝和接收現(xiàn)有工具的定期更新,以及用于利用多個工具和其他問題確定功能之間的集成潛力(例如,將工具與診斷收集和 PMR 報告功能聯(lián)系起來,或者將一個工具的輸出作為輸入提供給另一個工具,等等)。 - 范圍
這里列出的工具僅限于客戶和 IBM Support 團隊經(jīng)常用于在活動中幫助分析問題確定構(gòu)件的工具,而不包括收集問題確定構(gòu)件或者指導(dǎo)或全面幫助問題確定過程的工具。 - 用于相同用途的多個工具
隨著工具的發(fā)展和新工具的出現(xiàn),在最大限度地促進創(chuàng)新的名義下,以及為了鼓勵許多感興趣的工具編寫人員做出貢獻,必定存在功能上的重疊。因此,您將發(fā)現(xiàn)這些表格中有些地方列出了用于同一個目的的多個工具。在這些情況下,將提供有關(guān)這些工具之間的重要區(qū)別的信息,以幫助您挑選最適合需要的工具。一般情況下,將會有一個工具被標識為主要工具(用粗體字型表示),我們估計它是您在嘗試執(zhí)行特定問題確定任務(wù)時最適合首先嘗試的工具。然而,如果您具有對另一個工具的特定特征的特殊需要,您也可以使用替代工具。一般來講,IBM Support 主要致力于對每個領(lǐng)域中指定的主要工具進行增強和支持,并且隨著時間的推移,將會盡量把替代工具中有價值的新功能合并到主要工具中。 -
支持 雖然我們希望使新的工具和新的工具功能盡快可用,但這有時意味著在編寫它們之后隨即“按原樣”使它們可用。另一方面,我們認識到許多用戶想要并且需要可靠和可信賴的工具IBM WebSphere Support 提供的每個工具與許可協(xié)議相關(guān)聯(lián),許可協(xié)議定義了該工具是否受支持的條件。(不得將本文中的任何信息理解為覆蓋或取代任何許可協(xié)議中提供的信息。)不過在一般情況下: - 通過 IBM Support Assistant 交付但指定為技術(shù)預(yù)覽版的工具以及通過 alphaWorks 交付的工具被認為是“按原樣”提供的。如果取得了成功并得到廣泛使用,許多起初以這種方式發(fā)布的工具(雖然不一定是全部)最終將成為受支持的標準工具。這些工具一般是非常優(yōu)異的,如果沒有更好的替代工具可用,您可以非常舒適地使用它們。
- 通過 IBM Support Assistant 交付并且未指定為技術(shù)預(yù)覽版的工具在其許可協(xié)議規(guī)定的條款下受到正式支持(由它們的創(chuàng)作者或 IBM WebSphere Support 提供支持)。IBM 一般為受支持的工具提供了幫助和缺陷報告。
- 問題與功能
下面的表格主要按照它們讀取的構(gòu)件類型進行組織。其中也列出了可以使用每種構(gòu)建分析來確定的問題類型。在調(diào)查某個問題時決定如何進行的時候,務(wù)必記住這一點。當您需要快速參考的時候,這種以構(gòu)件為中心的視圖通常非常有用;例如,您面對某種特定類型的日志或轉(zhuǎn)儲文件,并且您需要快速查找某個可用于分析該文件的工具。然而,以前的“權(quán)威支持”專欄用事實證明,要提高效率,問題確定過程應(yīng)該遵循定義良好的計劃,該計劃基于問題癥狀及其可能的根源,并且不執(zhí)行隨機操作或者“只是因為那些構(gòu)件存在”而分析各個構(gòu)件。無論是哪種方式,這些表格都應(yīng)該能夠幫助您。 或者,您可能希望利用 IBM Guided Activity Assistant 或以前的專欄中提到的其他某個問題確定指導(dǎo)資源,以幫助您決定何時檢查每個構(gòu)件和使用每個工具可能是最高效的。 下面幾個部分中的工具表格將按照它們所用于的構(gòu)件進行組織: 每個表格后面是每個工具自己的文檔中對每個工具的描述,以及每個工具的一般特征的大致細分。 回頁首 用于 JVM 生成的信息的工具 此類構(gòu)件包括: -
Verbose Garbage Collection (verboseGC) 日志也許是最常見的 JVM 診斷類型。它顯示了整個 JVM 生存期間,各個垃圾回收周期的順序。它作為確定問題時的一項初始的輔助工具,常常具有不可估量的價值,用于檢測和診斷反常的內(nèi)存分配問題,例如內(nèi)存泄漏、碎片,以及與 GC 有關(guān)的性能問題等等。 -
線程轉(zhuǎn)儲也是一種極為常見的 JVM 診斷類型。線程轉(zhuǎn)儲(也稱為 javacore)可以根據(jù)管理員的請求觸發(fā),或者在 JVM 中遇到某種特殊情況時自動觸發(fā)。線程轉(zhuǎn)儲是一個文本文件,其中包含 JVM 狀態(tài)的關(guān)鍵方面的一個相對較短的快照。該快照最常用的部分是 JVM 中當前活動線程的列表,線程轉(zhuǎn)儲也因此而得名。線程轉(zhuǎn)儲最常見的用途是診斷 JVM 中出現(xiàn)掛起、變慢、崩潰或 CPU 占用率過高的原因。 -
堆轉(zhuǎn)儲是也可由 JVM 生成的另一種形式的轉(zhuǎn)儲,可以按需生成,也可以在滿足特殊條件時自動生成。通常,堆轉(zhuǎn)儲通常是一個非常大的文件,其中包含當前 JVM 堆中所有對象的一個列表。它用于在出現(xiàn)內(nèi)存不足的情況下執(zhí)行深入分析。 -
系統(tǒng)堆或核心堆是開銷最大的堆,但也是最完整的堆。它是一個巨大的二進制文件,反映了 JVM 進程的全部內(nèi)容:每一個 Java 對象及其字段、每一個線程、每個內(nèi)存區(qū)域,等等。系統(tǒng)轉(zhuǎn)儲的最初用途是在其他類型的轉(zhuǎn)儲不足或無法生成時,幫助診斷崩潰、掛起或復(fù)雜的內(nèi)存分配問題。不過,由于系統(tǒng)轉(zhuǎn)儲非常完整,它也能用來獲取有關(guān) WebSphere Application Server 運行時當前狀態(tài)的多方面信息,甚至有關(guān)在該運行時中執(zhí)行的應(yīng)用程序的信息。 這里的有些構(gòu)件的名稱和類型特定于 IBM JDK;其他供應(yīng)商的 JDK 可能產(chǎn)生相似的文件。有關(guān)這些類型的構(gòu)件的進一步詳細信息,請參閱“權(quán)威支持”專欄用于實際故障診斷的功能和工具。 表 1. 用于 JVM 生成的信息的工具 工具描述 用于 VerboseGC 分析: -
IBM Monitoring and Diagnostic Tools for Java - Garbage Collection and Memory Visualizer (GCMV) 一個詳細的 GC 數(shù)據(jù)可視化器,用于分析并繪制所有 IBM 詳細 GC 日志——Xtgc 輸出(并且可擴展到分析和繪制其他形式的輸入)。它提供了廣泛的詳細 GC 數(shù)據(jù)值的圖形顯示,并處理 optthruput、optavgpause 和 gencon GC 模式。它具有原始日志、表格式數(shù)據(jù)和圖表視圖,并且可以將數(shù)據(jù)保存到 jpeg 或 .csv 文件(用于導(dǎo)出到電子表格)。 請參閱 IBM Support Assistant 中的完整描述。 輸入:verbosegc 日志 輸出:圖形表示形式、html、jpeg 或 csv 文件 支持:此工具由 IBM 提供支持,目前是用于其所在領(lǐng)域的主要工具。 -
IBM Pattern Modeling and Analysis Tool (PMAT) for Java Garbage Collector 分析 IBM 詳細 GC 跟蹤,分析 Java 堆使用情況,并基于 Java 堆使用情況的模式建模提供重要配置建議。此工具先于上面的 IBM Monitoring and Diagnostic Tools for Java - Garbage Collection and Memory Visualizer (1),并提供了一個可能相當有用的不同透視圖。 請參閱 IBM Support Assistant 或 alphaWorks 中的完整描述。 輸入:verbosegc 日志 輸出:verbosegc 日志的圖形或表格表示形式 其他功能:關(guān)于 JVM 參數(shù)的一般建議 支持:技術(shù)預(yù)覽版,按原樣提供。 -
Diagnostic Tool for Java Garbage Collector 通過讀取詳細垃圾回收的輸出,并產(chǎn)生文本和圖形可視化表示形式及相關(guān)統(tǒng)計信息,從而幫助檢查運行在 JVM 下的應(yīng)用程序的垃圾回收特征。 請參閱 alphaWorks 中的完整描述。 輸入:verbosegc 輸出:文本和圖形可視化表示形式 支持:按原樣提供的工具。 用于 Java 轉(zhuǎn)儲/javacore: -
IBM Thread and Monitor Dump Analyzer (TMDA) 分析一個或多個 Java 線程轉(zhuǎn)儲或 javacore,并診斷監(jiān)視器鎖和線程活動,以便確定掛起、死鎖和資源爭用或監(jiān)視器瓶頸的根源。 請參閱 IBM Support Assistant 或 alphaWorks 中的完整描述。 輸入:用于顯示相關(guān)線程歷史記錄的單個或多個 javacore 輸出:基于 GUI 的視圖 其他信息:關(guān)于 Analysis of hangs, deadlocks, and resource contention or monitor bottlenecks using IBM Thread and Monitor Dump Analyzer for Java Technology 的網(wǎng)絡(luò)廣播 支持:技術(shù)預(yù)覽版,按原樣提供,但是是該領(lǐng)域的主要工具。 -
ThreadAnalyzer 提供 Java 線程轉(zhuǎn)儲或 javacore 的分析,例如來自 WebSphere Application Server 的轉(zhuǎn)儲或 javacore。可以在不同的級別分析線程使用情況,從高級圖形視圖開始,然后深入到各個線程的詳細記錄。如果線程轉(zhuǎn)儲中存在任何死鎖,ThreadAnalyzer 將檢測并報告它們。此工具先于上面的 IBM Thread and Monitor Dump Analyzer 工具 (4),但是其功能已集成到后者之中,后者正在成為該領(lǐng)域的主要工具。 請參閱 IBM Support Assistant 中的完整描述。 輸入:Java 線程轉(zhuǎn)儲/javacore 輸出:線程的圖形視圖、加載多個線程轉(zhuǎn)儲以顯示線程歷史記錄的能力 支持:技術(shù)預(yù)覽版,按原樣提供,但是是該領(lǐng)域的主要工具。此工具可能會逐步淘汰;請盡可能使用 IBM Thread and Monitor Dump Analyzer。 用于線程: -
IBM Lock Analyzer for Java 旨在對動態(tài)應(yīng)用程序執(zhí)行鎖分析,以便突出具有可能影響性能的鎖爭用的線程。此工具由兩個包組成: - 第一個包與平臺相關(guān),并提供到 JVM 的連接,以便收集有關(guān)正在運行的應(yīng)用程序的鎖統(tǒng)計信息。這個包在運行時隨同要監(jiān)視的應(yīng)用程序一起進行加載。
- 第二個包與平臺無關(guān),并提供了圖形用戶界面。
該圖形用戶界面連接到平臺包,并提供所需的控制和分析以確定性能糟糕的鎖。 請參閱 alphaWorks 中的完整描述。 輸入:從 JVM 收集的統(tǒng)計信息 輸出:鎖的圖形視圖 支持:按原樣提供的工具。 用于堆轉(zhuǎn)儲: -
Memory Dump Diagnostic for Java (MDD4J) 分析正在運行 WebSphere Application Server 或任何其他獨立 Java 應(yīng)用程序的 JVM 中常見格式的內(nèi)存轉(zhuǎn)儲(堆轉(zhuǎn)儲)。內(nèi)存轉(zhuǎn)儲分析旨在確定 Java 堆中可能是內(nèi)存泄露根源的數(shù)據(jù)結(jié)構(gòu)。該分析還確定應(yīng)用程序的 Java 堆占用空間的主要肇事者和它們的所屬關(guān)系。此工具能夠分析從遇到 OutOfMemoryError 問題的生產(chǎn)環(huán)境應(yīng)用程序服務(wù)器中獲得的非常大的內(nèi)存轉(zhuǎn)儲(將需要 2 GB 或更多的 RAM)。MDD4J 擴展了下面較舊的 IBM HeapAnalyzer (8) 的功能,盡管兩個工具的用戶界面完全不同。 請參閱 IBM Support Assistant 中的完整描述。 輸入:來自虛擬機 (JVM) 的內(nèi)存轉(zhuǎn)儲(堆轉(zhuǎn)儲) 輸出:交互式報告,其中顯示主要的內(nèi)存泄露可疑之處,以及有關(guān)這些泄露的詳細信息。 其他功能:操作單個轉(zhuǎn)儲。有些版本提供了多個轉(zhuǎn)儲的比較分析。 支持:此工具由 IBM 提供支持,目前是用于其所在領(lǐng)域的主要工具。在本文編寫之際,IBM Support Assistant 中的最新版本為 Beta 版。 -
HeapAnalyzer HeapAnalyzer 讀取單個 Java 內(nèi)存轉(zhuǎn)儲(堆轉(zhuǎn)儲),并使您能夠瀏覽轉(zhuǎn)儲以查看其內(nèi)容。此工具是上面的 Memory Dump Diagnostic for Java (MDD4J) 工具(7) 的前身,后者現(xiàn)在包含前者的大多數(shù)功能。當時,HeapAnalyzer 中的原始樹瀏覽功能比在 MDD4J 中更加靈活。另一方面,HeapAnalyzer 缺乏 MDD4J 中的某些更完善的泄露嫌疑檢測算法,并且不支持多個轉(zhuǎn)儲的比較分析。 請參閱 alphaWorks 中的完整描述。 輸入:單個 java 堆轉(zhuǎn)儲 輸出:可疑對象的圖形視圖和堆瀏覽器 支持:按原樣提供的工具。 -
HeapRoots HeapRoots 讀取 Java 堆轉(zhuǎn)儲文件并提供用于分析數(shù)據(jù)的命令。這些命令對數(shù)據(jù)運行算法,或查詢有關(guān)該數(shù)據(jù)的信息。HeapRoots 提供了命令行交互式界面,您可以在其中輸入命令并獲取結(jié)果。 請參閱 alphaWorks 中的完整描述。 輸入:堆轉(zhuǎn)儲文件 輸出:可疑對象的圖形視圖和堆瀏覽器 支持:按原樣提供的工具。 用于系統(tǒng)/核心轉(zhuǎn)儲: -
IBM Monitoring and Diagnostic Tools for Java - Dump Analyzer 一個可擴展的工具框架,它讀取 IBM JVM 產(chǎn)生的系統(tǒng)轉(zhuǎn)儲或核心文件,并針對該轉(zhuǎn)儲運行各種各樣的分析模塊以診斷常見問題,或提供有關(guān)該 JVM 和當前運行在該 JVM 中的任何中間件或應(yīng)用程序的內(nèi)部狀態(tài)的深入信息。目前,提供了用于對諸如死鎖、掛起、崩潰、內(nèi)存情況等常見 JVM 問題執(zhí)行基本分析功能的模塊。作為對該基本工具的補充,WebSphere Applicationi Server Modules for Dump Analyzer 提供了附加的模塊,可顯示 JVM 中的 WebSphere Application Server 運行時的一般狀態(tài),以及有關(guān)多個 WebSphere Application Server 子系統(tǒng)的詳細信息。 請參閱 IBM Support Assistant 中的完整描述。 輸入:由 JVM 附帶的 jextract 工具進行預(yù)處理的格式化系統(tǒng)轉(zhuǎn)儲 輸出:顯示一個報告,其中包含由指定的分析模塊提取的信息,還包含有關(guān)潛在問題的觀察結(jié)果的簡短摘要,以及一個提供深入信息的詳細信息部分。 其他功能:提供交互式模式以手動檢查轉(zhuǎn)儲的內(nèi)容。使得用戶能夠編寫自己的新的專門分析模塊并將模塊添加到該工具。 支持:此工具由 IBM 提供支持,目前是用于其所在領(lǐng)域的主要工具。 回頁首 用于日志和跟蹤文件的工具 用于這些類型的構(gòu)件的活動包括: -
日志記錄通常用于在日志文件中記錄您希望跟蹤的重要事件。日志記錄用于指示: - 重要的狀態(tài)更改;例如,當某個服務(wù)啟動或停止的時候。
- 警告;例如,當您正在寫入的磁盤空間不足的時候。
- 錯誤;例如,當您的代碼由于預(yù)期的服務(wù)不可用而不再能夠繼續(xù)執(zhí)行的時候。
日志記錄通常是始終啟用的,因此日志記錄代碼必須體積相當小,這通常是您應(yīng)該注意的重要事項。 -
跟蹤通常用于記錄在調(diào)試代碼問題時可能有用的任何信息。跟蹤通常用于指示調(diào)用了哪些方法、向方法傳入了哪些數(shù)據(jù)(或從方法返回了什么值)以及對代碼邊界之外的其他方法的調(diào)用返回了什么數(shù)據(jù)。跟蹤事件體積可能比較大,因此只有在診斷問題時啟用。由于跟蹤事件的內(nèi)容極為詳細,而且是技術(shù)信息,因此經(jīng)常只對編寫應(yīng)用程序的人有價值。打開跟蹤的情況下,應(yīng)該能夠了解在代碼中可能出現(xiàn)的任何問題。 表 2. 用于日志和跟蹤文件的工具 工具描述 -
Log Analyzer(以及相關(guān)的 Symptom Editor) 一個圖形用戶界面,提供用于瀏覽、分析和關(guān)聯(lián)多個產(chǎn)品產(chǎn)生的日志的單個聯(lián)絡(luò)點。此工具是更廣泛的 IBM 自主計算活動的一部分。 請參閱 IBM Support Assistant 中的完整描述。 輸入:來自 IBM 和其他供應(yīng)商推出的許多軟件產(chǎn)品的多個日志文件 輸出:基于 GUI 的視圖和日志文件關(guān)聯(lián) 其他功能:能夠保存配置以幫助其他支持工程師進行進一步的分析。提供了配套的 Symptom Editor 工具來創(chuàng)建您自己的癥狀數(shù)據(jù)庫。 支持:目前是其所在領(lǐng)域的主要工具。 -
Trace Analyzer for WebSphere Application Server 一個高度交互式的實用工具,使您能夠詳細瀏覽、檢查和搜索 WebSphere Application Server 中的復(fù)雜跟蹤文件。 請參閱 alphaWorks 中的完整描述。 輸入:WebSphere Application Server trace.log;如果啟用了高級日志記錄,則還支持更多的輸入 輸出:功能強大的圖形視圖,帶篩選器和搜索視圖 其他功能:能夠保存配置以幫助其他支持工程師進行進一步的分析 支持:按原樣提供,但目前是其所在領(lǐng)域的主要工具。 -
IBM Trace and Request Analyzer for WebSphere Application Server 幫助查找非正常延遲、系統(tǒng)運行緩慢或系統(tǒng)表現(xiàn)為掛起然后又恢復(fù)的情況的根源。此工具檢查 WebSphere Application Server 和 HTTP 插件中的跟蹤文件,通過這些文件確定各個請求,并找出特定操作需要花長時間完成的區(qū)域,從而幫助您檢查跟蹤中的可疑區(qū)域,以確定是否存在問題。用戶有時將此工具與上面的 Trace Analyzer for WebSphere Application Server (12) 搞混淆,但事實上它們是完全不同的。此工具嚴格地集中于盡可能自動地找出性能問題和延遲,而 Trace Analyzer 是通用工具,主要用于手動檢查跟蹤。 請參閱 alphaWorks 中的完整描述。 輸入:HTTP 服務(wù)器日志 (http_plugin.log) 和 WebSphere Application Server 跟蹤日志 (trace.log) 輸出:表格分析視圖 支持:按原樣提供,但目前是其所在領(lǐng)域的主要工具。 -
Database Connection Pool Analyzer for IBM WebSphere Application Server 采用啟發(fā)式分析引擎來幫助您解決與 Java Database Connectivity (JDBC) 連接池相關(guān)的問題,并診斷 JDBC 連接泄露。此工具分析 JDBC 連接池管理器跟蹤,并提供以下功能: - JDBC 數(shù)據(jù)源分析。
- JDBC 連接池配置分析。
- JDBC 連接圖表視圖。
- getConnection 方法的 Java 堆棧跟蹤視圖。
有關(guān)使用此工具分析連接池問題所需要的 WebSphere Application Server 跟蹤設(shè)置,請參閱 MustGather 信息。 請參閱 alphaWorks 中的完整描述。 輸入:JDBC 跟蹤日志 輸出:日志的表格和圖形分析 支持:按原樣提供,但目前是該領(lǐng)域的主要工具。 回頁首 用于靜態(tài)配置文件和相關(guān)信息的工具 表 3. 與靜態(tài)配置相關(guān)的文件 工具描述 -
Visual Configuration Explorer (VCE) 提供一種可視化、探索和分析不同來源的配置信息的方法,例如 WebSphere Application Server、WebSphere MQ 和 DB2。此工具允許您: - 比較相同運行時環(huán)境的不同快照。
- 創(chuàng)建圖表,采用圖形格式顯示配置信息,包括配置元素之間的主要關(guān)系。
- 訪問詳細的配置屬性。
- 在配置內(nèi)和跨配置搜索屬性。
- 比較配置。
- 在不同的產(chǎn)品的配置信息之間建立聯(lián)系。
- 保存和恢復(fù)工作。
- 在問題確定工作中與其他人進行協(xié)作。
- 在獨立環(huán)境或客戶機/服務(wù)器環(huán)境中工作。
請參閱 IBM Support Assistant 中的完整描述。 輸入:從 VCE 附帶的 VCE 遠程收集器工具中產(chǎn)生的 JAR 文件 輸出:配置的圖形描述。配置的差異報告(保存為 XML 格式) 其他功能:能夠保存配置,以幫助其他支持工程師進行進一步的分析。提供了配套的 Symptom Editor 工具來創(chuàng)建您自己的癥狀數(shù)據(jù)庫。 支持:技術(shù)預(yù)覽版,但它是其所在領(lǐng)域的主要工具。 -
IBM Web Server Plug-in Analyzer for WebSphere Application Server 幫助發(fā)現(xiàn)與 WebSphere Application Server 的 HTTP 插件組件相關(guān)的潛在問題。此工具同時分析插件配置和對應(yīng)的跟蹤文件,然后應(yīng)用模式識別算法,以便向用戶發(fā)出有關(guān)可能的不一致性的警報。此工具提供配置和跟蹤文件中的 HTTP 返回代碼列表、URI 和可用集群的圖形表示形式,以及服務(wù)器拓撲。 請參閱 alphaWorks 中的完整描述。 輸入:WebSphere 插件日志文件 (http_plugin.log) 和 WebSphere Application Server 跟蹤文件 (trace.log)。 輸出:顯示 plugin-cfg.xml 文件和 trace.log 分析中的集群和成員拓撲的可視映射。 支持:按原樣提供,但目前是其所在領(lǐng)域中的主要工具。 -
Configuration Validator 此工具是 WebSphere 管理控制臺的一部分,它幫助確定和查看 WebSphere Application Server 中的當前配置中存在的問題。 請參閱 WebSphere Application Server 信息中心的完整描述。 輸入:操作 WebSphere Application Server 的某個運行實例,可通過管理控制臺進行訪問。 輸出:配置問題的表格視圖(單獨的錯誤、警告選項;管理控制臺中可用的信息)。 支持:包括為 WebSphere Application Server 的一部分,服從與主產(chǎn)品相同的支持流程。 -
Classloader Viewer 提供 WebSphere Application Server 的某個實例中當前活動的所有類加載器和它們已加載的所有類的詳細清單。這可以幫助診斷一系列與類加載相關(guān)的問題,例如未能加載所需的類、加載了某個類的意外版本、多個類之間的可見性問題,等等。 請參閱 WebSphere Application Server 信息中心的完整描述。 輸入:操作 WebSphere Application Server 的某個運行實例,可通過管理控制臺進行訪問。 輸出:WebSphere Application Server 管理控制臺中的樹形細分視圖;可保存到文件以便以后分析。 支持:包括為 WebSphere Application Server 的一部分,服從與主產(chǎn)品相同的支持流程。 -
Install Verification Utility (IVU) 作為一個在 WebSphere Application Server 中可用的名為“installver”的程序來交付,此程序?qū)?gòu)成當前 WebSphere Application Server 安裝的文件執(zhí)行校驗和,并將校驗和與 WebSphere Application Server 附帶或在該工具以前的執(zhí)行過程中生成的參考文件做比較。此工具幫助檢測被破壞的安裝,例如,可能安裝了修改或修補程序然后卻遺忘了。 請參閱 WebSphere Application Server 信息中心的完整描述。 輸入:WebSphere Application Server 文件,使用 verifyinstallver.bat 或 .sh 運行該工具。 輸出:指示成功的文件檢查的消息。 支持:包括為 WebSphere Application Server 的一部分,服從與主產(chǎn)品相同的支持流程。 -
IBM Port Scanning Tool 在產(chǎn)品的安裝、配置或激活過程中掃描可用的端口,以幫助防止端口沖突。 請參閱 IBM Support Assistant 中的完整描述。 輸入:要檢查的端口號范圍 輸出:列出任何正在使用的端口和任何可能的沖突的報告 支持:技術(shù)預(yù)覽版,但目前是其所在領(lǐng)域的主要工具。 回頁首 總結(jié) 我們對用于 WebSphere 產(chǎn)品的一些最常遇到的問題確定工具的概述到此就結(jié)束了,并提供了一些幫助您確定何時最適合使用每個工具的信息。但愿此信息將幫助您迅速和盡可能高效地啟動問題解決任務(wù)。請記住,IBM 提供的工具集在不斷地發(fā)展和增加,因此務(wù)必定期檢查有關(guān)每個工具的最新信息,并從問題確定工作的前沿返回到本專欄以了解更多新聞。
|