ABAP function group和Tomcat library重複載入問題
ABAP
ABAP help文件裡對**LOAD-OF-PROGRAM"的關鍵字是這樣描述的:
This event keyword defines the program constructor of an executable program, a module pool, a function group, or a subroutine pool. The program constructor is an event block whose event is raised by the ABAP-runtime environment when one of the executable programs mentioned above is loaded into the internal session.
以Function group為例,每當一個function group裡的任意一個function module第一次被呼叫時,對應的ABAP program被載入到internal session裡,同時ABAP執行時丟擲LOAD-OF-PROGRAM, 執行應用程式設計師編寫的事件處理邏輯。
現在我有一個名為ZTOMCAT的function group。其LOAD-OF-PROGRAM就負責彈出偵錯程式。
我有兩個report。Report 2的原始碼:
REPORT ZJERRY_RE2.
call FUNCTION 'ZTEST_FM_1'.
Report 1:
CALL FUNCTION 'ZTEST_FM_1'.
SUBMIT zjerry_re2 AND RETURN.
那麼我執行report1,斷點會觸發一次還是兩次?
答案是兩次。
LOAD-OF-PROGRAM在這種場景下的行為,ABAP help已經說的很清楚了:
When a program is called using SUBMIT or using a transaction code, a new internal session is opened in every call and the event block is executed once in every call.
每次program透過SUBMIT或者事務碼的方式呼叫時,會起一個新的internal session,在此新的session裡LOAD-OF-PROGRAM會觸發一次。
下圖也直觀表明了每次呼叫SUBMIT( calling programs)時會新起一個Internal Session。
Tomcat 庫檔案的重複載入問題
我的pom.xml裡定義了一個gson的依賴關係,ABAPer可以把其類比成在我的Java程式碼裡呼叫Google提供的gson API。
打成war包之後,該庫檔案位於WEB-INF/lib資料夾下。
那麼如果我有多個Web應用都用到了gson, 則每個應用的WEB-INF\lib資料夾下面都有gson的jar檔案。
問題:在執行時,Tomcat只會將一份gson.jar的內容載入到記憶體麼?
答案是不會。根據Tomcat的官方文件,Tomcat會為每個Web應用建立一個專屬的ClassLoader例項,每個應用的WEB-INF\lib下的資源,對於其他應用來說不可見,彼此隔離。
當然如果想只用一份庫檔案,可以把它放到目錄 [tomcat-installation-directory]/common/lib下面。更多細節參考stackoverflow上的討論.
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2156272/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- $(function(){}裡面方法不載入問題Function
- 重複登入問題最終解決方法
- scroll pagination.js資料重複載入、分頁問題JS
- sql重複插入問題SQL
- android包重複問題Android
- 常用的ABAP functionFunction
- 探索RocketMQ的重複消費和亂序問題MQ
- mysql order by 和 group by 順序問題MySql
- 有重複元素的排列問題
- group by 排序問題排序
- webpack dll打包重複問題優化Web優化
- 資料檢視的重複問題
- 【java】ObjectOutputStream & ObjectInputStream 多次寫入發生重複寫入相同資料的問題JavaObject
- ABAP 常用FUNCTION集錦2Function
- ABAP 常用FUNCTION集錦1Function
- ORA-00937: not a single-group group functionFunction
- 併發請求的重複插入問題
- 解決表單重複提交的問題
- 關於SQL的重複記錄問題SQL
- strust2 重複提交的問題Rust
- [ 天羽]pv問題定位,pvid重複
- Androidstudio中jar包重複或jar包裡的類重複問題AndroidJAR
- SAP ABAP 常用FUNCTION集錦(轉)Function
- 關於GIT push的時候要重複輸入密碼的問題Git密碼
- SQL -去重Group by 和Distinct的效率SQL
- 關於 apache + tomcat 的負載均衡問題ApacheTomcat負載
- apache2.2+tomcat6負載均衡問題ApacheTomcat負載
- 去除重複字母(不同字元的最小序列)問題字元
- 快速解決mongodb出現id重複問題MongoDB
- Android studio glide包重複問題AndroidIDE
- Vue echarts 繫結事件重複執行問題VueEcharts事件
- MySQL order by limit 分頁資料重複問題MySqlMIT
- 標準SQL寫法的重複列問題SQL
- Notification中Intent攜帶資料重複問題Intent
- ABAP常見面試問題面試
- [BUG反饋]public function group() 方法缺少網頁標題賦值Function網頁賦值
- 載入圖片的問題
- 載入xml出現問題XML