整合 Java 与System i 资源五大进阶 技巧.pdfVIP

整合 Java 与System i 资源五大进阶 技巧.pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
整合 Java 与System i 资源五大进阶 技巧

整合 Java 與 System i 資源五大進階 技巧 許多System i 的開發人員認為整合Java 與System i 是件 繁雜的工作,覺得無論如何應該極力避免。其實不然, 這件任務並沒有那麼困難。 為了幫助你節省整合的力氣,本文提供了幾個技巧,可以套用於另外5 個最常見 的Java/System i 整合情境。(更多的技巧,請參閱「整合Java 與System i 資源的 五大基本技巧」) 為了實作此處所介紹的技巧,我們將使用IBM 的Toolbox for Java 和WebSphere Development Studio Client (WDSc) for iSeries (關於這些技術的詳情,請見「參考 資訊」)。 1. 執行System i 命令 你可以從Java 應用裡面,執行任何非互動操作的System i 命令。必須這麼做的 典型情境,就是為了在呼叫程式或者預存程序(stored procedure)之前,可以先執 行一些設定程序。可能包括系統命令(例如CRTLIB 、DLTLIB 等),以及自訂建 立的CL 命令。圖 1 示範的是系統命令呼叫的實作。 圖1 :CL program call public boolean callCommand(String userid, String password) throws Exception{ boolean success = false; // Create a Command Call object CommandCall command = new CommandCall(connMgr.getSystemiPooledConn(userid, password)); // Run a command, true is returned if command execution was successful success = command.run(CRTSAVF QGPL/TESTSAVF); // Process messages returned by the command AS400Message[] messageList = command.getMessageList(); return success; } 2. 處理資料佇列 System i 裡面的資料佇列(data queue)主要是用於非同步的程式間通訊 (asynchronous interprogram communication) 。需要進行非同步通訊的理由包括下列 幾點: • 後端程式會佔據大量的執行時間,但是呼叫端的程式並不需要等待其回應。 • 由於參數大小與個數的限制,其他呼叫函式可能無法勝任,因為每個資料佇 列的最大值是64,512 位元組。 • 使用非同步函式進行的通訊,提供了比直接呼叫(運用於從RPG/Cobol 呼叫 Java ,以及某些將Java 整合至RPG/Cobol 的情境)更好的效能。 資料佇列可以是循序的(sequential) ,也可以使用鍵值(keyed) 。利用循序式的資料 佇列,你可以設定訊息被讀取的順序是要後進先出(last-in first-out, LIFO)還是先 進先出(first-in first-out, FIFO) 。圖2 示範的是從資料佇列讀取與寫入資料的Java 函式。唯有明確讀出記錄(record) ,記錄才會從資料佇列裡面被移除。此外,Data Queue API 也提供了查詢(peak)函式,讓你可以觀看資料佇列而不會將記錄取出 來。 資料佇列的讀取功能通常是在沒有UI 的獨立Java 應用裡面實作。這類應用會使 用無窮迴圈持續檢查資料佇列裡面的訊息,如圖2 的waitForDQRecord()函式所 示。若要結束程式,必須由另一支程式將結束訊息放到資料佇列裡面。 圖2 :Data queue read and write public void writeDQEntry(String userid, String password, String customerNumber, String customerName) throws Exception{ // Get connection AS400 conn = connMgr.ge

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档