在 CCI 应用程序中使用 IMS 数据绑定

如果选择编写您自己的 Java™ 应用程序而不是使用 Rational® Application Developer 来生成 J2C Java bean 和 J2EE 资源,您仍然可以使用 Rational Application Developer 的 J2C 选项为 CCI 应用程序的输入和输出消息创建 Java 数据绑定。
在为 IMS™ 输入和输出消息创建 Java 数据绑定之后,就可以在 CCI 应用程序中使用这些数据绑定。下列步骤说明了如何在简单的 CCI 应用程序中使用这些数据绑定:
  1. 从菜单栏中,选择文件 > 新建 > 项目 > Java 项目,然后单击下一步
  2. 创建一个名为 SimpleCCIApp 的 Java 项目。
  3. 接受所有其他缺省值并单击完成
  4. 当要求您切换至 Java 透视图时,单击以确认进行透视图切换。
  5. 单击确定以保存资源。
  6. 在“项目资源管理器”视图中,展开其他项目并右键单击名为 SimpleCCIApp 的 Java 项目,然后选择新建 > 包
  7. 在“新建 Java 包”向导中,在“名称”字段中输入 sample.ims 并单击完成
  8. 在“包”视图中,右键单击 SimpleCCIApp 项目并选择属性 > Java 构建路径
    1. 在“项目”选项卡中,单击添加按钮并选择包含您想让 CCI 应用程序使用的 Java 数据绑定的项目。
    2. 在“项目”选项卡中,选择包含您想使用的 IMS 资源适配器的项目。
      如果没有项目包含您想使用的 IMS TM 资源适配器,则可以通过完成下列步骤将 IMS TM 资源适配器的 RAR 文件导入工作空间中:
      1. 退出“Java 构建路径”向导。
      2. 在“项目资源管理器”视图中,右键单击项目并选择导入 > 文件系统
      3. 单击下一步
      4. 在“文件系统”向导中,单击源目录字段旁边的浏览并选择一个目录。可以从下列目录中获得 IMS TM 资源适配器的 RAR 文件:
        • 对于 JCA 1.0 IMS 资源适配器:<RAD_install_dir>/Resource Adapters/ims
        • 对于 JCA 1.5 IMS 资源适配器:<RAD_install_dir>/Resouce Adapters/ims15
      5. 单击目录旁边的框进行选择。
      6. 单击完成
    3. 在“库”选项卡中,通过单击添加外部 JAR 按钮将下列 JAR 文件添加至 SimpleCCIApp 项目的构建路径中:
      • j2ee.jar
      • marshall.jar
      Rational Application Developer 生成的 Java 数据绑定将使用这些 JAR 文件。 JAR 文件的版本取决于您所选择的 IMS TM 资源适配器的版本。例如,如果您选择了 IMS TM 资源适配器 9.1.0.1.1 并且安装了 WebSphere® Application Server V5 的测试环境,则 JAR 文件将位于以下目录路径中:
      • <RAD_install_dir>/runtimes/base_v5/lib
      如果您选择了 IMS TM 资源适配器 9.1.0.2 且安装了 WebSphere Application Server V6 的测试环境,则 JAR 文件将位于以下目录路径中:
      • <RAD_install_dir>/runtimes/base_v6/lib
    4. 单击确定
  9. 在“包”视图中,展开其他项目 > SimpleCCIApp,右键单击 sample.ims 包,然后选择新建 > 类
  10. 在“Java 类”向导中,完成下列步骤:
    1. 在“名称”字段中,输入 CCIApp 作为新类的名称。
    2. 想要创建哪些方法存根?选项中,确保选中了 public static void main(String{}args)继承的抽象方法复选框,并单击完成
  11. 编辑 CCIApp.java 源代码。将以下样本代码复制并粘贴到该文件中:
    /*
     *
      * TODO To change the template for this generated file go to
      * Window - Preferences - Java - Code Style - Code Templates
     */
    package sample.ims;
    
    import com.ibm.connector2.ims.ico.*;
    import javax.resource.cci.*;
    
    /**
     * 
     *
      * TODO To change the template for this generated type comment go to
      * Window - Preferences - Java - Code Style - Code Templates
     */
    public class CCIApp {
    
        public static void main(String[] args) {
            
            Connection conn = null;
            
            try{
                IMSManagedConnectionFactory mcf = new IMSManagedConnectionFactory();
                mcf.setHostName("yourHostName");
                mcf.setPortNumber(new Integer(0));
                mcf.setDataStoreName("yourDataStoreName");
                
                ConnectionFactory cf = (ConnectionFactory) mcf.createConnectionFactory();
                IMSConnectionSpec cSpec = new IMSConnectionSpec();
                
                conn = cf.getConnection(cSpec);
                
                Interaction interAction = conn.createInteraction(); 
                IMSInteractionSpec iSpec = new IMSInteractionSpec();
                iSpec.setInteractionVerb(1);        // SEND_RECEIVE
                iSpec.setImsRequestType(1);            // TRANSACTION
                iSpec.setCommitMode(1);                // SEND_THEN_COMMIT
                
                sample.ims.INPUTMSG input = new INPUTMSG();
                input.setIn__ll((short) input.getSize());
                input.setIn__zz((short) 0);
                input.setIn__trcd("IVTNO");
                input.setIn__cmd("DISPLAY");
                input.setIn__name1("LAST1");
                
                sample.ims.OUTPUTMSG output = new sample.ims.OUTPUTMSG();
                interAction.execute(iSpec, input, output);
                
                System.out.println(
                        "Output message is... " +
                        "\nMSG: " + output.getOut__msg() +
                        "\nNAME1: " + output.getOut__name1() +
                        "\nNAME2: " + output.getOut__name2() +
                        "\nEXTN: " + output.getOut__extn() +
                        "\nZIP: " + output.getOut__zip() 
                );
            }
            catch(Exception e)
            {
                System.out.println("Caught exception is: " + e.getMessage());
            }
        }
    }

    CCIApp.java 是一个简单的两层非受管 Java 应用程序。它使用由 Rational Application Developer 中的“CICS/IMS Java 数据绑定”向导创建的 Java 数据绑定 sample.ims.INPUTMSG 和 sample.ims.OUTPUTMSG。编辑 CCIApp.java,并针对您的环境修改 setHostName()、setPortNumber() 和 setDataStoreName() 语句所使用的值。

  12. 单击文件 > 保存
  13. 要运行 Java 应用程序,请在“项目资源管理器”视图中展开其他项目 > SimpleCCIApp
  14. 右键单击 CCIApp.java 并选择运行 > Java 应用程序 以下信息就会显示在“控制台”视图中:
    Output message is...
    MSG: ENTRY WAS DISPLAYED
    NAME1: LAST1
    NAME2: FIRST1
    EXTN: 8-111-1111
    ZIP: D01/R01

反馈