2011-11-26 19:02 308人閱讀 評論(0) 收藏 舉報
MQ V7 INFO center
每個軌道圖以兩個右箭頭開始,以一對右箭頭和左箭頭結束。以單個右箭頭開始的行是連續行。閱讀軌道圖時應按從左至右和從上至下的順序,按箭頭的方向進行。
軌道圖中使用的其他約定包括:
表 1. 如何閱讀軌道圖
約定
含義

>>-A--B--C-----------------------------------------------------><
必須指定值
A、
B 和
C。必需值顯示在軌道圖的主線上。

>>-+---+------------------------------------------------------->< '-A-'
可指定值
A。可選值顯示在軌道圖的主線之下。

>>-+-A-+------------------------------------------------------->< +-B-+ '-C-'
值
A、
B 和
C 是可選項,必須指定其中一項。

>>-+---+------------------------------------------------------->< +-A-+ +-B-+ '-C-'
值
A、
B 和
C 是可選項,可指定其中一項。

.-,-----. V | >>---+---+-+--------------------------------------------------->< +-A-+ +-B-+ '-C-'
可指定值
A、
B 和
C 中的一項或多項。箭頭上會顯示多個值或重復值的任何必需分隔符,在此示例中為逗號(,)。

.-+---+-. | '-,-' | V | >>---+---+-+--------------------------------------------------->< '-A-'
可能多次指定值
A。此示例中的分隔符是可選的。

.-A-. >>-+---+------------------------------------------------------->< +-B-+ '-C-'
值
A、
B 和
C 是可選項,可指定其中一項。如果未指定任何顯示值,那么會使用缺省值
A(主線之上顯示的值)。

>>-| Name |---------------------------------------------------->< 名稱 |--A--+---+-----------------------------------------------------| '-B-'
軌道圖片段
Name 是與主軌道圖分開顯示的。
標點和大寫值
完全按顯示的內容指定。
語法圖示例
此處提供的語法圖示例描述了 hello 命令:

Hello 命令 >>-hello--+----------+--+--------------+----------------------->< '-| Name |-' '-| Greeting |-' Name .-,-----------. V (1) | |---- --name-----+----------------------------------------------| Greeting |--, --how are you?---------------------------------------------|
注:
- 您可以編碼最多三個名稱。
根據語法圖,以下是 hello 命令的所有有效版本:
hello hello name hello name, name hello name, name, name hello, how are you? hello name, how are you? hello name, name, how are you? hello name, name, name, how are you?
name 值之前的那個空格是很重要的,如果您完全不對 name 進行編碼,仍必須對 how are you? 前的逗號進行編碼。
控制命令
本主題集合提供各個 WebSphere? MQ 控制命令的參考信息。
addmqinf
添加 WebSphere MQ 配置信息(僅限于
Windows?
和 UNIX 平臺)。
- amqccert
檢查不完整的證書鏈(僅限于 Windows)。
- amqmdain
配置或控制 WebSphere MQ 服務控制(僅限于 Windows)。
amqmfsck(文件系統檢查)
檢查文件系統是否與 POSIX 標準一致并能夠共享隊列管理器數據以支持多實例隊列管理器。
- amqtcert
從 WebSphere MQ 5.3 或 5.3.1 遷移證書(僅限于 Windows)。
- crtmqcvx
根據數據類型結構來創建數據轉換代碼。
- crtmqm
創建隊列管理器。
- dltmqm
刪除隊列管理器。
- dmpmqaut
轉儲一組 WebSphere MQ 對象類型和概要文件的當前權限列表。
- dmpmqlog
顯示并格式化 WebSphere MQ 系統日志的部分內容。
- dspmq
顯示關于隊列管理器的信息。
- dspmqaut
dspmqaut 顯示特定 WebSphere MQ 對象的權限。
- dspmqcsv
顯示命令服務器的狀態
- dspmqfls
顯示與 WebSphere MQ 對象相對應的文件名。
dspmqinf
顯示 WebSphere MQ 配置信息(僅限于
Windows
和 Unix 平臺)。
- dspmqrte
確定消息通過隊列管理器網絡時采用的路由。
- dspmqtrc
格式化并顯示 WebSphere MQ 跟蹤(僅限于 Unix 平臺)。
- dspmqtrn
顯示不確定的事務。
- dspmqver
顯示 WebSphere MQ 版本和構建信息。
- endmqcsv
為隊列管理器停止命令服務器。
- endmqlsr
結束隊列管理器的所有偵聽器進程。
- endmqdnm
對某個隊列停止 .NET 監視器(僅限于 Windows)。
- endmqm
停止隊列管理器或者切換到備用隊列管理器。
- endmqtrc
對所跟蹤的某些或全部實體結束跟蹤。
- migmbbrk
migmbbrk 命令將發布/預訂配置數據從 WebSphere Event Broker V6.0 或者 WebSphere Message Broker V6.0 或 V6.1 遷移到 WebSphere MQ V7.0.1 或更高版本。
- mqftapp
啟動文件傳輸應用程序的圖形界面(僅限于 Windows 和 Linux x86 平臺)。
- mqftrcv
處理在服務器上使用 WebSphere MQ 文件傳輸應用程序接收到的文件(僅限于 Windows 和 Linux x86 平臺)。
- mqftrcvc
處理在客戶機上接收到的文件(僅限于 Windows 和 Linux x86 平臺)。
- mqftsnd
使用 WebSphere MQ 文件傳輸應用程序從服務器發送文件(僅限于 Windows 和 Linux x86 平臺)。
- mqftsndc
使用 WebSphere MQ 文件傳輸應用程序從客戶機發送文件(僅限于 Windows 和 Linux x86 平臺)。
- rcdmqimg
將一個對象或一組對象的映像寫入日志,以便進行介質恢復。
- rcrmqobj
根據日志中包含的一個或一組對象的映像來重新創建這些對象。
rmvmqinf
除去 WebSphere MQ 配置信息(僅限于
Windows
和 Unix 平臺)。
- rsvmqtrn
解決不確定的事務。
- runmqchi
運行通道啟動程序進程,以便自動啟動通道。
- runmqchl
啟動發送方或請求方通道
- runmqdlq
啟動死信隊列處理程序,以便監視和處理死信隊列中的消息。
- runmqdnm
使用 .NET 監視器來開始處理某個隊列中的消息(僅限于 Windows)。
- runmqlsr
運行偵聽器進程,以便偵聽各種通信協議的遠程請求。
- runmqsc
對隊列管理器運行 WebSphere MQ 命令。
- runmqtmc
在客戶機上啟動觸發器監視器。
- runmqtrm
在服務器上啟動觸發器監視器。
- setmqaut
更改概要文件、對象或對象類的權限。可以對任意數目的主體或組授予權限或從中撤銷權限。
- setmqcrl
在 Active Directory 中管理 CRL(證書撤銷列表)LDAP 定義(僅限于 Windows)。
- setmqprd
登記 WebSphere MQ 生產許可證。
- setmqscp
在 Active Directory 中發布客戶機連接通道定義(僅限于 Windows)。
- strmqcfg
啟動 WebSphere MQ 資源管理器(僅限于 Windows 和 Linux x86 平臺)。
- strmqcsv
為隊列管理器啟動命令服務器。
- strmqm
啟動隊列管理器
或者使其準備好執行備用操作
。
- strmqtrc
在指定的詳細級別啟用跟蹤,或者報告生效中的跟蹤級別。
========================================================
需要對strmqm進行特殊說明,因為今天我排查的一個錯誤就是因為使用了這個命令解決的!
問題:
Default objects cannot be created: CompCode = 2 Reason = 2059 error.
起因:
The problem is caused by having too many open files, which usually means the system is out of file descriptors.
解決:
Determine the current value for file descriptors by using 'ulimit -a' command
Increase the file descriptors
Recycle the machine for the changes to take effect
Restart the queue manager具體:
進入MQ管理器
將日志文件變大。這個可以選擇相應的QM右鍵,點擊屬性找到位置。
然后關閉MQ。進入命令行模式。
使用下面的命令:
1. strmqm -c QMname
查看指定的QM是否在運行
2. strmqm -r QMname
更新備份MQ,更新了QMname的內容
3.strmqm -c QMname
重新生成QM的屬性,這時我們在管理器界面調整的數據就開始生效了。
4.strmqm QMname
經過 3 后,qm啟動后就停止了,主要我們再次的啟動一下。
這些步驟的用意就是:
Determine the current value for file descriptors by using 'ulimit -a' command
Increase the file descriptors
Recycle the machine for the changes to take effect
Restart the queue manager
strmqm
啟動隊列管理器
或者使其準備好執行備用操作
。
用途
使用 strmqm 命令來啟動隊列管理器。
如果隊列管理器啟動需要好幾秒,那么 WebSphere? MQ 會顯示間歇性消息以詳細說明啟動進度。有關這些消息的更多信息,請參閱 WebSphere MQ Messages。
語法

>>-strmqm--+------+--+-----+--+-------+--+------------------+---> +- -c -+ '- -f ' +- -si -+ '- -d--Information-' +- -r -+ '- -ss -' +- -a -+ '- -x -' >--+------+--+------+--+----------+---------------------------->< '- -z -' '- -ns-' '-QMgrName-'
可選參數
- -a
- 激活指定的備份隊列管理器。不啟動備份隊列管理器。
當激活備份隊列管理器后,可使用控制命令 strmqm QMgrName 來將它啟動。要求激活備份隊列管理器可防止意外啟動。
當激活備份隊列管理器后,就不能再對其進行更新。
有關使用備份隊列管理器的更多信息,請參閱備份和復原 WebSphere MQ。
- -c
啟動隊列管理器,重新定義缺省值和系統對象,然后停止隊列管理器。如果指定此標志,那么將替換屬于隊列管理器的任何現有系統和缺省對象,并且將復位任何非缺省系統對象值(例如,MCAUSER 的值設置為空白)。
使用 crtmqm 命令來為隊列管理器創建缺省和系統對象。
- -d Information
- 指定是否顯示參考消息。Information 的可能值是:
all
顯示所有參考消息。這是缺省值。
minimal
顯示最小數目的參考消息。
none
不顯示參考消息。此參數等效于 -z。
-z 參數的優先順序比此參數高。
-f
如果您知道隊列管理器由于其數據目錄缺失或損壞而無法啟動,請使用此選項。
strmqm -f qmname 命令將嘗試重新創建隊列管理器數據目錄并復位文件許可權。如果此操作成功,那么除非缺少隊列管理器配置信息,否則隊列管理器將啟動。如果隊列管理器由于缺少配置信息而無法啟動,請重新創建配置信息,然后重新啟動該隊列管理器。
在 7.0.1 以前的 WebSphere MQ 發行版中,不帶 -f 選項的 strmqm 將自動修復缺少的數據目錄,然后嘗試啟動隊列管理器。此行為已更改。
從 WebSphere MQ V7.0.1 開始,不帶 -f 選項的 strmqm 的缺省行為是,不自動恢復缺少或損壞的數據目錄,但報告錯誤(例如 AMQ6235 或 AMQ7001),并且不啟動隊列管理器。
您可以將 -f 選項視為執行以前由 strmqm 自動執行的恢復操作。
更改 strmqm 的行為的原因是,WebSphere MQ V7.0.1 支持聯網的文件存儲器,因此,最有可能導致隊列管理器數據目錄缺失或損壞的原因是可以糾正的配置錯誤,而不是數據目錄損壞或者無法彌補地不可用。
如果可以通過更正配置來恢復隊列管理器數據目錄,那么不應使用 strmqm -f 來重新創建那些目錄。
strmqm 問題的可能解決方案包括,使聯網的 文件存儲位置可供隊列管理器訪問,或者確保主管隊列管理器的服務器上 mqm 組和用戶標識的 gid 和 uid 與主管隊列管理器數據目錄的服務器上 mqm 組和用戶標識的 gid 和 uid 匹配。
在 WebSphere MQ V7.0.1 中,如果您正在為隊列管理器執行介質恢復,那么應該使用 -f 選項來重新創建隊列管理器數據目錄。
- -ns
- 防止以下任何進程在隊列管理器啟動時自動啟動:
- -r
- 更新備份隊列管理器。不啟動備份隊列管理器。
WebSphere MQ 通過閱讀隊列管理器日志并重放對對象文件的更新,來更新備份隊列管理器的對象。
有關使用備份隊列管理器的更多信息,請參閱備份和復原 WebSphere MQ。
- -si
- 交互式(手動)隊列管理器啟動類型。此選項僅可用于 WebSphere MQ for Windows?。
隊列管理器通過已登錄(交互)用戶運行。對于配置為交互式啟動的隊列管理器,當用戶啟動注銷時,結束運行。
如果設置此參數,那么它會覆蓋先前由 crtmqm 命令、amqmdain 命令或 WebSphere MQ 資源管理器設置的任何啟動類型。
如果未將啟動類型指定為 -si 或 -ss,那么會使用在 crtmqm 命令上指定的隊列管理器啟動類型。
- -ss
- 服務(手動)隊列管理器啟動類型。此選項僅可用于 WebSphere MQ for Windows。
隊列管理器作為服務運行。對于配置為服務啟動的隊列管理器,甚至在交互式用戶注銷之后,仍然繼續運行。
如果設置此參數,那么它會覆蓋先前由 crtmqm 命令、amqmdain 命令或 WebSphere MQ 資源管理器設置的任何啟動類型。
-x
在本地服務器上啟動
多實例
隊列管理器的實例,從而使其高度可用。如果尚未在其他位置運行該隊列管理器的實例,那么該隊列管理器將啟動,并且該實例將進入活動狀態。該活動實例將準備好接受對本地服務器上隊列管理器的本地和遠程連接。
如果在另一個服務器上已有處于活動狀態的
多實例
隊列管理器實例,那么新實例將進入備用狀態,從而使其能夠接管活動的隊列管理器實例。在處于備用狀態期間,它無法接受本地或遠程連接。
不能在同一服務器上啟動隊列管理器的第二個實例。
在省略 -x 可選參數的情況下,缺省行為是將實例作為
單一實例
隊列管理器啟動,從而禁止備用實例啟動。
- -z
- 抑制錯誤消息。
此標志在 WebSphere MQ 中用于抑制不需要的參考消息。因為使用該標志可以導致信息的丟失,不要在命令行輸入命令時使用此標志。
此參數優先于 -d 參數。
QMgrName
本地隊列管理器名稱。如果省略此參數,將使用缺省隊列管理器。
返回碼
0
隊列管理器啟動
3
正在創建隊列管理器
5
隊列管理器正在運行
16
隊列管理器不存在
23
不可用的日志
24
使用隊列管理器前一個實例的進程仍未斷開連接
30
此隊列管理器的備用實例已啟動。活動實例正在其他位置運行
31
此隊列管理器已有活動實例。此隊列管理器允許存在備用實例
39
指定的參數無效
43
此隊列管理器已有活動實例。此隊列管理器不允許存在備用實例
47
此隊列管理器已有最大數目的備用實例
49
隊列管理器正在停止
69
存儲器不可用
71
意外錯誤
72
隊列管理器名稱錯誤
74
WebSphere MQ 服務未啟動。
100
日志位置無效
119
用戶無權啟動隊列管理器
示例
以下命令啟動隊列管理器 account:
strmqm account
相關命令
crtmqm
創建隊列管理器
dltmqm
刪除隊列管理器
endmqm
結束隊列管理器
2011-03-29 12:15 122人閱讀 評論(0) 收藏 舉報
今天,簡單的學習了maximo的功能,結構和歷史。
簡介:
maximo是用于資產管理的成熟的產品。軟件本身具有非常大的靈活性和兼容性。
在maximo下可以使用db2/oracle,web容器可以使用websphere/weblogic。
主要架構是J2EE中的EJB技術以及JSP做前段的MVC view模塊。
但是,這個龐然大物有700tables,6000 java classes.
maximo對資產的管理可以從下面的幾個方面體現:
在maximo內部,可以很方便的定義工單,而整軟件的核心也是工單。
工單就是workflow,IBM有諸多的工作流處理,但是,maximo內部具有獨立的workflow。
基于工單,maximo擴展了龐大的資產管理及財務管理模塊。對整個訂單的觸發及處理也是按照下面的過程來定義的。
在使用maximo前,設計會進行一到兩個月,具體的部署會持續兩個月,最后的培訓等會使用2個月,所以,maximo的實施會在半年到一年。
對maximo的設計是非常靈活的,很多人覺得maximo的東西比較難以上手,是因為,一旦上手,威力無比!今天,在samul的演示下,一睹了如何在maximo下添加一個oracle 10g里面沒有的字段(就是給一個表添加一個沒有的列),不必重新編譯,不必重新啟動機器就能上線。這和我們傳統的使用datasource很是不一樣。
而maximo的設計也是基于assets ,location ,plan ,address ,site,workorder幾項。
其內部運行的class也是設計成了object 的結構,而且形成了統一的標準:MBO。所以,對開發人員而言,是非常好的地方。這使得maximo可以和目前所有的ERP,BI,形同進行集成,因為自主開發的類在MBO的支持下,可以通過JMS等接口完成數據交換。所以,maximo的集成產品不斷出現,如gps,sensor等設備可以被maximo管理。
除了大的概念的支持,maximo對儀器,儀表,監視器等也有很好的體現。可以自定制UI的圖形界面,比Dreamwaver還要好用。
工單的產生,傳統的是人為進行維護,定義rules來觸發的,例如認為的跟新庫存,在庫存內某項物品減少到一定的限度的時候就會觸發一條訂貨指令。
1998年馬化騰五人湊了50萬,創辦騰訊沒買房;1998年史玉柱向朋友借了50萬搞腦白金沒買房;1999年漂在廣州的丁磊用50萬創辦網易沒買房;1999年陳天橋炒股賺了50萬,創辦盛大沒買房;1999年馬云團隊18人湊了50萬,注冊阿里巴巴沒買房。他們的成功不是由買房來決定的。
有人問音樂人高曉松,為什么結了婚還租房住,不買自己的房?高曉松回答:我不買房,全天下都是我的,想住哪兒就住哪兒;買了房就只剩一個角落是我的,我妹也沒買房,但我倆都走遍了全世界。
與他們持類似觀點的還有國內房產業大佬王石。2008年初,國內樓市初現調整之時,王石拋出了驚人之語:“對于那些事業沒有最后定型,還有抱負、有理想的年輕人來說,40歲之前租房為好。”
在我看來,以今天的房價,排除那些富二代不說,普通人買房賣夢想只有兩種情況:一種是雙方父母出錢資助,這種人基本上前途和發展被父母控股。第二種人是犧牲了太多的發展機會,典當夢想來成就一套房子。
美國人平均31歲才第一次購房,德國人42歲,比利時37歲,香港人是32歲,歐洲擁有獨立住房的人口占50%,剩下都是租房。
2009-12-28 13:08 28人閱讀 評論(0) 收藏 舉報
據新華社消息,“經中央紀委負責人證實,中國移動通信集團公司黨組書記、副總裁張春江因涉嫌嚴重違紀,目前正在接受組織調查。“這可能是近三十年來,中國電信系統的最大涉腐案件。
今年51歲的張春江畢業于北京郵電大學,此后長期在電信領域工作。2000年,42歲的張春江出任信息產業部副部長,是當時較為年輕的副部級干部。2003年5月,張春江出任電信重組分拆后的中國網通集團黨組書記,總經理。中國網通運營北方十省固定通信網絡,包括固定電話和寬帶業務。張春江在任期間,中國網通完成對小網通、吉通公司的融合重組,并成功在香港和美國上市。
2008年,中國電信業體制改革,中國網通并入中國聯通,由中國聯通董事長常小兵擔任重組后的中國聯通董事長,張春江5月調入中國移動擔任黨組書記和副總裁。
2008年,中國電信業體制改革,中國網通并入中國聯通,由中國聯通董事長常小兵擔任重組后的中國聯通董事長,張春江五月調入中國移動擔任黨組書記和副總裁。2008年6月,張春江擔任中國移動(香港)有限公司執行董事、董事長。
張春江是第十一屆全國政協委員,全國政協經濟委員會委員。2008年“兩會”期間,張春江呼吁加快電信體制改革。
從公開報道看,張春江最后一次出席公開活動是12月17日在“祝福祖國”文明公益短信傳遞活動啟動儀式上致辭。
消息人士透露,張春江被調查,應該與中國移動沒有關系,“他2008年5月才來移動上班,并沒有分管具體業務。”2008年5月26日,國資委和中組部曾宣布,張春江在中國移動的主要工作是主持集團公司黨組全面工作,并分管人力資源部。
去年5月,由于中國運營商大重組,張春江從中國網通集團總經理和董事長職位上調任中國移動二把手,任中國移動執行董事、副董事長、集團公司副總裁和黨組書記。他在中國移動的新職位月薪為10萬元,每年董事袍金18萬元。
張春江也是中國運營商高管系統中,較為年輕的一位(只有51歲),但是他在中國郵電系統資歷頗深,有超過26年的電信行業管理經驗。曾歷任遼寧省郵電局副局長、郵電部移動通信局局長、電信總局副局長、信息產業部副部長等。2003年5月開始擔任中國網通集團總經理。張春江一直被冠以中國通信業改革派的強硬人物,其作風雷厲風行。
關于張春江的職務方向,電信運營商圈內早有各種傳言。在2004年,中國網通在香港上市期間就有消息傳張春江在IPO完成后將調往黑龍江省任副省長,但此后再無下文。
也曾有消息稱,中國移動集團總裁王建宙已經59歲,離國資委規定的央企領導人60歲退休年齡只有半年時間了(王建宙1948年12月出生),而張春江出生于1958年7月,顯然是為接班而來,因為中移動此前并沒有設副董事長一職。
今年2月,又有報道指出,張春江可能會離開中國移動到中國聯通任職,但數月過去,未見動靜。本網綜合-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
這是在網上看到的一則消息,這則消息讓我周圍的一些朋友很震驚,回想宏福的生活,沒聽過什么大型的講座,曾經唯一讓我們振奮的就是聽說移動的副總來宏福講座,兩百人的教室,硬是擠了四百人,張總談了很多對中國信息產業將來的美好希望,忘不了叮囑后生要努力……
曾經坐網通的頭把交椅,一步步把網通做大……
怎么出了這種事?
到底是怎么一回事?
這是真的么?
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
張春江簡歷:
張春江出生于1958年7月,山東煙臺人,畢業于北京郵電大學。張春江原任中國網通集團董事長,并被中國網通集團指派出任電訊盈科董事。
伴隨第三次電信重組,張春江于2008年5月23日起擔任中國移動集團副總經理兼黨委書記。
曾任大連市郵電局副局長。
1993年08月任遼寧省郵電管理局副局長、黨組成員;
1995年01月任郵電部移動通信局局長、電信總局副局長、辦公廳主任;
1998年03月任信息產業部電信管理局局長;
1999年12月任信息產業部副部長、黨組成員,主要負責電信監管事務;
2003年05月任中國網絡通信集團公司黨組書記、總經理;
2004年06月任中國網絡通信集團公司黨組書記、總經理,中國網通集團(香港)有限公司執行董事;
2004年09月任中國網絡通信集團公司黨組書記、總經理,中國網通集團(香港)有限公司執行董事、董事長;
2008年05月任中國移動通信集團公司黨組書記、副總經理;
2008年06月任中國移動通信集團公司黨組書記、副總經理,中國移動(香港)有限公司執行董事、董事長。
第十一屆全國政協委員、全國政協經濟委員會委員。
2009-12-13 12:17 35人閱讀 評論(0) 收藏 舉報
半個月以來自己一直在實驗室里搞java.對java的數據結構和反射概念有了一點的理解。Java的數據結構是 ADT,簡單的形容就是一面墻,隔著用戶,可以進行的操作都在接口內部(interface),這讓我聯想到了在 spring的 sessionFactory中的beans都是interface或者是非final類型的類,因為只有這樣,變量才能夠進行實例化操作,在底層只有jdk的interface在工作,非常復雜的Ioc容器概念和反射概念其實就是對接口的管理,ADT是什么?似乎就是數據庫中的字段和對應的類,一系列的概念都在Model-->Dao—>Service-->Web中產生,作為初學者,我感到這些概念讓我措手不及。例如Servlet是怎樣到applicationContext找到自己想要的內容,以及AOP的設計思路是怎樣在Domain和DAO滲透的,去理解hibernate和Spring是怎樣解耦的?
這一切似乎都在告訴我java很復雜,這幾天我加入了幾個JAVA愛好者的QQ群,和他們交流的時候,問題很嚴重,就是聽不懂大家究竟在討論什么?Swing和SWT組在討論桌面控件,SSH組在討論怎樣將Struts1.X轉化為Struts2,以便更好的整合。光是解決SSH中兩個jar的沖突,我就發了兩次帖,到論壇上進行求助,和一個北大青鳥的學java的朋友交流,他說:java很難。
java是很難的,但是,在多年以前,大家還在用筆記本進行軟件開發,在cmd下調試的時候,是簡單的么?越來越多的框架和越來越多的工具都在告訴我們,java在變得簡單,只是java處理的問題變難了。在學習hibernate的時候,體驗最大的就是入門很難,但是目前學習的整個過程,自己去真正寫代碼的時候很少,全自動的對數據庫的操作進行了一層又一層的封裝,我們最后得到的是服務層的函數。在Struts Action中進行DelegatingActionProxy,在后臺進行sessionFactory注入,問題就解決了。于是我們看到還是一個完美的ADT,即不多什么也不少什么。而在Myeclipse中更是集成了spring,hibernate和struts的GUI開發能力,在做Jsp頁面跳轉的時候,就是畫圖的模式寫代碼。
那究竟是什么地方難呢?針對我自身的情況總結為以下幾點,這也是也后繼續學習的時候必須注意的。
1.對API的使用幾乎為0.很多問題,debug到最后,都可以在API上找到問題解決方案,這是前人的經驗和JDK 的 source決定的,所以,一定要學會看API,多去瀏覽英文的網站,應為英文的網站上的解答大都是從console看信息,然后去API找答案的,而我就是google。導致自己不會看控制臺里的內容。
2.熟悉概念,例如對反模式的理解可以更好的理解數據庫是如何CRUD的。可以觸使自己解決看起來復雜,其實很簡單的問題,就像在iBatis中,大量的原始SQL語句都要自己去寫,這樣可以使自己在做的過程中看見SQL是怎樣映射過去的,但是針對hibernate的HibernateDaoSupport,不知道它是怎樣轉化過去的。
3.學習使用Junit和Ant。在整個的過程中,是不斷迭代的過程,循環監測和模塊調試很重要,整個結構起碼有三層的時候,調試起來,只通過tomcat的窗口終究不知道哪里出了問題。而Junit和Ant都是通過annotation來完成的。所以,學會使用這些工具迫在眉睫。
4.多交流,CSDN的論壇是個好地方,第一次去CSDN是google過去的,當時是學習MFC的時候,對消息映射的機制了解不好,鏈接過去的。而最近我發現,被動的鏈接到論壇其實得到的東西很少,瀏覽的時候,不妨多去論壇。記得曾經有人說,簡簡單單學java,天天上CSDN。
這是我最近學習上的一點總結,歡迎大家交流、指正和分享體會。