R3和JAVA交換資料之JCO

來源:互聯網
上載者:User

 

SAP Java Connector (JCo)

SAP的JAVA中介軟體,使用它可以使SAP的客戶和夥伴使用JAVA語言輕鬆地建立可以和SAP系統通訊的相容的組件和應用程式下面是JCo一些顯著的特徵:

1.      支援雙向調用(ABAP調用JAVA和JAVA調用ABAP)

2.      支援Unicode和非Unicode編碼的系統

3.      為程式員封裝了一些難以理解和處理的部分,比如字碼頁,資料類型轉換和串連池等等

4.      屏蔽了RFC和DDIC的一些細節,這樣可以讓程式員專註於商務邏輯的處理,而不必去理會過於底層的東西

5.      容易學習和使用的API和JAVA類的設計

6.      動態尋找和緩衝中繼資料

Java應用程式使用JCo的API進行串連,RFC中介軟體使用RFC庫通過JNI來串連SAP的R/3系統,如所示:

串連過程:

1.      建立一個串連池 addClientPool()

2.      建立一個BOR,它包含運行時環境所有function模組的中繼資料 createRepository()

3.      建立function template getFunctionTemplate()

4.      建立function getFunction()

5.      從串連池中取出一個串連的執行個體 getClient()

6.      設定傳遞給function模組的輸入參數 getImportParameterList()

7.      執行這個function excute()

8.      得到function執行後得到的輸出參數 getExportParameterList()

9.      銷毀串連池 removeClientPool()

效能最佳化注意事項

1.      因為串連池中的串連是可重用和可保持的,所以可以降低系統開銷,最大並發串連數量的限制避免過多地佔用SAP系統的資源,儘管如此,也不要使用過小的最大並發串連數從而造成應用系統的效能瓶頸,為了容納由應用系統造成的額外負載,SAP系統要經過一些配置。

2.      使用一個新的function對象時,為了提高效能而重用已有的function對象,不僅是多於的,而且還很危險,因為JCo的Repository為每個function模組緩衝了中繼資料,如果重用一個含有表參數的function,而這個function中的表中的行資料沒有被清除,那麼更多的行資料會添加到這個表上,從而會造成錯誤的結果,這是使用一個新的function對象時要注意的。

3.      只需使用一個Repository對象,因為Repository對象可以動態重新得到SAP function模組中的中繼資料並重新緩衝,所以使用一個就夠了,如果使用過多的Repository對象,會降低應用系統和SAP系統的效能

4.      應用系統只使用了function中的一小部分參數,為了提高效能,可以使用setActive()方法將那些應用程式不使用的參數設定為非使用中,包括Table Parameter、ParameterList以及JCO.Request對象

5.      添加多行資料到JCO的Table對象中時,使用appendRows(int num_rows)方法代替appendRow()方法,這樣可以提高效能

同步問題

為了提高效能,JCO只在訪問串連池和Repository對象時採取同步,其他的操作都是非同步,在多線程的環境下,不同線程之間共用對象(比如Table對象)是值得警惕的,並且一個連線物件是不能共用訪問的,這樣導致發生異常Exception

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.