< Назад | Далее >

Урок 3: создание сообщения класса буфер

Урок 3 посвящен созданию сообщения класса буфер.
Предварительно следует выполнить Урок 2: настройка веб-проекта, интерфейса и реализаций Java.
В этом уроке выполняются следующие задачи:
  1. Для создания класса буфера сообщений разверните проект MultiSegOutput, Ресурсы Java и JavaSource.
  2. Щелкните правой кнопкой мыши на пакете sample.ims и выберите Создать > Класс для запуска мастера Создать класс.
  3. Введите CCIBuffer в качестве имени класса. Примите все установки по умолчанию.
  4. Нажмите кнопку Готово. Класс CCIBuffer будет открыт в редакторе Java.
  5. В раздел комментариев класса CCIBuffer добавьте тег @type-descriptor.message-buffer.
  6. Для сохранения изменений нажмите CTRL-S. Обратите внимание, что новый код создается в файле CCIBuffer.java автоматически.
    CCIBuffer.java
    /*
     * Создано: 13 октября 2004 г.
     *
     * TODO Для изменения шаблона этого сгенерированного файла выберите пункт меню
     * Окно - Параметры - Java - Стиль кода - Шаблоны кода
     */
    package sample.ims;
    
    /**
     * @author ivyho
     *
     * TODO Для изменения шаблона этого сгенерированного типа выберите пункт меню
     * Окно - Параметры - Java - Стиль кода - Шаблоны кода
     * @type-descriptor.message-buffer
     */
    public class CCIBuffer implements javax.resource.cci.Record,
    		javax.resource.cci.Streamable, com.ibm.etools.marshall.RecordBytes {
    
    	private byte[] buffer_ = null;
    
    	/**
    	 * @generated
    	 */
    	public CCIBuffer() {
    		return;
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#getRecordShortDescription()
    	 */
    	public String getRecordShortDescription() {
    		return (this.getClass().getName());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#hashCode()
    	 */
    	public int hashCode() {
    		return (super.hashCode());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Streamable#write(OutputStream)
    	 */
    	public void write(java.io.OutputStream outputStream)
    			throws java.io.IOException {
    		outputStream.write(buffer_);
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#setRecordShortDescription(String)
    	 */
    	public void setRecordShortDescription(String shortDescription) {
    		return;
    	}
    
    	/**
    	 * @generated
    	 */
    	public int getSize() {
    		if (buffer_ != null)
    			return (buffer_.length);
    		else
    			return (0);
    	}
    
    	/**
    	 * @generated
    	 * @see java.lang.Object#toString
    	 */
    	public String toString() {
    		StringBuffer sb = new StringBuffer(super.toString());
    		sb.append("\n");
    		com.ibm.etools.marshall.util.ConversionUtils.dumpBytes(sb, buffer_);
    		return (sb.toString());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#getRecordName()
    	 */
    	public String getRecordName() {
    		return (this.getClass().getName());
    	}
    
    	/**
    	 * @generated
    	 */
    	public byte[] getBytes() {
    		return (buffer_);
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#clone()
    	 */
    	public Object clone() throws CloneNotSupportedException {
    		return (super.clone());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#setRecordName(String)
    	 */
    	public void setRecordName(String recordName) {
    		return;
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#equals()
    	 */
    	public boolean equals(Object object) {
    		return (super.equals(object));
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Streamable#read(InputStream)
    	 */
    	public void read(java.io.InputStream inputStream)
    			throws java.io.IOException {
    		byte[] input = new byte[inputStream.available()];
    		inputStream.read(input);
    		buffer_ = input;
    	}
    
    	/**
    	 * @generated
    	 */
    	public void setBytes(byte[] bytes) {
    		buffer_ = bytes;
    	}
    
    }
  7. Для создания метода, запускающего транзакцию IMS, и типа данных входящего сообщения на панели Структура предприятия щелкните правой кнопкой мыши на файле MSOImpl.java и выберите Источник > Добавить метод в объект J2C.
  8. На странице Создать метод Java щелкните на Добавить.
  9. В поле Имя введите runMultiSegOutput.
  10. Рядом с полем Тип ввода щелкните на Создать.
  11. Выберите преобразование COBOL_to_Java. Щелкните на Обзор.
  12. Найдите COBOL-файл MSOut.cbl. Щелкните на Открыть.
    MSout.cbl
          IDENTIFICATION DIVISION.
          program-id. pgm1.
          ENVIRONMENT DIVISION.                                             
          CONFIGURATION SECTION.                                            
          DATA DIVISION. 
          *
          *    IMS TOC Коннектор для Java, Пример многосегментного вывода
          *
          *********************************************************************/ 
          *                                                                   */ 
          * (c) Авторское право Корпорации IBM 1998                           */ 
          * Авторские права защищены                                          */ 
          * Лицензионный материал - собственность IBM                        */ 
          *                                                                   */ 
          * Заявление об ограничении ответственности.                                         */ 
          *                                                                   */ 
          * Следующий код (закрытый) предоставляется исключительно для помощи */ 
          * в разработке приложений. Код предоставляется "КАК ЕСТЬ". IBM НЕ */ 
          * ДАЕТ НИКАКИХ ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ  (НО   */ 
          * НЕ ОГРАНИЧИВАЯСЬ ИМИ) ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ КОММЕРЧЕСКОЙ       */ 
          * ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ В ЧАСТИ ФУНКЦИЙ      */ 
          * ИЛИ ИСПОЛНЕНИЯ НАСТОЯЩЕГО КОДЕКСА.                         */ 
          * IBM не несет ответственности за любой ущерб, вытекающий из        */ 
          * использования сгенерированного вами кода, даже если фирма была    */ 
          * предупреждена о возможности таких убытков.                                      */ 
          *                                                                   */ 
          * РАСПРОСТРАНЕНИЕ.                                                     */ 
          *                                                                   */ 
          * Этот сгенерированный код можно свободно распространять,           */ 
          * копировать, изменять и включать в другое программное обеспечение, */
     * при условии, что:                                                 */ 
          *   - он сопровождается вышеприведенным уведомлением об авторских   */
     *     правах и ОТКАЗОМ от неповрежденности                          */ 
          *   - программное обеспечение не перепродается                      */ 
          *                                                                   */ 
          *********************************************************************/
          *
            LINKAGE SECTION.
    	                                                   
            01  INPUT-MSG.                                                     
                02  IN-LL          PICTURE S9(3) COMP.                         
                02  IN-ZZ          PICTURE S9(3) COMP.                         
                02  IN-TRCD        PICTURE X(5).                               
                02  IN-DATA1       PICTURE X(6).
                02  IN-DATA2       PICTURE X(6).
    						  
            01  OUTPUT-MSG.                                                   
                02  OUT-ALLSEGS  PICTURE X(99) VALUE SPACES.
    
            01  OUTPUT-SEG1.
                02  OUT-LL       PICTURE S9(3) COMP VALUE +0.                 
                02  OUT-ZZ       PICTURE S9(3) COMP VALUE +0.                  
                02  OUT-DATA1    PICTURE X(12) VALUE SPACES.
    
            01  OUTPUT-SEG2.
                02  OUT-LL       PICTURE S9(3) COMP VALUE +0.                 
                02  OUT-ZZ       PICTURE S9(3) COMP VALUE +0.                  
                02  OUT-DATA1    PICTURE X(13) VALUE SPACES.
                02  OUT-DATA2    PICTURE X(14) VALUE SPACES.
    
            01  OUTPUT-SEG3.
                02  OUT-LL       PICTURE S9(3) COMP VALUE +0.                 
                02  OUT-ZZ       PICTURE S9(3) COMP VALUE +0.                  
                02  OUT-DATA1    PICTURE X(15) VALUE SPACES.
                02  OUT-DATA2    PICTURE X(16) VALUE SPACES.
                02  OUT-DATA3    PICTURE X(17) VALUE SPACES.                     		   		
                            
            РАЗДЕЛ ПРОЦЕДУРЫ.    
  13. Нажмите кнопку Далее.
  14. На странице Программа импорта COBOL щелкните на Показать дополнительные параметры.
    1. Выберите следующие опции:
      Табл. 1. Настройки параметров программы импорта COBOL
      Параметр Значение
      Имя платформы Z/OS
      Кодовая страница IBM-037
      Идентификатор формата с плавающей точкой IBM® Hexadecimal
      Внешний десятичный знак EBCDIC
      Идентификатор endian Big
      Идентификатор удаленного целого endian Big
      Идентификатор quote DOUBLE
      Идентификатор trunc STD
      Идентификатор Nsymbol DBCS
    2. Для загрузки данных нажмите Запросить.
    3. Откроется список структур данных. В поле Select Структуры данных выберите INPUT-MSG. Нажмите кнопку Далее.
    4. Выйдите Сохранить сеанс как сценарий Ant.
  15. На странице Сохранение свойств Имя класса по умолчанию INPUTMSG. Поверх Имя класса введите InputMsg. Нажмите кнопку Готово.
  16. Для создания типа данных исходящего сообщения нажмите кнопку Обзор.
  17. Введите CC в поле Выбрать тип данных и в поле Сопоставление типов появится CCIBuffer. В качестве типа вывода выберите CCIBuffer. Нажмите кнопку Готово.
  18. На странице Метод Java щелкните на Готово.
  19. На странице Методы Java убедитесь, что interactionVerb установлен на SYNC_SEND_RECEIVE (1) для указания того, что взаимодействие с IMS предполагает отправку после получения взаимодействия.
  20. Нажмите кнопку Готово.
  21. Для создания связываний данных выходного сегмента выберите Файл > Создать > Другое > Связывание данных CICS/IMS Java для вызова мастера связывания данных.
  22. Нажмите кнопку Далее.
  23. Выберите COBOL_To_Java в списке Выбор преобразования. Щелкните на Обзор, чтобы найти копию модуля памяти COBOL MSOut.cbl.
  24. Нажмите кнопку Далее.
  25. На странице Программа импорта COBOL щелкните на Показать дополнительные параметры.
    1. Выберите следующие опции:
      Табл. 2. Настройки параметров программы импорта COBOL
      Параметр Значение
      Имя платформы Z/OS
      Кодовая страница IBM-037
      Идентификатор формата с плавающей точкой IBM Hexadecimal
      Внешний десятичный знак EBCDIC
      Идентификатор endian Big
      Идентификатор удаленного целого endian Big
      Идентификатор quote DOUBLE
      Идентификатор trunc STD
      Идентификатор Nsymbol DBCS
    2. Для загрузки данных нажмите Запросить.
    3. Откроется список структур данных. Выберите OUTPUT-SEG1 в поле Структуры данных.
    4. Нажмите кнопку Далее.
  26. В мастере Сохранение свойств нажмите на Обзор и выберите проект MultiSegOutput, который создан раньше.
  27. Для выбора имени пакета щелкните на Обзор: sample.ims.data.
  28. Измените Имя класса с OUTPUTSEG1 на OutputSeg1.
  29. Нажмите кнопку Готово.
  30. Теперь для вызова мастера Связывание данных создайте класс OutputSeg2.java: Выберите Файл > Создать > Другое > Связывание данных CICS/IMS Java.
  31. Нажмите кнопку Далее.
  32. Выберите COBOL_To_Java в списке Выбор преобразования. Щелкните на Обзор, чтобы найти копию модуля памяти COBOL MSOut.cbl.
  33. На странице Программа импорта COBOL щелкните на Показать дополнительные параметры.
    1. Выберите следующие опции:
      Табл. 3. Настройки параметров программы импорта COBOL
      Параметр Значение
      Имя платформы Z/OS
      Кодовая страница IBM-037
      Идентификатор формата с плавающей точкой IBM Hexadecimal
      Внешний десятичный знак EBCDIC
      Идентификатор endian Big
      Идентификатор удаленного целого endian Big
      Идентификатор quote DOUBLE
      Идентификатор trunc STD
      Идентификатор Nsymbol DBCS
    2. Для загрузки данных нажмите Запросить.
    3. Откроется список структур данных. Выберите OUTPUT-SEG2 в поле Структуры данных.
    4. Нажмите кнопку Далее.
  34. В мастере Сохранение свойств нажмите на Обзор для выбора проекта MultiSegOutput, созданного раньше.
  35. Для выбора имени пакета щелкните на Обзор: sample.ims.data.
  36. Измените Имя класса с OUTPUTSEG2 на OutputSeg2.
  37. Нажмите кнопку Готово.
  38. Теперь для вызова мастера Связывание данных создайте класс OutputSeg3.java: Выберите Файл > Создать > Другое >Связывание данных CICS/IMS Java.
  39. Нажмите кнопку Далее.
  40. Выберите COBOL_To_Java в списке Выбор преобразования. Щелкните на Обзор, чтобы найти копию модуля памяти COBOL MSOut.cbl.
  41. На странице Программа импорта COBOL щелкните на Показать дополнительные параметры.
    1. Выберите следующие опции:
      Табл. 4. Настройки параметров программы импорта COBOL
      Параметр Значение
      Имя платформы Z/OS
      Кодовая страница 037
      Идентификатор формата с плавающей точкой IBM 390 Hexadecimal
      Внешний десятичный знак EBCDIC
      Идентификатор endian Big
      Идентификатор удаленного целого endian Big
      Идентификатор quote DOUBLE
      Идентификатор trunc STD
      Идентификатор Nsymbol DBCS
    2. Для загрузки данных нажмите Запросить.
    3. Откроется список структур данных. Выберите OUTPUT-SEG3 в поле Структуры данных.
    4. Нажмите кнопку Далее.
  42. В мастере Сохранение свойств нажмите на Обзор для выбора проекта MultiSegOutput, созданного раньше.
  43. Для выбора имени пакета щелкните на Обзор: sample.ims.data.
  44. Измените Имя класса с OUTPUTSEG3 на OutputSeg3.
  45. Нажмите кнопку Готово.
< Назад | Далее >

Комментарии