2011-04-08

共用EJB - Remote JNDI 篇

先前寫了 Remote篇, 就開始把 EJB 都作成 EJB3 Module 方式去 deploy 在 Jboss Server上面. 經過一段時間的驗正, 都還蠻順利的. 不過, 還是出問題了.
先前把一堆共用的 java class 放在同一個 jar 中, 讓其他 EJB 共用這一個 jar.  就出現一個怪問題了,  EJB_A 包涵 jar , EJB_B 也包涵 jar. 先將 EJB_A deploy上去成功, 在 將 EJB_B deploy 時就會出現 duplicat class 的Exception. 反過來, EJB_B 先放, 在放 EJB_A 就不會出現問題. 但是系統是會越來越大的, 不會只有兩個 EJB . 所以, 問題是要解決的.
所以想到的方式是, 是不是 可以透過 ear 包裝方式, 解決這一個問題.  但是, 之前用ear deploy 在 JNDI Tree 中, 都會出現 ear project name . 這樣還是沒辦法解決最原始的問題 , 就是要透過 JNDI Name  找出相關的 service 來用壓.
就在看著 source code時,  噹噹靈感來了. 在原來的code 中.
@Stateless(name = "edi/service/Workflow")
就想說試試看 多一定義 會不會有不一樣. 把 code 改成
@Stateless(name = "edi/service/Workflow", mappedName="/edi/service/Workflow") 

實驗出爐....
這樣改比原來的還要好, 在 JNDI Tree 中 直接出現 edi/service/Workflow . 不用像之前的版本一樣在多加一個 remote. 所以這樣的方法會比較好, 可以避免多重問題.

2011-03-25

[Zafira] 第4次油耗

20110325
總里程數 : 2399km
單次里程 : 794.7km
油耗 : 51.03公升 (中油自助加油 95)
平均油耗 : 15.57 km/l

行車電腦 :
油耗 : 52.4公升
平均油耗 : 15.4km/l
平均時速 : 60km/h

2011-02-27

[Zafira] 第3次油耗

20110227
總里程數 : 1604km
單次里程 : 522.9km
油耗 : 36.95公升 (中油自助加油 95)
平均油耗 : 14.151 km/l

行車電腦 :
油耗 : 34.5公升
平均油耗 : 14.9km/l
平均時速 : 56km

2011-02-12

[Zafira] 第2次油耗

20110212
總里程數 : 1082km
單次里程 : 415km
油耗 : 30.35公升 (中油自助加油 95)
平均油耗 : 13.673km/l

在台南加滿油後,在安平大塞車後, 跑去鹽田博物館.所以油耗比較差一點.
回到新竹, 回原廠作1000km 保養. 結果行車電腦被歸零.

2011-02-10

ORA-24777 發生在 Jee Server

最近用 jpa 搭配 Oracle Database Link Query .用 JPA 搭配 RESOURCE_LOCAL可以執行.
但是, 當程式換成 Session Bean 時會出現. 

ORA-24777:  use of non-migratable database link not allowed.



第一次遇到, google一下....找到解答的網頁 . 

ORA-24777 When Using XA Driver

解答篇中 提出三種解決問題的方法
1. 設定 Oracle Database 支援 multi-threaded server. (這個工程浩大, 網頁也是不建議作)
2. 改變 create database link 語法. (文章中他們是這樣解的, 不過我沒辦法因為 DB 不是我能動的)
3. 改用 non-XA Driver. (這各在我的案例中是唯一的解法, 因為修改自己的東西最簡單)


結論
經過測試, 第三種方式可以解決我的問題, 因為我要的只是Query 並不牽涉到 Transaction. 所以, 只好新增 DataSource for non-XA .