1
下面是我的設置細節:Infinispan的保存到緩存在WebLogic Server
應用服務器:Weblogic的10.3 Infinispan的版本:5.3.0.Final 模式:圖書館模式 操作系統:Linux 服務器設置:高可用性
自從我們從JBoss Cache遷移後,我使用了TreeCache API。
我看到的是,當我運行代碼對普通的Linux或Windows機器。放置並獲取API工作正常。
但是,當我運行代碼反對Weblogic服務器,把永不成功說事務失敗。 (XA交易)。請注意,當我不使用交易時會發生這種情況。
我做了這個工作,通過如下XML配置文件中聲明的交易:
<transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.GenericTransactionManagerLookup"
lockingMode="OPTIMISTIC"
transactionMode="TRANSACTIONAL"
/>
它仍然沒有奏效。
於是我只好打電話給weblogic的UserTransaction的,按照 「
@Resource
private static UserTransaction utx ;
utx = new InitialContext().lookup("java:comp/UserTransaction");
然後用
utx.begin();
get node by fqn;
node.put(key,value);
utx.commit();
只有在報價上面做之後,我看到在緩存中的條目並可以成功檢索它
我想明白爲什麼是這樣嗎?我可以不避免使用交易嗎?
下面是XML配置文件:
<global>
<globalJmxStatistics enabled = "true" />
<transport clusterName = "CACHE_CLUSTER">
<properties>
<property name="configurationFile"
value="tcp.xml" />
</properties>
</transport>
</global>
<default>
<clustering mode="replication">
<async asyncMarshalling="true" useReplQueue="true" replQueueInterval="10" replQueueMaxElements="100" />
<stateTransfer timeout="2000000"/>
</clustering>
<transaction
transactionManagerLookupClass="org.infinispan.transaction.lookup.GenericTransactionManagerLookup"
lockingMode="OPTIMISTIC"
transactionMode="TRANSACTIONAL"
/>
<invocationBatching enabled = "true"/>
<jmxStatistics enabled="true"/>
</default>
感謝您的答覆Galder。我選擇了treecache是因爲我們從JBoss Cache遷移,預期的變化很小。 – Arjun
但我會認真考慮切換到mapAPI的這個選項。我早些時候嘗試過,它的功能就像一個魅力。 – Arjun
即使僅使用批處理也不能解決問題。爲此,我發佈了http://stackoverflow.com/questions/20240284/infinispan-with-treecacheapi – Arjun