付録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); } }