亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

J2EE當(dāng)前持久層設(shè)計(jì)常見問題

時(shí)間:2024-07-31 12:17:13 J2EE培訓(xùn) 我要投稿
  • 相關(guān)推薦

J2EE當(dāng)前持久層設(shè)計(jì)常見問題

  當(dāng)前J2EE項(xiàng)目中,面臨的一個(gè)共同問題就是如果控制事務(wù)的并發(fā)訪問,雖然有些持久層框架已經(jīng)為我們做了很多工作,但是理解原理,對(duì)于我們開發(fā)來說還是很有用處的。下面小編為大家整理了J2EE當(dāng)前持久層設(shè)計(jì)的常見問題,一起來看看吧:

  事務(wù)并發(fā)訪問控制策略

  當(dāng)前J2EE項(xiàng)目中,面臨的一個(gè)共同問題就是如果控制事務(wù)的并發(fā)訪問,雖然有些持久層框架已經(jīng)為我們做了很多工作,但是理解原理,對(duì)于我們開發(fā)來說還是很有用處的。

  事務(wù)并發(fā)訪問主要可以分為兩類,分別是同一個(gè)系統(tǒng)事務(wù)和跨事務(wù)訪問的并發(fā)訪問控制,其中同一個(gè)系統(tǒng)事務(wù)可以采取樂觀鎖以及悲觀鎖策略,而跨多個(gè)系統(tǒng)事務(wù)時(shí)則需要樂觀離線鎖和悲觀離線鎖。在討論這四種并發(fā)訪問控制策略之前,先需要明確一下數(shù)據(jù)庫事務(wù)隔離級(jí)別的問題,ANSI標(biāo)準(zhǔn)規(guī)定了四個(gè)數(shù)據(jù)庫事務(wù)隔離級(jí)別,它們分別是:

  讀取未提交(Read Uncommitted)

  這是最低的事務(wù)隔離級(jí)別,讀事務(wù)不會(huì)阻塞讀事務(wù)和寫事務(wù),寫事務(wù)也不會(huì)阻塞讀事務(wù),但是會(huì)阻塞寫事務(wù)。這樣造成的一個(gè)結(jié)果就是當(dāng)一個(gè)寫事務(wù)沒有提交的時(shí)候,讀事務(wù)照樣可以讀取,那么造成了臟讀的現(xiàn)象。

  讀取已提交(Read Committed)

  采用此種隔離界別的時(shí)候,寫事務(wù)就會(huì)阻塞讀事務(wù)和寫事務(wù),但是讀事務(wù)不會(huì)阻塞讀事務(wù)和寫事務(wù),這樣因?yàn)閷懯聞?wù)會(huì)阻塞讀取事務(wù),那么從而讀取事務(wù)就不能讀到臟數(shù)據(jù),但是因?yàn)樽x事務(wù)不會(huì)阻塞其它的事務(wù),這樣還是會(huì)造成不可重復(fù)讀的問題。

  可重復(fù)讀(Repeatable Read)

  采用此種隔離級(jí)別,讀事務(wù)會(huì)阻塞寫事務(wù),但是讀事務(wù)不會(huì)阻塞讀事務(wù),但是寫事務(wù)會(huì)阻塞寫事務(wù)和讀事務(wù)。因?yàn)樽x事務(wù)阻塞了寫事務(wù),這樣以來就不會(huì)造成不可重復(fù)讀的問題,但是這樣還是不能避免幻影讀問題。

  序列化(serializable)

  此種隔離級(jí)別是最嚴(yán)格的隔離級(jí)別,如果設(shè)置成這個(gè)級(jí)別,那么就不會(huì)出現(xiàn)以上所有的問題(臟讀,不可重復(fù)讀,幻影讀)。但是這樣以來會(huì)極大的影響到我們系統(tǒng)的性能,因此我們應(yīng)該避免設(shè)置成為這種隔離級(jí)別,相反的,我們應(yīng)該采用較低的隔離界別,然后再采用并發(fā)控制策略來進(jìn)行事務(wù)的并發(fā)訪問控制)。

  延伸閱讀:Java EE容器組成:

  Web容器:包括Jsp與Servlet組件,可使用EJB中的組件完成復(fù)雜的商務(wù)邏輯;

  EJB容器:包含組件EJB, EJB規(guī)范定義了一個(gè)開發(fā)和部署分布式商業(yè)邏輯的框架;

  Applet容器 包含組件Applet,即可使用J2SE開發(fā)Applet;

  Application Client容器:包含組件Application Client。

  現(xiàn)在流行的Java EE容器有很多:Tomcat、JBoss、Resin、Glassfish等等。下面對(duì)這四種Java EE容器進(jìn)行了一番簡(jiǎn)單的比對(duì)。

  1. Tomcat

  Tomcat是Apache鼎力支持的Java Web應(yīng)用服務(wù)器,由于它優(yōu)秀的穩(wěn)定性以及豐富的文檔資料,廣泛的使用人群,從而在開源領(lǐng)域受到最廣泛的青睞。

  2. Jboss

  Jboss作為Java EE應(yīng)用服務(wù)器,它不但是Servlet容器,而且是EJB容器,從而受到企業(yè)級(jí)開發(fā)人員的歡迎,從而彌補(bǔ)了Tomcat只是一個(gè)Servlet容器的缺憾。

  3. Resin

  Resin也僅僅是一個(gè)Servlet容器,然而由于它優(yōu)秀的運(yùn)行速度,使得它在輕量級(jí)Java Web領(lǐng)域備受喜愛,特別是在互聯(lián)網(wǎng)Web服務(wù)領(lǐng)域,眾多知名公司都采用其作為他們的Java Web應(yīng)用服務(wù)器,譬如163、ku6等。

  在商用應(yīng)用服務(wù)器里主要有:Weblogic、Websphere,其中Weblogic我也使用過很長(zhǎng)一段時(shí)間,當(dāng)時(shí)也只用其當(dāng)Servlet容器,然而就在同等條件下,在性能及易用性等方面,要比Tomcat優(yōu)秀很多。

  4.glassfish

  glassfish是Sun公司推出的Java EE服務(wù)器(Java EE容器),一個(gè)比較活躍的開源社區(qū),不斷的通過社區(qū)的反饋來提高其的可用性,經(jīng)過glassfish v1 glassfish v2 到今天的glassfish v3 ,它已經(jīng)走向成熟。Glassfish是一個(gè)免費(fèi)、開放源代碼的應(yīng)用服務(wù),它實(shí)現(xiàn)了Java EE 5,Java EE 5 平臺(tái)包括了以下最新技術(shù):EJB 3.0、JSF 1.2、Servlet 2.5、

  JSP 2.1、JAX-WS 2.0、JAXB 2.0、 Java Persistence 1.0、Common Annonations 1.0、StAX 1.0等。

  支持集群,通過內(nèi)存中會(huì)話狀態(tài)復(fù)制,增強(qiáng)了部署體系結(jié)構(gòu)的可用性與可伸縮性,它對(duì)集群有著很好的支持,可以簡(jiǎn)單到通過添加機(jī)器,就可輕松的提高網(wǎng)站的帶負(fù)載能力,在解析能力方面,它對(duì)html的吞吐能力與apache服務(wù)器不分上下,就是tomcat所不能比的,支持目錄部署,熱部署,解決了tomcat對(duì)熱部署能力的缺陷。

  在版本方面做的更加人性化,有開發(fā)時(shí)用的簡(jiǎn)化版,專門用于部署web項(xiàng)目的版本,還要完全符合j2ee標(biāo)準(zhǔn)的版本。

【J2EE當(dāng)前持久層設(shè)計(jì)常見問題】相關(guān)文章:

J2EE表現(xiàn)層設(shè)計(jì)思考核心08-31

J2EE架構(gòu)與設(shè)計(jì)培訓(xùn)08-30

淺析躍層設(shè)計(jì)要點(diǎn)09-12

J2EE架構(gòu)環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)09-04

錯(cuò)層餐廳如何裝修設(shè)計(jì)07-24

J2EE設(shè)計(jì)模式圖書目錄06-17

當(dāng)前美工設(shè)計(jì)的就業(yè)情況如何09-14

當(dāng)前如何培養(yǎng)動(dòng)畫設(shè)計(jì)人才08-06

美甲持久的方法06-06

什么是J2EE07-05