Hitachi

TP1/COBOL adapter for Cosminexus ユーザーズガイド


付録H.4 Cosminexus TP1 Connector版(Managed環境)

〈この項の構成〉

(1) COBOL引数の登録集原文とCOBOLプログラム例

付録H.1のTP1/Client/PおよびTP1/Client/W版と同じです。「付録H.1 TP1/Client/PおよびTP1/Client/W版」をご覧ください。

(2) Java UAP(Servlet)例

(a) Cosminexus TP1 Connector使用時の概要

              :
import  jp.co.hitachi_sk.j2cb.*;   // パッケージのインポート
import  JP.co.Hitachi.soft.OpenTP1.*;   //
import  javax.resource.cci.*;   //
import  jp.co.hitachi_system.tp1connector.*;   //
              :
生成クラス名  cls = new 生成クラス名(); // 
              :
javax.naming.Context ctx = new javax.naming.InitialContext();
             //ManagedConnectionFactoryインスタンス生成
javax.resource.cciConnectionFactory cvf =
        (javax.resource.cci.ConnectionFactory)ctx.lookup(RA_NAME);
javax.resource.cci.Connection cx = cxf.getConnection();
             //ConnectionFactoryインスタンスの生成
javax.resource.cci.Interaction ix = cx.createInteraction();
             //コネクション取得
InteractionSpecImpl ixSpec = new InteractionSpecImpl();
             //InteractionSpecImplインスタンスの生成
              :
cls.setData1I("");                      // データの設定
              :
cls.call(cxf, ix, ixSpec);
                                        // RPC実行
              :
String str = cls.getData1O();           // データの取得
              :
cx.close();                            // サーバとの切断
              :

(b) servlet作成例

package testc;
 
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.beans.Beans;
import jp.co.hitachi_sk.j2cb.*;
import JP.co.Hitachi.soft.OpenTP1.*;
import javax.resource.cci.*;
import jp.co.hitachi_system.tp1connector.*;
//数字項目(外部10進項目,内部10進項目および小数けたを含む2進項目)を
//使用する場合は,以下のようにjava.math.BigDecimalをimportしてください。
//import java.math.BigDecimal;
 
public class SearchTP1Servlet extends HttpServlet {
  private static final long serialVersionUID = 0L;
  ServletContext c;
  private static final String RA_NAME = "java:comp/env/OpenTP1";
 
  //グローバル変数の初期化
  public void init(ServletConfig config) throws ServletException {
    super.init(config);
    c = config.getServletContext();
  }
 
 
  //HTTP Get リクエストの処理
  public void doGet(HttpServletRequest req, HttpServletResponse res)
                                throws ServletException, IOException {
    try {
 
      String number  = "";
      String group   = "";
      String service = "";
 
      Res.setContextType("text/html; charset=shift_jis");
      PrintWriter pw = res.getWriter();
 
      // 初期画面表示
      /* ******************* */
      /* **  入力用 HTML  ** */
      /* ******************* */
 
      pw.println("<HTML>");
      pw.println("<HEAD>");
      pw.println("<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html;
              charset=shift_jis\">");
      pw.println("<TITLE>");
      pw.println("SearchTP1");
      pw.println("</TITLE>");
      pw.println("</HEAD>");
      pw.println("<BODY>");
      pw.println("<h3>");
      pw.println(“<center>TP1/COBOL adapter for Cosminexusのサンプル
                 </center>");
      pw.println(“<center>(Cosminexus TP1 Connector対応版) </center>”);
      pw.println(“<center> Managed 環境</center>”);
      pw.println("</h3>");
      pw.println("<hr>");
      pw.println("<FORM  action=/servlet/testc.SearchTP1Servlet
                  method=\"POST\">");
      pw.println("<hr>");
      pw.println("<table border=\"1\">");
      pw.println("<tr><td colspan=\"2\" align=\"center\">");
      pw.println(“<center>設定</center>”);
      pw.println(“</td><tr><td>サービスグループ名</td><td>”);
      pw.println("<input type=\"text\" name=\"GROUP\"
                  value=\"SAMPLE\">");
      pw.println(“</td><tr><td>サービス名</td><td>”);
      pw.println("<input type=\"text\" name=\"SERVICE\"
                  value=\"SEARCHTP1\">");
      pw.println("</td></table>");
      pw.println("<br>");
      pw.println("<hr>");
      pw.println("<br>");
      pw.println(“100001 と 100002が登録されています。
      pw.println(“<BR><BR> Submit を押すと Servlet SearchTP1Servlet
                  を実行”);
      pw.println("<BR><BR><input type=submit value=\"Submit\"></form>");
      pw.println("</center>");
      pw.println("</BODY>");
      pw.println("</HTML>");
 
      try {
        number  = req.getParameter("Number");
        group   = req.getParameter("GROUP");
        service = req.getParameter("SERVICE");
      } catch (Exception e) {
        e.printStackTrace();
      }
 
      //Beanのインスタンス生成
      SearchTP1 bean  = new SearchTP1();
 
      // ****************
      // * managed 環境 *
      // ****************
      javax.naming.Context ctx = new javax.naming.InitialContext();
      javax.resource.cci.ConnectionFactory cxf =
             (javax.resource.cci.ConnectionFactory)
                                ctx.lookup(RA_NAME);
 
 
      // ******************************************
      // *  managed , non-managed 環境共通処理
      // * ****************************************
      // コネクション取得
      javax.resource.cci.Connection cx = cxf.getConnection();
 
      //Interactionインスタンスの生成
      javax.resource.cci.Interaction ix = cx.createInteraction();
 
      //InteractionSpecImplインスタンスの生成
      InteractionSpecImpl ixSpec = new InteractionSpecImpl();
 
      //InteractionSpecプロパティ設定
      ixSpec.setServiceGroupName(group);        //サービスグループ名称
      ixSpec.setServiceName(service);           //サービス名称
      ixSpec.setFlags(ixSpec.DCNOFLAGS);        //RPC種別
      ixSpec.setWatchTime(10);                  //応答待ち時間
 
      // Beanにパラメタを設定
 
      bean.setP_numberI(new Integer(number));
      bean.setP_nameI("");
      bean.setP_addressI("");
      bean.setP_gifI("");
 
      try {
 
        //SPPを呼び出します
        bean.call(cxf,ix,ixSpec);
 
      } catch(Exception e) {
        e.printStackTrace();
        cx.close();
        return;
      }
 
      /* ******************* */
      /* **  結果用 HTML  ** */
      /* ******************* */
      pw.println("<html>");
      pw.println("<center>Result of Search.");
      pw.println("<table border=\"1\">");
      pw.println("<tr><td colspan=\"2\" align=\"center\">");
      pw.println(bean.getP_numberO());
      pw.println("</td><tr><td>Name</td><td>");
      pw.println(bean.getP_nameO());
      pw.println("</td><tr><td>Address</td><td>");
      pw.println(bean.getP_addressO());
      pw.println("<tr><td colspan=\"2\" align=\"center\">");
      pw.println("<img src=" + bean.getP_gifO() + ">");
      pw.println("</td></table>");
      pw.println("</center>");
      pw.println("</html>");
 
      cx.close();
 
   } catch (Exception e) {
      e.printStackTrace();
      return;
   }
  
 }
 
  // HTTP Post リクエストの処理
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }
}