事情是這樣的,今天上線了專案的乙個功能,主要是用於將伺服器機器和集群和關聯在一起,然後資料不僅有剛輸入的,還有舊平台中老系統的資料,舊平台的資料 有乙個欄位是存在但是一直沒有填入的,大概是型號的意思,我在嘗試新資料的時候都沒有問題,但是當用到這個模組,對老平台的資料進行修改的時候,就出來了大岔子。這個問題雖然造成的後果不是很嚴重(執行更新的系統組人員發現更新了幾條資料之後 不僅程式出錯,而且原本資料丟失),但是我覺得反映的問題挺大的。
**:
string idargs = ids.split( ",");
string strsnargs = strsns.split( "," ,40);
string strpnargs = strpns.split( "," ,40);
string strmtargs = strmts.split( "," ,40);
string stripargs = strips.split( "," ,40);
string strnameargs = strnames.split( ",",40 );
string updatetime = datetools.getfullnowdatetime();
string updateuserid = controllerutil.currentuser().getstraccount();
int idlength = idargs.length;
try {
//1、切斷這個集群id對應的主機資訊上的相關聯絡,一共有兩個約束,乙個約束是將集群的uuid輸入到了主機表的clusterid的字段當中,另乙個約束是yf_cluster_host這張表
string clusterid = yfclusterinfo.getid();
string clusterinfoid = yfclusterinfo.getstrclusterid();
int clearres = yfosinfoservice.clearclusterid( clusterid );
yfosinfoservice.clearclusterhost(clusterinfoid);
//2、重新對該集群id繫結主機資訊
for (int i = 0 ;i 命名承接了舊平台的命名,類似於專案組的規範,俺知道不對勁。
在split那塊,原本我寫的是單純的split(),沒有加進limit引數,要說為啥,因為之前沒注意這個東西。然後之所以新資料沒問題,因為strpn這個字段如果是新輸入的資料是一般都有的,但是問題就出在strpn在舊平台的資料裡啥也不是,於是我拼接之後的strpns就拼了個寂寞。然後split就開始發揮作用了
split()在面對最後乙個或幾個物件是 "" 的時候會預設不識別,但只要最後乙個不是 "",就一定識別
於是我這個字段識別出來的字串陣列就悲催的變為長度0的陣列了,後面呼叫strpnargs[i] 就百分百會報越界異常。
解決方法就是給split加上乙個limit,這個長度是你規定的乙個最大值或者是-1,-1就是會幫你自動切分的。
那麼為什麼我的資料會被清空,因為我之前還寫了個憨憨函式把它東西先清空了,然後重新放進去的。
可是我記得我之前 如果沒有執行成功的話,是會回滾的啊,怎麼這個東西就執行進去了。
於是我去看了一下專案的事務設定。
emmm,好像沒問題。
然後經別人點撥了一下,我第一步,第二步屬於的是同個業務邏輯,卻放在了兩個方法裡頭去寫,那這時候第二個方法出問題了,第乙個方法它肯定不回滾啊。我之所以變成這樣寫,是因為 建立聯絡的這個方法是我早就寫好的,清除的這個操作是針對update的業務邏輯後面加的,我同個業務邏輯分兩塊寫,就導致了出錯了之後,乙個方法被執行進去,另乙個方法回滾。
最後的解決方法就是該做的業務邏輯一整套都寫乙個方法裡頭,防止它出毛病,把service和dao裡頭順序改一下加進去就行。
害~
我是怎麼把乙個專案帶崩的
我是一名專案經理,在過去的四個月裡,我把乙個專案帶崩了 上線後頻出問題,使用者無法使用 在最近的幾天,我每天都在反思自己,我都在問自己以下幾個問題 1.我做錯了什麼?2.我在其中占有多重的因素?以下內容,我將回答以上問題,並在最後說一下我的補救措施。首先給大家說明一下專案背景,以便各位對此專案有更清...
我是怎麼把乙個專案帶崩的
我是一名專案經理,在過去的四個月裡,我把乙個專案帶崩了 上線後頻出問題,使用者無法使用 在最近的幾天,我每天都在反思自己,我都在問自己以下幾個問題 1.我做錯了什麼?2.我在其中占有多重的因素?以下內容,我將回答以上問題,並在最後說一下我的補救措施。首先給大家說明一下專案背景,以便各位對此專案有更清...
我是怎麼理解程式設計的?
我相信其實很多人都有乙個願望就是變成設計師,那種用工具材料創造出自己喜歡的成果。那種滿滿的成就感。但我第一次接觸html的時候我就乙個感悟 程式設計其實就是一種藝術。2015年06月04日更新 昨天去培訓機構了解了一下,三個半月的時間,其實我看了一下課程很多東西都可以自學,可能出在入門會用階段,達不...