日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

glassfish_具有GlassFish和一致性的高性能JPA –第3部分

發(fā)布時間:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 glassfish_具有GlassFish和一致性的高性能JPA –第3部分 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

glassfish

在我的四部分系列的第三部分中,我將說明將Coherence與EclipseLink和GlassFish結(jié)合使用的第二種策略。 這就是通過EclipseLink使用Coherence作為二級緩存(L2)的全部內(nèi)容。

一般的做法

這種方法將Coherence數(shù)據(jù)網(wǎng)格應(yīng)用于依賴于數(shù)據(jù)庫托管數(shù)據(jù)的JPA應(yīng)用程序,這些數(shù)據(jù)無法完全預(yù)加載到Coherence緩存中。 它可能無法預(yù)加載的一些原因包括:超出Coherence篩選器功能集的極其復(fù)雜的查詢,創(chuàng)建陳舊緩存的第三方數(shù)據(jù)庫更新,依賴于本機SQL查詢,存儲過程或觸發(fā)器等。 這不僅是本地L2高速緩存的選項,而且在不同節(jié)點上具有其他已配置的Coherence實例,您還將獲得群集范圍的JPA L2高速緩存。

細(xì)節(jié)

與許多緩存一樣,這是一個只讀的優(yōu)化。 主鍵查詢嘗試首先從Coherence獲取實體,如果不成功,將查詢數(shù)據(jù)庫,并用查詢結(jié)果更新Coherence。 針對數(shù)據(jù)庫執(zhí)行非主鍵查詢,并針對Coherence檢查結(jié)果,以避免緩存實體的對象構(gòu)建成本。 新查詢的實體將放入Coherence。 寫入操作將更新數(shù)據(jù)庫,如果成功提交,則將更新后的實體放入Coherence。 這種方法在Coherence文檔中稱為“網(wǎng)格緩存”。

付諸實踐

如果您還沒有這樣做,請從上一篇博客文章開始,并準(zhǔn)備您的環(huán)境 。 只有一件事,您需要進(jìn)行更改。 對于這種情況,請返回GlassFish 3.0.1 / EclipseLink 2.0.1,因為CacheKey.getKey()方法存在問題。 2.0.1返回一個Vector ,而2.2.0返回一個Object 。 看到新的Oracle GlassFish Server 3.1支持ActiveCache,我希望此問題將在3.7 Coherence版本中得到修復(fù)。 但是直到那之前,您必須堅持使用舊的GF或EclipseLink。

無論如何,讓我們使用您喜歡的IDE(例如GridCacheExample)創(chuàng)建一個新的Web項目。 添加所需的庫(coherence.jar,toplink-grid.jar和eclipselink.jar)。 現(xiàn)在,讓我們創(chuàng)建我們的實體類,并向其添加額外的@CacheInterceptor批注:

...import oracle.eclipselink.coherence.integrated.cache.CoherenceInterceptor; import org.eclipse.persistence.annotations.CacheInterceptor;...@Entity @CacheInterceptor(value = CoherenceInterceptor.class) public class Employee implements Serializable {...}

不要忘記添加@GeneratedValue(strategy = GenerationType.SEQUENCE),因為這與上一個示例相反。 完成此操作后,您必須將一致性配置添加到WEB-INF / classes文件夾。 您可以從教程開始( 示例2 )。 (請注意,其中有一個錯字…重復(fù)的</ backing-map-scheme>標(biāo)記)。 像配置普通的基于JPA的應(yīng)用程序一樣,配置persistence.xml。

<persistence-unit name="GridCacheExamplePU" transaction-type="JTA"><provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>jdbc/coherence</jta-data-source><properties> <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/> <property name="eclipselink.logging.level" value="FINE" /> </properties></persistence-unit>

基本上就是這樣。 現(xiàn)在,您可以測試新的L2緩存。 一個簡單的servlet應(yīng)該可以解決問題:

public class InsertServletPart3 extends HttpServlet {@PersistenceUnit(unitName = "GridCacheExamplePU") EntityManagerFactory emf;@Resource UserTransaction tx;...EntityManager em = emf.createEntityManager();tx.begin();// some loop magic Employee employee = new Employee();employee.setFirstName("Markus"); employee.setLastName("Eisele");em.persist(employee);// some loop magic end tx.commit();em.close();

如果您查看日志,則可以看到以下內(nèi)容:

FEIN: INSERT INTO EMPLOYEE (LASTNAME, FIRSTNAME) VALUES (?, ?)bind => [Eisele, Markus] ... FEIN: Coherence(Employee)::Put: 1 value: net.eisele.coherence.entities.Employee[ id=1 ] ...

基本上,這告訴您,實際的數(shù)據(jù)庫插入是由您慣常的EclipseLink執(zhí)行的。 之后,您會看到Employee對象以PK為鍵放置到名為Employee的Coherence Cache中。

如果現(xiàn)在對數(shù)據(jù)庫發(fā)出查詢

em.createQuery("select e from Employee e where e.lastName = :lastName").setParameter("lastName", "Eisele").getResultList();

您會看到以下內(nèi)容:

FEIN: SELECT ID, LASTNAME, FIRSTNAME FROM EMPLOYEE WHERE (LASTNAME = ?)bind => [Eisele] FEIN: Coherence(Employee)::Get: 1 result: net.eisele.coherence.entities.Employee[ id=1 ] FEIN: Coherence(Employee)::Put: 1 value: net.eisele.coherence.entities.Employee[ id=1 ] ...

這告訴您,查詢本身是針對數(shù)據(jù)庫發(fā)出的,但結(jié)果針對Coherence進(jìn)行了檢查,以避免已經(jīng)為緩存的實體構(gòu)造對象。 新查詢的實體將放入Coherence。 如果發(fā)出簡單的PK查詢:

em.find(Employee.class, 1);

輸出更改為:

FEIN: Coherence(Employee)::Get: 1 result: net.eisele.coherence.entities.Employee[ id=1 ]

而且您根本看不到任何數(shù)據(jù)庫查詢。 就是這樣:)您的緩存有效! 謝謝閱讀。 敬請期待下一部分!

進(jìn)一步閱讀

  • OTN方法:將一致性用作共享的L2緩存
  • Oracle TopLink與Coherence Gird 11g第1版(11.1.1)集成指南

參考: 具有GlassFish和一致性的高性能JPA –我們的JCG合作伙伴 Markus Eisele在“使用Java進(jìn)行企業(yè)軟件開發(fā)”博客上的 第3部分

相關(guān)文章 :
  • 具有GlassFish和一致性的高性能JPA –第1部分
  • 具有GlassFish和一致性的高性能JPA –第2部分
  • 在云中開發(fā)和測試
  • Java EE中的配置管理
  • 泄漏:Oracle WebLogic Server 12g
  • Java EE6裝飾器:在注入時裝飾類
  • Java教程和Android教程列表

翻譯自: https://www.javacodegeeks.com/2011/11/in-this-third-part-of-my-four-part.html

glassfish

總結(jié)

以上是生活随笔為你收集整理的glassfish_具有GlassFish和一致性的高性能JPA –第3部分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 另类av小说| 国产精品久久久久高潮 | 97视频免费在线观看 | 91 高清 在线 制服 偷拍 | 日韩女优一区 | 男人午夜视频 | 国产三级第一页 | 蜜桃tv在线观看 | 久久丫精品忘忧草西安产品 | 日本三级精品 | 嫩草视频在线播放 | 综合久久久久综合 | 黄网在线看 | 光明影院手机版在线观看免费 | 夜色导航 | av专区在线 | 欧美a级片视频 | jlzzjizz在线播放观看 | 成人黄色激情视频 | www.国产 | 久久久久人妻一区精品色 | 亚洲视频图片 | 91麻豆蜜桃一区二区三区 | 国产精品亚洲AV色欲三区不卡 | 污片在线免费观看 | 无人码人妻一区二区三区免费 | 国产不卡av在线 | 国产cao| 精品国精品国产 | 免费观看毛片 | 日韩怡春院 | 91一区二区在线观看 | 国产午夜手机精彩视频 | 最新日韩中文字幕 | 玉足脚交榨精h文 | 欧美放荡性医生videos | 青青草在线播放 | 色福利视频 | 美利坚合众国av | 成年人性生活免费视频 | 麻豆av免费在线观看 | 欧美精品久久久久久久久 | 污漫网站| 久久久久久在线观看 | 精品欧美一区二区三区 | 伊人网影院 | 牛牛澡牛牛爽一区二区 | 怡红院成人在线 | 性人久久久久 | 亚一区二区 | 成人在线免费观看网址 | 在线观看wwww | 国产一级做a爱片久久毛片a | 有码中文 | 少妇粉嫩小泬喷水视频www | 欧美精品色哟哟 | 国产中文字幕久久 | 色94色欧美 | 亚洲欧美综合自拍 | 中文字幕美女 | 射久久 | 亚洲永久av | 男同互操gay射视频在线看 | 成人免费在线网站 | 朝鲜一级黄色片 | 成人深夜福利在线观看 | 69人妻一区二区三区 | 欧美日韩国产综合网 | xxxx少妇| 亚洲一区二区动漫 | 色婷婷狠狠爱 | 女人16一毛片 | 国产夫妻久久 | 91涩涩涩 | 九九影视理伦片 | 精品一区久久久 | 夜夜夜夜爽 | 国产综合视频 | 精品在线视频免费观看 | 亚洲综合精品视频 | 福利片在线观看 | 在线看中文字幕 | 快色在线观看 | 亚洲成人不卡 | 国产精品久久久久久久天堂 | 涩涩的视频在线观看 | 国产精品爽爽爽 | 成人网站免费观看入口 | 青草超碰| 亚洲一区二区激情 | 国产婷婷精品 | 美女被日网站 | 国产成人传媒 | 蜜桃av一区二区 | 污污内射久久一区二区欧美日韩 | 蜜臀av性久久久久av蜜臀妖精 | 欧美另类高清videos的特点 | 欧美一区二区三区成人 | 国产av一区二区三区 |