Goingmm

            BlogJava :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理 ::
            82 隨筆 :: 15 文章 :: 452 評論 :: 0 Trackbacks

          #

               摘要:           周末和 MIKE 吃飯的時候,他詢問,上次提說的問題,什么時候能寫出來。“對Session和Transaction的處理,最好單獨實現(xiàn)一個模板類來統(tǒng)一做”   溫故 居于常規(guī)的Hibernate的DAO代碼。例子做一個Create操作  1public&nb...  閱讀全文
          posted @ 2005-12-07 13:55 Goingmm 閱讀(1690) | 評論 (11)編輯 收藏

          ------------------------------------------------------------------------------------
                NEW OFFICE   AT  2005-12-05
          ----------------------------------------------------------------------------------------------

          換了新的環(huán)境,
          新辦公室 很大,很新,
          大得大家坐一間屋子里,稍微遠點就看不清楚摸樣了
          新得連地毯,空調(diào)都沒得。

          昏暗的燈光下。感覺像手工作坊的織衣車間
          樓頂橫七豎八的管道和吊燈,有點像學(xué)校的洗澡堂

          可能,設(shè)計師要的就是這份簡潔,
          ... 似乎在向我們詮釋,節(jié)約

          大老遠從城市中出來,
          找的,就是這刻回歸自然的感覺

          荒涼?
          一個連吃飯都緊張的地方。
          明天打算自己帶盒飯過來試試


          2005-12-05 New Office




          posted @ 2005-12-05 17:47 Goingmm 閱讀(298) | 評論 (3)編輯 收藏


             最近,用各種算是流行的方法寫了些Hibernate的例子(基于測試)。上次打算寫兩篇文章。① Hibernate 常用工具的配置和使用。② Hibernate 比較簡單的,基于單表操作的例子。寫了80%吧。越想越感覺意義不大。現(xiàn)在網(wǎng)上很多這方面的文章。我自己也沒有理由,自私的所謂備份。占用Blogjava的硬盤空間。就成了后來的 “冰 凍 閑 聊
            
          上個星期五,因為公司停電。所以休息了三天。一年前,這個數(shù)字可能會感覺太短。但是現(xiàn)在卻是突然覺得連續(xù)三天不上班。不知道該干什么好。
            
          難道是對這種“月光”族的生活上癮拉? 這樣的話題,等以后想明白了再說吧!~
            
          接著說這個周末吧!因為無聊,翻翻,去年用過的一些散亂的筆記。越看越搞笑,字跡潦草,還好基本上是一些技術(shù)痕跡。找不到從前那些“少年不知愁滋味”的感覺。
            
          因為我一直不是很喜歡看書。現(xiàn)在的書,寫得好的不多,但是價錢蠻貴的。所以,有時候就會把一些疑惑的問題寫在一張紙上。然后去網(wǎng)上先收集一些資料,再閱讀總結(jié)。
            
          這里,我發(fā)現(xiàn)了一條有趣的問題。2004123 Hibernate使用JDBCJTA管理事務(wù)有什么區(qū)別?傻傻的問題。不如今天就聊聊這個話題吧!可能,現(xiàn)在也會有人對這個問題感覺疑惑的。

           

          打開hibernate.cfg.xml看看具體的JDBCTransaction JTATransaction 配置:

           11)
           2<property name="hibernate.transaction.factory_class">
           3org.hibernate.transaction.JDBCTransactionFactory
           4</property>
           5
           62)   
           7<property name="hibernate.transaction.factory_class">
           8org.hibernate.transaction.JTATransactionFactory
           9</property>
          10


          可能你還會問:“除了這兩種還有其他的選擇嗎?到底選擇那一種好呢?在一個應(yīng)用中能混合使用嗎?”等等問題

          分析和解答:
          第一個問題
             可以選擇其他的事務(wù)管理方式。不過都是JTA的不同實現(xiàn)版本。這個目錄下面有羅列出來hibernate-3.0\src\org\hibernate\transaction。比如:

          1<property name="hibernate.transaction.manager_lookup_class">
          2org.hibernate.transaction.WeblogicTransactionManagerLookup
          3</property>
          4


          第二個問題
            
          概念事務(wù):事務(wù)就是能以整體的原子操作形式完成的一系列操作。

             是不是感覺有些饒口?簡單的說,事務(wù) 就是一個邏輯工作單元。其中包括一系列的操作。
          至于事務(wù)為什么會產(chǎn)生?有什么基本特性?等等。。這些問題今天不就詳細的羅列了。網(wǎng)絡(luò)上有寫得很好的文章。
          Hibernate JDBC的輕量級封裝。他本身并不具備事物管理的能力。事務(wù)的管理和調(diào)度將委托給JDBC或者JTA去做。


              先說,他默認的事務(wù)處理機制[ JDBC Transaction ],這的確是最簡單的處理方式,因為Hibernate只是對JDBC事物做了一層簡單
          的封裝。JDBC事務(wù)由Connection管理。事務(wù)周期局限于Connection的生命周期之內(nèi)。在Hibernate中這種事務(wù)周期也就局限于一個Session之內(nèi)。做個比較吧!

          Connection conn =     ;      <---   session = sf.openSession();// 初始化數(shù)據(jù)庫連接,

          setAutoCommit= false;

          conn.setAutoCommit(false);     <---   tx = session.beginTransactioin(); 會再次確認setAutoCommit是否是false

          調(diào)用業(yè)務(wù)方法                   <---   調(diào)用業(yè)務(wù)方法

          conn.commit();                 <---   tx.commit(); (對應(yīng)左邊的兩句) 這里很關(guān)鍵,關(guān)掉自動commit。自己就必須做commit。否則數(shù)據(jù)是不會被持久到數(shù)據(jù)庫

          conn.setAutoCommit(true);

          conn.close();                  <---   session.close();

           

          簡單吧!如果你對JDBC有了解,看到這里可能會壞笑,NND就這么簡單,我也會封裝有興趣的話可以直接去看看具體的源代碼。

           
          看看第二種[JTA Transaction]有什么神奇的地方吧!

             JTA 提供了跨Session的事務(wù)管理能力。JTA的事務(wù)是要容器支持的,即JTS,用來分布式的要求比較多一些,比如像銀行這種大系統(tǒng),處理多個事務(wù)源的這些的。
            
          JTA事務(wù)管理則是由JTA容器實現(xiàn)。事務(wù)的生命周期完全由容器來維護。容器中可以有很多Connection。按照執(zhí)行的順序,因該是串聯(lián)的一條JDBC Connection事務(wù)鏈。所以JTA的事務(wù)周期可以跨多個JDBC Connection的生命周期。在Hibernate中這種事務(wù)周期也就可以跨越多個Session。
            
          所以。JTA事務(wù)的Connection不能對事務(wù)管理進行干涉。意思就是,假如使用了JTA就不應(yīng)該再重復(fù)調(diào)用HibernateTransaction功能。這里涉及到一種事務(wù)模型(嵌套式事務(wù)模型)的問題。這里也不詳細的介紹具體的幾種事務(wù)模型了。在EJB2.0規(guī)范里面也不支持這種事務(wù)處理模型。
            
          例如

          1class A 有一個方法 savePerson()
          2class B 有一個方法 saveAddress()
          3// Call A.savePerson() and B.saveAddress() Used JTATransaction
          4class C 有一個方法 saveAll() 
          5UserTransaction tx = (UserTransaction)(new InitialContext.lookup(“…”))
          6A.savePerson();
          7B.saveAddress();
          8tx.commit();
          9

           

          那么下面這段代碼

          1Transaction tx = session.beginTransaction();
          2tx.commit();
          3


          就不能在class A class B 中出現(xiàn)。

          原因:session.beginTransaction()也同樣執(zhí)行了InitialContext.lookup方法來獲UserTransaction的實例,tx.commit()也同樣調(diào)用了UserTransaction.commit().這樣做就會形成嵌套式的事務(wù)。在Hibernate里面是不被允許的。會導(dǎo)致運行期錯誤

           

          談到這里,不難看出,他們都有著自己鮮明的特點和基本的聯(lián)系。回到開頭的問題,在實際項目中該選用誰好呢?

          這就需要分情況而定了。

          1) 如果項目有用到Sessionbean.可能你會疑問?這時候由誰來管理事務(wù)呢?

          答案:用SessionBean來管理。使用JTA會很方便。因為你完全沒有必要去理會Transaction。直接在SessionBean的部署描述符里面聲明事務(wù)就行了。

          2) 自己實現(xiàn)一個Service類,來統(tǒng)一調(diào)用持久層的方法。這樣也能做到前后臺的松耦合。但是這時候你對sessionTransaction的處理就需要小心了。如果系統(tǒng)考慮分布式就使用JTA否則就JDBC足夷。但還是有必要考慮系統(tǒng)的升級,變遷什么的。對sessionTransaction的處理,最好不要放在DAO里面做。單獨實現(xiàn)一個模板類來統(tǒng)一做。具體的原因和做法,以后有時間再寫出來。

           

          第三個問題

          由于SessionFactory是線程安全的,他的創(chuàng)建過程非常復(fù)雜,代價極其昂貴。一個應(yīng)用中最好只有一個SessionFactory。事務(wù)管理類型的選擇是在SessionFactory的屬性里面配置的。這里只能選擇一種事務(wù)管理方式。

          當然,你可以說還有特殊的情況,假如,這個應(yīng)用需要連接到兩臺數(shù)據(jù)庫服務(wù)器,就必須為他創(chuàng)建另一個SessionFactory。那么就可以選用另一種事務(wù)管理方式。表面上看這種情況是可以的。居于兩種事務(wù)的性能考慮?;旌陀玫囊饬x不是很大。假設(shè)這樣用+面對考慮不周全的DAO,也違背了設(shè)計原則,想想,這樣的話,因為數(shù)據(jù)庫的變動,還得回去修改DAO的代碼嗎?(可能會產(chǎn)生嵌套問題)

          所以關(guān)于這個問題的結(jié)論就是:

          在一個SessionFactory中只能選用一種事務(wù)管理

          面對多個SessionFactory的時候,可以混合用,但是不推薦

          2005-11-28 CTU OFFICE GOINGMM

          posted @ 2005-11-28 12:00 Goingmm 閱讀(1878) | 評論 (3)編輯 收藏

          遺憾昨天晚上的比賽沒有看。補時4分鐘?是不是裁判知道尤文又贏了,認為AC 必須得贏球??!

          這種眼神很長時間沒見著了


                                yzj.jpg

          附上:舍甫琴科  上一場的4個進球,如果單純的是為了酣暢淋漓。讓你提前墊付了未來三場的運氣,
                       有些不劃算哦

                                     spqk-4.jpg


          2005-11-28 CTU OFFICE


          posted @ 2005-11-28 11:24 Goingmm 閱讀(260) | 評論 (1)編輯 收藏

          很久沒有回來了。大家好
          今年的成都可真夠冷的。想..想...想.. 還沒有發(fā)餉,想什么都虛幻
          閑來無聊,寫些無聊的東西。本來想放Blog上,但是太雜亂,所以這篇Blog寫了80%后我就停下了。
          結(jié)果,變成了幾行無聊的文字


           

          posted @ 2005-11-24 18:26 Goingmm 閱讀(347) | 評論 (5)編輯 收藏

          航班日期:2005年11月15日

          航班號:CA422

          起飛/到達時間:13:00/15:30


              完成我的使命。該回家了。明天就要離開這個城市。離開一起戰(zhàn)斗了26個日日夜夜的項目組。項目和團隊全局意義的勝利,還需要一些時間去考驗。祝福他們在剩下的日子里能做得更好。
             
          北京,今年來了兩次。工作原因,使我頂多算一個匆匆的看客。一直沒有機會去真正了解這個Master城市。為什么叫他Master城市呢?因為我們平時看到的很多機構(gòu)在這里就是總部。外表其實也就那樣。但是權(quán)力卻是Master的。背負著沉重的歷史,注定這座城市不會給我們太多華麗和浮華的外表。想想兒時向往的天安門,其實就一座二層老房子。近看我還是覺得單薄了一點。沒什么氣勢。尤其是兩邊的看臺。比大學(xué)足球場的看臺還簡單??赡苓@只是鞭策中國人的一種象征物吧。
             
          要讓我拿北京和成都做個比較的話??赡芤魈煸诼飞线呑哌吙矗艜行└杏X。但是我不大可能在飛機上給大家發(fā)Blog吧。隨便說一些生活上的感覺。這邊上班時間比成都要早(830)。但是因為離得不是太遠,而且每天上下班打車。這方面,的確方便了很多。累了一天后很容易恢復(fù)。這樣早上會睡得好一點。北京很大,大得五環(huán)外也會經(jīng)常塞車。據(jù)說今年北京是暖冬,帶了很多衣服過來都還沒機會穿。而且家里有暖氣。想想在成都這幾天不敢穿著短褲趴窗臺上上網(wǎng)吧!~ 遺憾我還沒有能看到北方的雪,和沙塵暴。只是每天回家灰塵挺嚇人的。 干燥的氣候,隨時都會被靜電襲擊的危險。所以我的手基本還好,但是衣服的袖子就可憐了。剛開始,不理解的北京人,還以為我是怕他們的地方臟。幸好好奇的問了我,不然成天大的誤會了。
             
          這次過來基本沒有出去玩。北京的朋友還有老同學(xué)些。真是對不住了,沒有去看你們。有機會咱們成都見。那里才有正宗的水煮魚,夫妻肺片北京的飲食比較實在。貴但是量足。北京人自豪的烤鴨不好吃。說不出有什么特色?;旧衔叶疾粫云鸬臇|西。還好這次找到一家,川菜做得不錯。


               停一下 剛才抓拍了幾張照片。全當是這次生活的一個縮影送給大家

               parlor.JPG
               PSTwins.JPG
               Leo.JPG
               windowsill.JPG
               living room.JPG

              
             最后,我不得不感謝 “聽濤小區(qū)長期穩(wěn)定的無限網(wǎng)絡(luò)” 雖然也不知道是誰家的,而且只發(fā)射到我的窗臺上。但是這種共享精神充分體現(xiàn)了北方人,為人淳樸 豪爽 耿直 的特點。我會把你們的這種精神帶回南方,不過,得等我有無限網(wǎng)絡(luò)的那一天.

          2005-11-14夜 聽濤 窗臺

          posted @ 2005-11-14 23:11 Goingmm 閱讀(438) | 評論 (5)編輯 收藏

          ------------------------------------------------------------------------------------------------
             Eclipse Platform
          Version: 3.1.0 Build id: I20050219-1500

             
            Junit Version:
          3.8.1

          ------------------------------------------------------------------------------------------------

          EclipseJunit 大家應(yīng)該都很熟悉了。這里我也不打算去講為什么需要做這樣的組合。為什么需要測試。為什么測試還有那么多講究和學(xué)問。用一個最簡單的例子,讓還沒有使用過的朋友,有一個簡單的認識。主要是發(fā)圖玩玩

           

          1)看看完成后的效果圖
          Project.JPG

          2)      
          運行Eclipse。新建一個workplace項目,點擊 file->new->project,選擇Java項目,點擊下一步。寫一個項目名稱,例如UseJUnit。點擊Finish。這樣就完成新項目的建立。再來配置一下Eclipse,在構(gòu)建路徑中添加JUnit類庫。在工具條上點擊項目->屬性,選擇Java Build Path,Libraries,選擇 Add external JARs,瀏覽Junit被存儲的目錄,選擇junit.jar,點擊打開。你將會看見JUnit出現(xiàn)在庫的列表中。點擊確定,讓Eclipse重建路徑。
          addJar.JPG

                   

          3)新建一個Class Person
          Person.JPG

          4) 新建一個Test Class TestCaseWithJunit
          newJunit.JPG

          代碼如下:public void testSay() 方法是我自己加進去的

          TestCaseWithJunit.JPG

          5) Run Test case
             runJunit.JPG

          6) 看看測試結(jié)果
                result-1.JPG

          7)修改一下測試代碼
             modifiedcode.JPG

          8)再看測試結(jié)果
          result-2.JPG

          result-3.JPG



          呵呵! 第一次發(fā)圖。如果上面的過程描述有什么不清楚的地方。請與我聯(lián)系

          2005-11-13  聽濤 窗臺


          posted @ 2005-11-13 13:45 Goingmm 閱讀(384) | 評論 (1)編輯 收藏

          -------------------------------------------------------------------------------------------------
             MySQL-Front  V3.2 Build 6.25

             MySQL           V4.1

          -------------------------------------------------------------------------------------------------

                
          從名字看雙胞胎一般的他們倆。是絕配嗎?我也不知道,有時候,MySQL-Front會告訴我:“我不認識MySQL”。不要以為我和他有啥子關(guān)系。這就是我今天要談到的問題。因為剛用MySQL一段時間。不知道還有沒有更好的組合式用法。

          1)用[MySQL Command Line Client]進入MySQL cmd操作模式

          drop database dbName;

          create database dbName;

          use dbName;

          2) 數(shù)據(jù)庫建立好以后開始建立表

             drop table person;

                create table person (

                   person_name varchar(16) not null primary key,

                   person_pass varchar(32) not null,

                   person_sex int(1) default '0' ,

                   person_email varchar(30) default null,

                   person_lastLogTime dateTime,

                   active_status int(1) default '0'

          );

          3)  現(xiàn)在你可以插入一些數(shù)據(jù)

          insert into person  values('goingmm','***','', 'todogoingmm@163.com', '2005-11-5',1);

          …………...........

          4)  OK 現(xiàn)在可以查詢出來看了

          select * from person

           

          突然感覺老在這里操作很是不方便。于是想起了MySQL-Front。打開看看,咦!沒有找到數(shù)據(jù)庫dbName。努力了1個小時。原因猜完,辦法想盡。MySQL-Front還是說我認識他,你不要搞我拉!~果然,再搞 MySQL-Front死掉拉。有個性。

          后來把剛才做的1234)全部回滾。就是刪掉數(shù)據(jù)庫。在MySQL-Front里面先建立一個數(shù)據(jù)庫。然后去cmd建立表,插入數(shù)據(jù)。最后回到MySQL-Front。哈哈,這回看到剛剛建立的數(shù)據(jù)庫了。

          不知道大家有沒有遇到過這個問題。是MySQL-Frontbug嗎?還有一些MySQL-Front很弱智的問題,比如SQL編輯器。希望他的下一個版本不要這么粗糙。畢竟MySQL 5.0


          2005年11月5日

          -----------------------------------------------------------------------------------------

          posted @ 2005-11-05 14:43 Goingmm 閱讀(2455) | 評論 (10)編輯 收藏


          很不好意思,前三篇都還是概念。

          其一: 我想歸納下來,給自己以后看做一個備份
          其二: 現(xiàn)在真沒時間去寫代碼

          項目做完,回到成都,在后面的文章中,我會抽空寫一些實際的例子


          ---------------------------------------------------------------------------------------------------------------------
             概念Hibernate中的接口
          ---------------------------------------------------------------------------------------------------------------------

          大致分類:

               被用戶的應(yīng)用程序調(diào)用的,用來完成基本的創(chuàng)建、讀取、更新、刪除操作以及查詢操作的接口。這些接口是Hibernate實現(xiàn)用戶程序的商業(yè)邏輯的主要接口,它們包括SessionTransactionQuery

               Hibernate用來讀取諸如映射表這類配置文件的接口,典型的代表有Configuration

               回調(diào)(Callback)接口。它允許應(yīng)用程序能對一些事件的發(fā)生作出相應(yīng)的操作,例如Interceptor、LifecycleValidatable都是這一類接口

               一些可以用來擴展Hibernate的映射機制的接口,例如UserTypeCompositeUserTypeIdentifierGenerator。如果你確認有必要的話這些接口可由用戶程序來實現(xiàn)。

           

          Session接口

                 Session接口對于Hibernate開發(fā)人員來說是一個最重要的接口。然而在Hibernate中,實例化的Session是一個輕量級的類,創(chuàng)建和銷毀它都不會占用很多資源。這在實際項目中確實很重要,因為在客戶程序中,可能會不斷地創(chuàng)建以及銷毀Session對象,如果Session的開銷太大,會給系統(tǒng)帶來不良影響。但值得注意的是Session對象是非線程安全的,因此在你的設(shè)計中,最好是一個線程只創(chuàng)建一個Session對象。

                 Hibernate的設(shè)計者將session看作介于數(shù)據(jù)連接與事務(wù)管理一種中間接口。我們可以將session想象成一個持久對象的緩沖區(qū),Hibernate能檢測到這些持久對象的改變,并及時刷新數(shù)據(jù)庫。我們有時也稱Session是一個持久層管理器,因為它包含這一些持久層相關(guān)的操作,諸如存儲持久對象至數(shù)據(jù)庫,以及從數(shù)據(jù)庫從獲得它們。請注意,Hibernate session不同于JSP應(yīng)用中的HttpSession。我們通常會將HttpSesion對象稱為用戶Session。

           

          SessionFactory 接口

                 他用到了一個設(shè)計模式[工廠模式],用戶程序從工廠類SessionFactory中取得Session的實例。

                 但是請記住,SessionFactory并不是輕量級的!實際上它的設(shè)計者的意圖是讓它能在整個應(yīng)用中共享。典型地來說,一個項目通常只需要一個SessionFactory就夠了,但是當你的項目要操作多個數(shù)據(jù)庫時,那你必須為每個數(shù)據(jù)庫指定一個SessionFactory

           

          Configuration 接口

                 Configuration接口的作用是對Hibernate進行配置,以及對它進行啟動。在Hibernate的啟動過程中,Configuration類的實例首先定位映射文檔的位置,讀取這些配置,然后創(chuàng)建一個SessionFactory對象。

           

          Transaction 接口

                 Transaction接口是一個可選的API,你可以選擇不使用這個接口,取而代之的是Hibernate的設(shè)計者自己寫的底層事務(wù)處理代碼。 Transaction接口是對實際事務(wù)實現(xiàn)的一個抽象,這些實現(xiàn)包括JDBC的事務(wù)、JTA中的UserTransaction、甚至可以是CORBA事務(wù)。
          為什么要這樣設(shè)計呢?因為這樣使開發(fā)者能夠使用一個統(tǒng)一事務(wù)的操作界面,使得自己的項目可以在不同的環(huán)境和容器之間方便地移值。

           

          QueryCriteria接口

                 Query接口讓你方便地對數(shù)據(jù)庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地數(shù)據(jù)庫的SQL語句。Query經(jīng)常被用來綁定查詢參數(shù)、限制查詢記錄數(shù)量,并最終執(zhí)行查詢操作

           

          Callback 接口

                 當一些有用的事件發(fā)生時。例如持久對象的載入、存儲、刪除時,Callback接口會通知Hibernate去接收一個通知消息。一般而言,Callback接口在用戶程序中并不是必須的,但你要在你的項目中創(chuàng)建審計日志時,你可能會用到它。


          2005年11月3日 夜  陰天 溫度偏低

          聽濤[601]室 窗臺

          posted @ 2005-11-03 23:16 Goingmm 閱讀(726) | 評論 (21)編輯 收藏

              我這里是北京時間2005-10-31 晚上22:10。還有一個時辰大家都關(guān)心的“星期一”就要過去了。今天到底發(fā)生了什么?項目組是怎么挺過來的?我們還能繼續(xù)往前走嗎?

          現(xiàn)在項目組的核心開發(fā)小組,DBA,服務(wù)器管理,報表組,Domain還有一些協(xié)調(diào)的工作人員都集中在信心中心。我們就下到醫(yī)院流程現(xiàn)場。

          核心開發(fā)小組:這組基本上是新加坡,馬來西亞過來的同事。他們負責解決系統(tǒng)隨時出現(xiàn)的緊急情況。

          DBA:這個小組主要負責繼續(xù)做移植數(shù)據(jù)的效驗,和緊急的數(shù)據(jù)patch,最主要的還是負責數(shù)據(jù)庫壓力監(jiān)控和調(diào)優(yōu)。

          服務(wù)器管理組:他們負責看好四臺Web服務(wù)器(有兩臺是備用的),一臺應(yīng)用服務(wù)器。還有其他的測試服務(wù)器。

          報表組:這組人員現(xiàn)在的壓力可不小。各個部門的流程單據(jù),還有PA的財務(wù)報表,那可是用戶眼見為實的東西。他們的    從容, 總算讓我了解ShuaiYu同志去年拿那么多獎金背后的故事拉。

          Domain

          協(xié)調(diào)的同事組:他們也挺辛苦的,雜亂的工作。該怎么去閱讀他們,我想自己嘗試過后都能理解。

           

          大家可能會疑惑,goingmm你娃在說啥子哦!半天說不到主題,大伙張著嘴巴呼吸在等現(xiàn)場鏡頭呢!!

           

          沒有伏筆,沒有漂亮的引詞.我們直接去住院處看看吧!

          早上800準點到達現(xiàn)場。大廳擠滿了人,和大家念書的時候去學(xué)校財務(wù)處交錢是差不多的。大家都生怕自己手上的錢交不掉似的。這次單槍匹馬殺過來的。打心里還是有一點不塌實的感覺。還沒有按上門鈴人家已經(jīng)熱情的開門叫我進去拉。還沒打完招呼做完自我介紹,他們領(lǐng)導(dǎo)說話了:“快,小伙子830就開始錄入拉,我們還有兩員工是第一次使用系統(tǒng),趕快帶他們過一次”。當場暈忽忽的怎么還有這回事啊。沒辦法啊,我們出來混,上面明確要求不能對用戶說“不”。

          830到了,全部窗口打開,那可是鈔票進,發(fā)票出的場面。站在里面的我看著心里挺爽的。時間過了大概一個小時,系統(tǒng)開始有異常的情況出現(xiàn)了。最先暴露的就是大家熟悉的查詢。我橫著一看四臺機器全部顯示請等待。緊接著就是標準的北京腔調(diào)的疑問,“小伙子,你得給我看看,這是怎么拉。半天沒動靜,你叫我怎么辦啊?”穩(wěn)住他們,立馬電話連通信息中心,“喂請幫我查一下,為什么系統(tǒng)現(xiàn)在特別慢,住院處已經(jīng)沒法繼續(xù)拉”。還沒有收到電話里面的回復(fù)。信息中心已經(jīng)有人趕到現(xiàn)場,通知用戶趕快把系統(tǒng)切換到103(另一臺web服務(wù)器)。結(jié)果出人意料,切換到103的用戶登陸后,頁面錯誤頻頻。用戶操作一半失敗了。眼睛帖著屏幕仔細一看內(nèi)存不嚴重不足。NND一直驚風(fēng)火扯的Error Page 這回算是看過癮了。四臺電腦同時Show給我看,

          住院處的領(lǐng)導(dǎo)們還是見過大場面的。臨場指揮,果斷堅決。帖一紙條“手工辦理”上窗戶。指揮著,“大家體諒一下,現(xiàn)在系統(tǒng)正在升級,難免出現(xiàn)問題。緊急的用戶可以先到這邊來,我們幫你們做手工錄入,呆會系統(tǒng)好了,錄進去把條子給你們送過去?!?/SPAN>

          我也沒有傻呆著,組織起兩臺客戶機器,再試一試101(住院處主服務(wù)器)。TNND這回就更加不可接受了。服務(wù)器直接down掉。我看到的是IBM字樣的提示信息了?!?/SPAN>IBM”啊,我們把你們的硬件軟件一起放在那間神圣的機房里面。門口得刷卡進去。其他得連灰塵也沒讓它靠近你。就差點上幾根香,擱一大盤子放點蘋果橘子把你供起來拉!就這樣回報我們啊???

          NND不會吧?才一個小時就玩完拉?這時候信息中心果斷的重起了一次服務(wù)器,雖然沒有通知我們。但是我還是很感謝他們及時的處理。NND再進頁面狀態(tài)入初,那種感覺就像是早上起床推開那玻璃窗戶。多爽??!后來,103也重啟好拉,這回通知拉,主要給住院處用。我又指揮著,大家都確認進103吧。這次切換還算滿意,一直到病人錄入完畢都沒有發(fā)生問題(四臺一起工作)。在住院處守侯了一天,看著他們不時拿出全部發(fā)票,鈔票,數(shù)著算著,最后打開報表核對,呵呵!他們也怕錢不夠。還好,平均每個人核對過3次。精確到小數(shù)點后面兩位數(shù)。都能對上。

          中午回研發(fā)室吃盒飯。正好碰上老大在給蔡總匯報情況。挺實在的,包括問題,出現(xiàn)原因,現(xiàn)在的解決辦法。從系統(tǒng)設(shè)置,到硬件,那可是都說到點子上拉?!熬秃帽裙菊f要讓他們動起來每人發(fā)5000先用著吧。” 話語中我能感覺到明天早上的壓力會比今天小。不管能小多少,能不斷進步就好。聽得入神拉,難吃的盒飯,快吃完才感覺出來難吃死老。這回還真對得起這10塊錢。

          看到這里,我想大家,還會為我明天早上的遭遇,捏一把汗??偨Y(jié)一下:“問題會延續(xù)... 時間不確定;壓力依然在,時間不確定;”可能這個時間越短,我們能學(xué)到的越多。

          2005年10月31日  聽濤 601室 窗臺

          posted @ 2005-10-31 23:35 Goingmm 閱讀(599) | 評論 (24)編輯 收藏


              閉上眼睛,回首
          23年來的經(jīng)歷。真的能看見眼前快速閃過的畫面。使勁的想扎進去看清楚一點。那里有童趣,幼稚,天真,有夢想,還有堅持。是會意的傻笑把我拉回了現(xiàn)實。奇怪沒有找到1029這個時間戳。書上說:“人是聰明的動物。他們只會把對自己有意義的東西,深深的勾畫在腦海中?!?/SPAN>

          的確,眼前的經(jīng)歷注定了1029是這一輩子再也難忘的日子??靸赡甑男难K于開始有了收獲。我現(xiàn)在我還不敢貿(mào)然提說“勝利”這兩個字。開發(fā)團隊的穩(wěn)重,成熟和冷靜告訴我“考驗才剛剛開始”。

          在這里留下這些雜亂的文字,遙寄在遠方默默支持我們的成都團隊全體同事。讓我們一起來分享這美妙時刻。我大致能體會你們此時難以描述的心情。擔心擔心系統(tǒng)承受的壓力,擔心前方的開發(fā)人員面臨的難題。自豪自豪一天內(nèi)系統(tǒng)幾乎沒有大的問題,自豪自己就是開發(fā)團隊的一員。喔!說什么哦!都說難以描述拉真想把你們每一個人都寫的活靈活現(xiàn),可憐我沒那樣的文筆,還是到現(xiàn)場去看看吧!

           

          鏡頭一

          2005-10-29日凌晨1 按照項目組的安排這個時候我們應(yīng)該進入夢境。為上線做好最后的準備??赡苁怯捎诘谝淮斡羞@樣的經(jīng)歷,內(nèi)心有些亢奮,也可能是平時沒有這么早睡的習(xí)慣。差不多2點才睡著。早上530起床去醫(yī)院研發(fā)室。等待數(shù)據(jù)移植。

           

          鏡頭二

                 由于數(shù)據(jù)移植推遲了一點時間。早上730左右完成數(shù)據(jù)移植,同時啟動了應(yīng)用服務(wù)器

          這時候,DBA+Shuaiyu)全然忘記自己是通宵到現(xiàn)在,還在不知疲憊的檢查驗證數(shù)據(jù),做數(shù)據(jù)庫優(yōu)化。這時候問題出現(xiàn)了。由于昨天晚上5.4(老系統(tǒng))的收銀機沒有完全關(guān)閉。Patch進去的補丁會產(chǎn)生問題。這邊報表服務(wù)器也進不去了,還有誰改了我們熟悉的iHIS的密碼。管理員登陸不了拉。那邊電話里面?zhèn)鬟^來的消息說:“用戶已經(jīng)迫不及待的登陸進了系統(tǒng)”說到這里場面已經(jīng)有一點混亂了。

          老板此時的臉上看不出笑容,找不到慌亂,可能是他的堅持還強撐著極限中的自信和寬容。這是一個需要英雄的時刻,但說實話,我什么忙也幫不上。經(jīng)過大家的努力,密碼問題輕松搞定,收銀機的Patch也有驚無險。報表組拼盡全力,依然毫無頭緒。平時做100次也沒有問題,偏偏今天

          我們在住院處接到通知,應(yīng)用服務(wù)器需要重新啟動。感覺怪怪的,后來才知道。正是這次重啟解決了報表問題(報表在服務(wù)器啟動的時候會到一個MSTR表去load數(shù)據(jù),但是今天先啟動了服務(wù)器,然后才把這些數(shù)據(jù)PatchMSTR表中,造成了幾個小時的“報表問題”)

           

          鏡頭三

                 應(yīng)用程序問題解決了,住院用戶吹著病人等不急拉,我們得趕快下住院部去。時間:1007分,Baijie(北京測試老大)帶領(lǐng)我們趕到住院處,協(xié)助他們開始做病人的住院登記以及住院費用處理。

          去之前聽說這個部門壓力很大,四個窗口平時都忙不過來。心里還憷著呢!還好,到現(xiàn)場一打聽,今天是周末沒有那么多人。平時擠滿人的大廳幾乎是空蕩蕩的,外面看感覺和去銀行取錢的場景很相似。進去以后發(fā)現(xiàn)有一個很逗的老頭,不間斷的和我們開著玩笑。懷揣著北方人的幽默??赡苁撬臒崆楹屠暇?,讓我感覺北京話聽著還蠻淳樸的。

          大概在1130的時候出了點小狀況。倆女患者(都還挺漂亮的)過來辦理出院。系統(tǒng)打印出的單據(jù)上顯示:住院6天,但是床位費用收了7天。我們的第一反映就是希望患者能留下電話或者其他聯(lián)系方式。做好最后的確認再通知她們過來。就是這樣一個折中的意見惹火了其中一個。大咧著嗓子說:我們住的是400一天的病房。系統(tǒng)打印不是6天嗎?憑什么收7天的錢?承不承認是你們系統(tǒng)錯了?

          無意間,我看到Baijie無奈的抿了一下嘴,但還是自信的說:“我們馬上檢查”系統(tǒng)沒有這個問題。面對這么裸感的質(zhì)問,我真的感覺心酸這一次算是給我留下了深深的烙印。以后每寫一行代碼的時候可能都會想起

          10分鐘后,問題終于有了答案。是昨天的數(shù)據(jù)移植把收費日期給弄錯了(27日)應(yīng)該是28日。所以每一個用戶都多算了一天的床位費用。這個改動很快就被patch到數(shù)據(jù)庫

          在這里的幾個小時,我總結(jié)了一下

          1)    用戶需要快速準確的業(yè)務(wù)過程(還真碰上了非常急迫的用戶,為了趕飛機該補50掏出100等不急找錢退卡就要走)

          2)    我們的需求,和第一線用戶的想法還有差距,他們的想法更加實用。對系統(tǒng)現(xiàn)在新功能的認可和中肯意見都讓人佩服

          3)    這里的一線用戶都表現(xiàn)了良好的素質(zhì)和風(fēng)度。包含著對我們現(xiàn)狀的寬容和理解

           

          鏡頭四

                 時間已經(jīng)是下午200多了,回到信息中心,一些同事在啃面包,吃盒飯,打電話,改程序,頁面測試,數(shù)據(jù)效驗這時候的我只想找根煙去廁所享受一下。路過研發(fā)室,隱約聽見里面討論和不時的笑聲。項目組的老大們和用戶在里面進行上線后的第一次溝通匯報會議。

           

          鏡頭五

                 這個鏡頭可能有些偏離物理視線。我們今天大概在2000離開醫(yī)院。到這個時候仍然看不到一點笑容,聽不到到一點笑聲,偷偷的幾乎都沒有。不得不承認這真是一只成熟的團隊。這里沒有浮躁,沒有僥幸,沒有自負因為每一個人都清楚的知道,真正的考驗應(yīng)該是下周一。這個時候才是對系統(tǒng)承受壓力的真正考驗。在這之前,DBA和負責應(yīng)用服務(wù)器的同事得充分估計,做好最后的優(yōu)化工作。

          鏡頭六

                    哎!寫不完,還有很多….比如:Leo和歡哥的故事,經(jīng)典得很。

          我不敢想象,一天之內(nèi)能有這么豐富的經(jīng)歷。時間對于每一個人真的是公平的。

           

          真心的希望我們能一路走好!

          posted @ 2005-10-29 23:16 Goingmm 閱讀(373) | 評論 (14)編輯 收藏

                
                 微軟最近每天都在走人,他們到底有多少人?走完了怎么辦?呵呵!這些不是我們能關(guān)心的問題。
                 到底是利益沖突,還是微軟的企業(yè)文化真的混不下去了?
                 其實每次看到這樣的消息都會有些感傷。熟不知,“天下無不散之筵席”,離開可能是逃避...可能是更好的開始...
          也可能是一種解脫... 但是我覺得求變的心是勇敢的。因為全世界的人都還在關(guān)注著他們
                 
                 新浪科技訊:美國當?shù)貢r間10月25日(北京時間10月26日)消息,據(jù)國外媒體報道,微軟發(fā)言人盧-蓋洛斯(Lou Gellos)對外表示,MSN門戶總經(jīng)理哈蒂-帕托維(Hadi Partovi)已向公司提出辭呈,并計劃離職后自己創(chuàng)業(yè)
                 蓋洛斯表示,在微軟找到繼任者之前,帕托維今后數(shù)周內(nèi)仍將替微軟工作。此前微軟出臺了部門重組計劃,其中包括將MSN業(yè)務(wù)并入Windows部門。在微軟與Netscape進行的瀏覽器大戰(zhàn)過程中,帕托維曾扮演了重要角色。此后他于1999年離開微軟并創(chuàng)辦Tellme通信公司。2002年帕托維重返微軟,并參與創(chuàng)辦MSN Music等新興業(yè)務(wù)。
                 最近數(shù)周內(nèi),已有數(shù)名高管離開了微軟。如wikis發(fā)明人Ward Cunningham已離開微軟,加盟一家非盈利性開放源代碼軟件公司。在微軟宣布重組計劃后,Windows產(chǎn)品負責人Jim Allchin也宣布了自己的退休計劃。此前有傳聞稱,微軟Office開發(fā)者之一Don Gagne計劃于今年12月離職。對此微軟和Don Gagne尚未發(fā)表評論。(明月) 
                                                                                                                            
          摘錄地址:http://tech.sina.com.cn/i/2005-10-26/0715748233.shtml
          posted @ 2005-10-26 23:05 Goingmm 閱讀(242) | 評論 (5)編輯 收藏

          今天已經(jīng)星期二了嗎?幾乎都忘記了...

          我們作為現(xiàn)場支持的項目就快要上線了。說不緊張是假的。至少,每一個人都不希望自己手上的模塊down在客戶的
          業(yè)務(wù)流程中。這么大的項目,控制起來的確需要一些功力。能親身經(jīng)歷也能從中收獲蠻多。想寫出來,但是這會兒整個人
          感覺很累。而且我覺得寫在這個時候有些不合適宜。希望這段時間過了,我還會有興趣來寫下曾經(jīng)的這份經(jīng)歷。

                 對了。剛才和一個新加坡同事聊天,發(fā)現(xiàn)一個奇怪的問題。新加坡應(yīng)該是用的北京時間。但是QQ的時候我們彼此的
          時間顯示都不正確。這是為什么呢?

           

          Xxx: 12:32:21

          電視天天都在采訪新的CEO。。。。

          todo.goingmm 21:31:09

          SCS 新的CEO?

          Xxx: 12:33:31

          嗯。。。陳東海

          todo.goingmm 21:31:42

          新加坡人 ?

          Xxx: 12:33:50

          問他咱個扭虧為盈。

          todo.goingmm 21:31:52

          能聽出他有什么策略嗎?

          Xxx: 12:33:59

          應(yīng)該是

          Xxx: 12:34:20

          他都說些套話。。。

          todo.goingmm 21:32:35

          他提到  xXXX 沒有呢

          Xxx:  12:34:58

          他問成都的人工那么便宜,為啥子這些項目拖這么久了都不叫成都做。。。

          Xxx:  12:35:10

          你看現(xiàn)在瘋狂的從成都調(diào)人過來。。。。

          todo.goingmm 22:00:24

          不過你機器的時間有問題

          Xxx: 13:02:47

          沒的問題哦

          todo.goingmm 22:00:54

           12:35:10

          todo.goingmm 22:00:56

          你看嘛

          Xxx: 13:03:37

          我這里是2203

          Xxx: 13:04:21

          我看你的才7點過呢

          todo.goingmm 22:02:23

          QQ的時間處理有問題

          posted @ 2005-10-25 22:29 Goingmm 閱讀(192) | 評論 (1)編輯 收藏

          都說 夜里的“聽濤”豐富多彩,天上人間,凡人俗事,顛覆睡眠….每天晚上等到凌晨2點,早上睡到天完全變藍。不知道是因為疲倦睡得太死,還是外面真的鴉雀無聲。感覺這邊比成都好睡。我才知道我被騙了

          今天已經(jīng)是第四天了。準確的說起床時間已經(jīng)是23號下午。坐在窗臺前一邊吃早餐一邊找尋無線網(wǎng)絡(luò)。對面那排空房(幾天了都沒見亮過燈),刺眼的陽光。樓下偶爾能見送水的小工潛意識中想沖出去,要逃離

          在這里的生活其實和坐牢一樣,星期一到星期六出去干活,周末留一天在家里睡覺。能在網(wǎng)絡(luò)上遇上兩個朋友,寒暄兩句。有人探視的感覺,美妙

          呵呵!~ 太灰暗了點。 推開玻璃窗,呼吸點新鮮空氣,這種感覺全無了。準備出去找個地方把中午飯解決了。

          posted @ 2005-10-23 13:27 Goingmm 閱讀(255) | 評論 (3)編輯 收藏


              學(xué)習(xí)Hibernate之前,需要理解 對象持續(xù)性和對象-關(guān)系映射 的核心問題

            【概念】
                  1)Hibernate是一個面向java環(huán)境的對象/關(guān)系數(shù)據(jù)庫映射(ORM)工具。
                  2)ORM 表示一種技術(shù),用來把對象模型表示的對象映射到基于SQL的關(guān)系模型中去。

            【目標】 
                 對于開發(fā)者通常的數(shù)據(jù)持久化的編程任務(wù)。解放其中的95%,成為Java管理持續(xù)性數(shù)據(jù)問題的一種完整的解決方案
           
            【體現(xiàn)】
                他協(xié)調(diào)應(yīng)用與關(guān)系數(shù)據(jù)庫的交互,讓開發(fā)者解放出來專注于手中的業(yè)務(wù)問題。他是一種非強迫性的解決方案

            【運行Hibernate需要的第三方庫】
                 dom4j (必需):   Hibernate在解析XML配置和XML映射元文件時需要使用dom4j。
                 CGLIB (必需):  Hibernate在運行時使用這個代碼生成庫強化類(與Java反射機制聯(lián)合使用)。 
                 Commons Collections and Commons Logging (必需): Hibernat使用Apache Jakarta Commons項目提供的多個工具類庫
                 ODMG4 (必需) : Hibernate提供了一個可選的ODMG兼容持久化管理界面。如果你需要映射集合,你就需要這個類庫,
                                               就算你不是為了使用ODMG API (注意:為什么在Hibernate 3.0 就沒有這個jar了?)
                 Log4j (可選):Log4j 是一款優(yōu)秀的Debug工具,具體使用方式網(wǎng)絡(luò)上有很多介紹

          posted @ 2005-10-22 22:11 Goingmm 閱讀(256) | 評論 (1)編輯 收藏

          僅列出標題
          共6頁: 上一頁 1 2 3 4 5 6 下一頁 
          主站蜘蛛池模板: 连云港市| 宜黄县| 岳普湖县| 呼图壁县| 黑龙江省| 攀枝花市| 峨眉山市| 布拖县| 石门县| 商都县| 盘锦市| 堆龙德庆县| 紫阳县| 贵溪市| 建昌县| 巴南区| 平顺县| 宁波市| 安岳县| 舒兰市| 长垣县| 天门市| 元谋县| 堆龙德庆县| 巴彦县| 龙泉市| 平湖市| 山东省| 莲花县| 沅陵县| 秭归县| 焦作市| 南昌市| 长宁区| 双辽市| 屏东县| 增城市| 北安市| 斗六市| 汉寿县| 旌德县|