使用 Java EE 連接器架構連接器存取資料

若要從 WebSphere® Application Server中符合 Java™ EE 連接器架構 (JCA) 標準的應用程式存取資料,您可以配置並使用資源配接器和 Connection Factory。

關於這項作業

應用程式元件利用 Connection Factory 來存取連線實例,之後,這個元件便利用這個連線實例來連接基礎的企業資訊系統 (EIS)。 連線範例包括資料庫連線、「Java 訊息服務」連線及 SAP R/3 連線。

如 Java EE 連接器架構 (JCA) 規格所示,每一個企業資訊系統 (EIS) 都需要資源配接器和 Connection Factory。 然後會透過下列程式設計模型來存取這個 Connection Factory。 如果您使用 Rational ® Application Development 工具,則會為您產生下列大部分部署描述子及程式碼。 此範例顯示存取 EIS 資源的手動方法。

程序

  1. 在應用程式元件部署描述子中宣告 Connection Factory 資源參照,如下列範例中所述:
    <resource-ref>
       <description>description</description>
       <res-ref-name>eis/myConnection</res-ref-name>
       <res-type>javax.resource.cci.ConnectionFactory</res-type>
       <res-auth>Application</res-auth>
    </resource-ref>
    
  2. 在部署程序期間,請透過主控台來配置每一個資源配接器和相關聯的 Connection Factory。
    如需相關資訊,請參閱安裝資源配接器和配置 Connection Factory 的相關主題。
  3. 在執行時期,使用應用程式元件中的「Java 命名和目錄介面 (JNDI)」查閱來尋找 EIS 資源配接器的對應 Connection Factory。
  4. 從 Connection Factory 取得 EIS 的連線。
  5. 從連線物件建立互動。
  6. 建立 InteractionSpec 物件。 設定要在 InteractionSpec 物件中執行的函數。
  7. 為函數使用的輸入及輸出資料建立記錄實例。
  8. 透過「互動」物件執行函數。
  9. 處理來自函數的記錄資料。
  10. 關閉連線。

範例

下列程式碼區段顯示應用程式元件如何建立互動並在 EIS 上實作它:

javax.resource.cci.ConnectionFactory connectionFactory = null;
javax.resource.cci.Connection connection = null;
javax.resource.cci.Interaction interaction = null;
javax.resource.cci.InteractionSpec interactionSpec = null;
javax.resource.cci.Record inRec = null;
javax.resource.cci.Record outRec = null;

try {
// Locate the application component and perform a JNDI lookup
   javax.naming.InitialContext ctx = new javax.naming.InitialContext();
   connectionFactory = (javax.resource.cci.ConnectionFactory)
ctx.lookup("java:comp/env/eis/myConnection");

// create a connection
   connection = connectionFactory.getConnection();

// Create Interaction and an InteractionSpec
   interaction = connection.createInteraction();
   interactionSpec = new InteractionSpec();
   interactionSpec.setFunctionName("GET");

// Create input record
   inRec = new javax.resource.cci.Record();

// Execute an interaction
   interaction.execute(interactionSpec, inRec, outRec);

// Process the output...

} catch (Exception e) {
   // Exception Handling
}
finally {
    if (interaction != null) {
         try {
              interaction.close();
         }
         catch (Exception e) {/* ignore the exception*/}
   }
   if (connection != null) {
        try {
             connection.close();
        }
        catch (Exception e) {/* ignore the exception */}
   }
}