天天看點

一個由于資料庫并發引起的錯誤,開發環境裡一切都正常、運作環境裡不穩定、發生莫名奇妙的錯誤

前些日子在開發項目過程中發生了一個奇怪的問題:

   程式運作在我們自己的開發環境裡都正常,不會出現錯誤,而且不隻是我一個人的電腦,

是接近10個項目組開發人員的電腦上都是正常的,而且運作多久都不會出錯,大家有接近

10個人都在并發通路資料庫,都沒出現異常。

   當背景管理程式同時運作,并發管理,也不會出現錯誤,比較奇怪的,釋出到 WEB服務

器上,運作接近1天後程式就會發生錯誤,而且剛部署的時候,程式運作都正常,錯誤頁面

如下:

有些蹊跷的是,我幾乎不用DataReader,怎麼會報這個錯誤呢?想了一兩天都沒

想明白是怎麼回事。

過了一周我才想起來,很早以前,我改進設計模式、按我們以前的同僚的要求,把

資料庫聯接進行了優化,做了單執行個體,唉,原來是按同僚的要求作了單執行個體後,出

現了并發問題了,因為釋出到伺服器上,是幾十個人同時使用,在自己的開發環境

裡,單獨用背景管理端是一個人用,單執行個體都不會出現錯誤。

惹事生非的單執行個體代碼如下:

一個由于資料庫并發引起的錯誤,開發環境裡一切都正常、運作環境裡不穩定、發生莫名奇妙的錯誤

Code

看看程式,想想并發、再看看錯誤資訊,心裡全部明白了,都是單執行個體惹得麻煩。

開發環境裡有些錯誤是無法發現的,換個環境,換個角度測試,問題就暴露出來了。

程式不在于多,也不在于高超,隻要運作穩定,維護友善,經得起考驗才是好程式,

土一點兒笨一點兒并不是系統架構的關鍵問題,我們的客戶大多都是非IT專業的,

他們圖的是運作穩定高效的系統,他們并不關心技術的細節,懂技術的也不大願意

花錢購買服務,自己折騰,自己開發了。

C:産品導讀:

<a href="http://www.cnblogs.com/jirigala/archive/2009/09/15/1566839.html">白話講山寨SOA,少一些迷惑、多一些了解,你的程式架構SOA了嗎?</a>

<a href="http://www.cnblogs.com/jirigala/archive/2009/09/04/1560210.html">瘋狂.NET架構通用權限背景管理工具示範版2.0下載下傳</a>

<a href="http://www.cnblogs.com/jirigala/archive/2009/09/09/1563316.html">瘋狂.NET 通用權限設計 C\S背景管理,B\S前台調用源碼樣例程式源碼下載下傳之 --- 資料集權限</a>

将權限管理、工作流管理做到我能力的極緻,一個人隻能做好那麼很少的幾件事情。

本文轉自 jirigala 51CTO部落格,原文連結:http://blog.51cto.com/2347979/448300,如需轉載請自行聯系原作者