Top Banner
© 2010 IBM Corporation ® SOA Access for IMS TM Customers Jack Yuan – [email protected]
46
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bru soa access-for_ims_tm_customers

© 2010 IBM Corporation

®

SOA Access for IMS TM Customers

Jack Yuan – [email protected]

Page 2: Bru soa access-for_ims_tm_customers

2

Acknowledgements

� Special thanks to

– Himakar Chennapragada for sharing

his IMS SOAP Gateway knowledge

and foils with me.

– Suzie Wendler and Ken Blackman

for sharing their IMS SOA knowledge

and foils with me.

– Kevin Flanigan for sharing his IMS

SOA knowledge and foils with me.

Page 3: Bru soa access-for_ims_tm_customers

3

And provides a variety of new IMS Solutions

Web Service

Web Service

Web Service

Web Service

.NET Client

Client Developer

Application developer

SAP Client

Web service clients

Java/J2EE Client

Java dev

Direct Database access

Developers

Java /J2EE Developer

CICS Developer

DB2 Developer

Java

class Library

Direct

SOAP

IMS SOAP

Gateway

RDz

Solutions

WID RAD

IMS TM

Resource

Adapter

MFS SOA

WebSphere

Solutions

DLI

Model

Utility

DLI

Model

Utility

DB2

SP/CICS

WebSphere

IMS

Universal

DB

Resource

Adapter

IMS

Database

IMS Connect

SQLXQuery

DL/I

DL/ISOAP

TCP/IP

Transaction

manager

IMS APP

Database

manager

DLI

Model

Utility

OT

MA

OD

BM

IMS

Universal

JDBC

Driver

IMS

Universal

JDBC

Driver

TCP/IP

DRDA

OD

BA

/DR

A

IMS

JDR

Resource

Adapter

Web 2.0 Mashup

HTTP

IMS

Web 2.0

WebSphere

REST Service

REST Service

REST Service

REST Service

InfoSphere Mashup

(includes new IMS 11 components)

Page 4: Bru soa access-for_ims_tm_customers

4

IMS Integration Suite

� IMS TM Resource Adapter

� IMS Web 2.0

� IMS MFS Web Enablement

� IMS SOAP Gateway

� IMS Connect API

� IMS DB Resource Adapter

– IMS JDBC Connector

� IMS DLIModel utility

� IMS XML DB

� Open Database Manager (IMS 11)

IMS Connect-based solutionsfor IMS transaction access

IMS DB access

Page 5: Bru soa access-for_ims_tm_customers

5

IMS Connect

� Strategic architecture base for IMS connectivity solutions

– Leverages OTMA support in IMS

� Benefits and Value

– Supports TCP/IP sockets access to IMS transactions and commands

– Provides a general purpose and structured interface

– Provides a strategic base for new connection technologies

IMSAIMS Connect

IMSB

VTAM

TCP/IP

Java Applet

BROWSER Web

Server

COMTI

Visual Basic

PowerBuilder

...

Web Server program

Websphere

Cobol

Assembler

C/C++

Java

Page 6: Bru soa access-for_ims_tm_customers

6

existing IMS transactions can be integrated into theservice-oriented architecture by implementing a Web service as a front-end access-point interface

IMS Connect Solutions

� IMS Connect provides the IMS interface for TCP/IP solutions

– IMS Integration Suite

• IMS TM Resource Adapter

• IMS Web 2.0

• IMS SOAP Gateway

• IMS MFS Web Support

– Write your own clients

• IMS Connect API

• Socket calls

– V11 Open Database Support

– IBM solutions, e.g., DataPower client for IMS

– Other Vendor solutions

Page 7: Bru soa access-for_ims_tm_customers

7

IMS Connect Solutions …

DBODBM

SC

I

OD

BA

or D

RA

Java Appl.Universal drivers(Type 4)

SC

I

DRDA

DDM DLI

TC

P/IP

SC

I

SCI

Structured Call

Interface

SCI

Operations

Manager (OM)

IMS ControlRegion

SCI

SCI

Transactions

And

Commands

XC

F

XCF

OTMA

BPE

IMS Control

Center

IMS ControlRegion

IMS Soap

Gateway

RYO appl

IMS TM

resource

adapter

WESB,WPS,

WAS, WMB,

Web 2.0 …

Data Power

Multiple vendorsMultiple vendorsMultiple vendors

DRA

Enhanced commands

Solid IMS-based architecture

IMS Connect

Exit

routines

or Print utilityIMS PA IMS PI

Activejourna

l

Archivejourna

l

IMS Connect

Extensions (CEX)

Page 8: Bru soa access-for_ims_tm_customers

8

IMS Connect Solutions – for JEE Environments

� IMS TM Resource Adapter

� WebSphere-based, Java Connector Architecture (JCA/J2C) Resource

Adapter that allows external systems to access IMS Connect

– Enable J2EE application, Web Service, SCA, SOA Composite

application/Choreographed service (BPEL process) to access existing IMS

transactions

WebSphere Application Server / WebSphere Process Server /WebSphere Transformation Extender (WTX)

Web

ServiceTCP/IP

Web

Component

Enterprise

Bean

IMS

IMS AppIMSConnect

IMSAPP

IMS DB (includes XML data)

IMS TMIMS TM

resourceresource

adapteradapter

Page 9: Bru soa access-for_ims_tm_customers

9

IMS Connect Solutions – for JEE Environments …

� IMS TM Resource Adapter

– Supports rapid development/deployment of Java applications to access IMS

• Development component

– Delivered with Rational Application Developer (RAD), Rational Developer for z

(RDz), WID (WebSphere Integration Developer)

• Runtime component

– Must be installed into an application server, e.g., WebSphere

WebSphere

Unit Test Environment

IMS TM

RESOURCE

ADAPTER

IMS SERVICE

DEPLOY

& TEST

IMPORT

MFS

C

COBOL

RAD / RDz /WID

IMS TM

RESOURCE

ADAPTERimsico.RAR

Appl.EAR

J2C

Connection

FactoryIMS

IMS

Connect

Installed

Applications

TCP/IP

JEE Application Server, e.g., WAS

Export

(supplied with IMS Connect)

Page 10: Bru soa access-for_ims_tm_customers

10

As Well as support of Web 2.0 … IMS Web 2.0

� IMS Web 2.0 is a plugin to the InfoSphere MashupHub V1.0

– Includes the ability to:

• Transform IMS assets into RESTful services (XML, ATOM, or RSS feeds)

that can consume or be consumed by other Web 2.0 services

• Compose “widgets” / HTML segments into a composite User Interface (UI)

or an application template

• Bind services (data or function) to the composite UI

� IBM Mashup Center includes two components:

– InfoSphere MashupHub for creating, storing, transforming and remixing

feeds, and for sharing with the Web 2.0 community.

– Lotus® Mashups for rapidly assembling a variety of personal, enterprise, and Web content onto a Web page or into an application.

Page 11: Bru soa access-for_ims_tm_customers

11

IMS Web 2.0 …

Extends the IMS investment by converting an IMS asset into an IMS RESTful service, which has the ability to consume and be consumed by other Web 2.0 services.

Transactions

Databases (with IMS 11)

IMS feed Inventory and

branch locations

Other web feed

Google Mapsfeed

Page 12: Bru soa access-for_ims_tm_customers

12

IMS Connect Solutions – For non-JEE Environments

The IMS SOAP Gateway� A direct Web Service solution for IMS

– Provides light-weight web service support

• No need for a JEE server (e.g. WebSphere Application Server)

– Integrates IMS assets into SOA using Web Service and SOAP interface

– Provides XML transformation in IMS Connect

• Handles XML data with no change in IMS application

– Supports industry web service standards

• HTTP(S), SSL, SOAP 1.1, WSDL 1.1, WS-I BP 1.0

Page 13: Bru soa access-for_ims_tm_customers

13

End to End

ExecutionExecution

GenerationGeneration

<SOAP><LL><ZZ><DATA>

XML

Adapter

For COBOL

Adapter

Task

Manager

COBOL

Converters

IMS Connect

IMS

IMS

App

System z9

LLZZ TRCD DATA

LLZZ DATA

TCP/IP

<LLLL>< XML DATA><CSM>

IMS SOAP Gateway

UDDI Registry

Java Client

.NET Client

<SOAP><XML msg>

HTTP/SOAP

IMS SOAP Gateway Deployment ToolGenerate and Deploy

WSDL

Correlator

File

Publish

WD/zGenerate

IMS Web

Service

COBOL

Copybook

<XML msg>

<EOM>

<LLLL<IRM>

Can run on:Windows, AIX,

zLinux, System zSAP SOAP

client

any SOAPclient

Page 14: Bru soa access-for_ims_tm_customers

14

LL zz <XML msg> <CSM>

IMS SOAP Gateway

� Input and Reply messages

– IRM Header - provides new specifications for the XML adapter LL - 2 byte Length

zz --> byte 1 - Architecture Level, Set to Binary '00000010' to signal that the storage space

in the IRM is present for IRM_TAG_ADAPT and IRM_TAG_MAP

byte 2 - Set to Binary ‘00000001’ if Tagged TranCode and Data

Set to Binary ‘00000010’ if Tagged Data only

IRMIDidentifies the user message exit, e.g., *HWSOA1*

…..

New fields added at the end of the user data section

IRM_TAG_ADAPT specifies the Adapter name that is to receive control to perform the XML removal on

input and addition on output.,e.g, HWSXMLA0

IRM_TAG_MAP specifies the Tag name that is to be used by the ADAPTER to process the XML tags on

input and output messages. (XML Converter Driver name)

<LLLL> IRM <LL><ZZ> <XML msg> <EOM>

Tagged IMS input message

IMS SOAP Gateway

Tagged IMS reply message

<LLLL>

IMS SOAP Gateway

•<soap hdr>

<soap hdr>

Page 15: Bru soa access-for_ims_tm_customers

15

IMS Connect – XML Adapter Support

� Capability that supports translation between XML messages and IMS messages

– IMS Connect client, e.g., IMS SOAP Gateway

• Sends an XML message with a request for translation

– IMS Connect

• Inbound: invokes the XML Adapter to translate message for IMS

– Removes XML tags

– If necessary, convert from UNICODE to EBCDIC

• Outbound: invokes the XML Adapter to prepare an XML message

– If necessary, convert from EBCDIC to appropriate UNICODE encoding schema

– Create XML tags

Page 16: Bru soa access-for_ims_tm_customers

16

IMS Connect - XML Adapter Support…

� User Message Exit HWSSOAP1

– OCO

– IRMID *HWSOA1*

� XML converter routines

– Cobol source code

• Provide the information needed

to perform conversion from

tagged data to a byte stream

– Unique to each message definition

• Generated by the RDz toolkit

– Compiled and bound into file that is

concatenated into IMS Connect

STEPLIB

XMLAdapter

For COBOL

AdapterTask

Manager

COBOLConverters

IMS Connect

HWSSOAP1Exit routine

//HWS PROC

//STEP1 EXEC PGM=HWSHWS00, REGION=5M,

// PARM=‘BPECFG=BPECFG00, HWSCFG=HWSCFG00’

//STEPLIB DD DISP=SHR,DSN=IMS10.SDFSRESL

//* SSL SUPPORT DATASETS

// DD DISP=SHR,DSN=CEE.SCEERUN

// DD DISP=SHR,DSN=SYS1.CSSLIB

// DD DISP=SHR,DSN=GSK.GSKLOAD

//* COBOL XML CONVERTER DRIVERS

// DD DISP=SHR, DSN=IMS.XML.DRIVERS

//PROCLIB DD DISP=SHR,DSN=IMS10.PROCLIB

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//HWSRCORD DD DISP=SHR,DSN=IMS10.HWSRCRD

Page 17: Bru soa access-for_ims_tm_customers

17

Message Flow

Client IMS Connect

XML

AdapterIMS

XMLAdapter

XML

XML XML

XML

Appl format

Appl format

Appl format

Appl format

….IVTNO DISPLAY LAST1

GU. IOPCB…ISRT, IOPCB

….ENTRY WAS DISPLAYED DISPLAY LAST1 FIRST1

8-111-11111D01 / R010001

<cbl:OUTPUTMSG xmlns:cbl=“http://www.XCNVI.com/schemas/XCNVIInterface”>

<out_ll> 093</out_ll><out_zz> 000</out_zz><out_msg> ENTRY WAS DISPLAYED</out_msg>

<out_cmd>DISPLAY</out_cmd><out_name1>LAST1</out_name1>

<?xml version=“1.0”?><INPUTMSG><in_ll>32</in_ll><in_zz>0</in_zz><in_trcd>IVTNO</in_trcd><in_cmd>DISPLAY<in_cmd><in_name1>LAST1</in_name1></INPUTMSG>

01 INPUT-MSG.02 IN-LL PIC S9(3) COMP.02 IN-ZZ PIC S9(3) COMP.02 IN-TRCD PIC X(10). 02 IN-CMD PIC X(8).

01 OUTPUT-MSG.02 OUT-LL PIC S9(3).02 OUT-ZZ PIC S9(3).02 OUT-MSG PIC X(40). 02 OUT-CMD PIC X(8).

Page 18: Bru soa access-for_ims_tm_customers

18

Environments

Support on System z beginning with IMS 10

IMSO

TM

A

XML

Web Service Clients,

e.g. Microsoft .Net,SAP, Java, etc..

SOAPIMS

SOAPGateway

Windows,

AIX,zLinux

Connect

IMS

XML Adapter

IMSApp

System z

DB

OT

MA

Web Service Clients,

e.g. Microsoft .Net,SAP, Java, etc..

SOAP

XML

IMS SOAP

Gateway

Page 19: Bru soa access-for_ims_tm_customers

19

…Providing support for IMS as a Service Provider

IMSAPP.XML

IMSAPP.WSDL IMS app

IMS

IMS SOAP Gateway

Service Provider

IMS

Connect

Page 20: Bru soa access-for_ims_tm_customers

20

…and as a Service Consumer (IMS 10 / IMS 11)

IMS

IMSCAPGM

(ICAL

WEBSVCA)

WEBSVCA.XML

WEBSVCA.WSDL

Service Provider

(called)

Service Requester

(calling)

IMS

IMS SOAP Gateway

WEBSVCA

Page 21: Bru soa access-for_ims_tm_customers

21

IMS Support for Messaging and Queuing

• Messaging and Queuing Model (transactions)

– Characteristics

• Processing occurs whether or not a connection is made

– Assured delivery of messages (inbound/outbound) when components and/or network are available

– Support

• WebSphere MQ (MQSeries)

– Remote program is not sensitive to the network type

• MQ provides its own high-level standard API

• Same applications can be deployed on TCP/IP or SNA

– Supports the use of MQ API

– Supports the use of JMS (Java Message Service) API

• Messaging standard that allows application components based on J2EE to create, send, receive, and read messages

Local Q Transmission Q

MQ

NETWORK

(VTAM LU 6.2 or TCP/IP)

MQ calls

Remote Application

MQ on z/OS

MQ Bridge

...

MQ calls

XCF calls

MQ calls

IMSOTMA

GU, IOPCB

...

ISRT, IOPCB

NETWORK

(VTAM LU 6.2 or TCP/IP)

Page 22: Bru soa access-for_ims_tm_customers

22

WebSphere MQ …

� Websphere Message Broker WMB 6.1.0.3

– Supports a new IMS node

WebSphere Message Broker

WebSphere Event Broker

WebSphere MQ (including JMS)

Transformation, Routing and Data Integration

- Includes all Event Broker functionality- Content and table-drive routing capabilities- Powerful engine for message/data

transformation and integration- XSLT engine for XML transformation- Message filtering and message warehousing- Web services (HTTP/SOAP) protocol support

LL zz Trancode Data

LL zz Data

From anywhereUsing any protocol(HTTP, Web services,SOAP/XML …)

Page 23: Bru soa access-for_ims_tm_customers

23

Asynchronous: WebSphere MQ Solutions

WebSphere

ESB

WebSphere MQ

XML

Message

WebSphere

Process

Server

WebSphere

Message

Broker

Web

Service

IMS

Database

Transaction

manager

IMS APP

Database

manager

OT

MA

� Key attributes

– Asynchronous access

– Transactions exposed via MQ

– Supports XML message format

– Leverage ESB mediation

– Compensating Transactions

XCF

WebSphere

DataPower

Page 24: Bru soa access-for_ims_tm_customers

24

Synchronous: WebSphere with IMS Connect

WebSphereESB

MessageWebSphere

Process

Server

WebSphere

Message

Broker

Web

Service

IMS

Database

Transaction

manager

IMS APP

Database

manager

OT

MA

� Key attributes

– Synchronous access

– Transactions exposed via OTMA

– Data exposed via ODBM

– Supports XML message format

– Leverage ESB mediation

– Integrated IMS Connect

XCF

WebSphere

DataPower

IMS Connect

OD

BM

SCIWebSphere

Application

Server

SOAP

Gateway

Page 25: Bru soa access-for_ims_tm_customers

25

And then there is DataPower --- Solutions for IMS

IRM Request

IMSConnect

IMS application(Cobol,, etc.)

IMS Connectclient

OT

MA IMS

MQ client

OT

MA IMS

MQ IMSBridge

IMS application(Cobol,, etc.)

DataPower 3.6.1

� An MQ client

� An IMS Connect client

XA35 XML Accelerator

Offloads XML, XSD, XPath and XSLT at wire speeds

Add: DataPower XML Integration & existing

systems connectivity SW

XS40 XML Security Gateway

Add: DataPower XML Security SW

Page 26: Bru soa access-for_ims_tm_customers

26

IMS Connect API Environment

IMS Connect

API

Client

Application IMS Connect

API

Client

Application IMS Connect

API

Client Application

IMS Connect

Windows or z/OS

Connectionand

TmInteractionAttribute files

Connectionand

TmInteractionAttribute files

IMS

O

T

M

A

IMS App

Load default

property values

IMS AppIMS App

z/OS

TCP/IP

Page 27: Bru soa access-for_ims_tm_customers

27

Business Value

� Target Market

– The IMS Connect API is intended for all customers who write client applications that interact directly with IMS Connect (i.e., IMS Connect clients that do not use IMS TM Resource Adapter or IMS SOAP Gateway)

� Challenge Addressed

– Simplifies interactions with IMS Connect by handling:

• IMS Connect message header

• IMS Connect interaction protocols

• TCP/IP socket connections

� Solution Statement

– Provides a set of reusable profiles that define connections and types of interactions to be performed and set of high- and low-level methods for performing interactions with IMS Connect

� Business Value Statement

– Simplifies design, development, test and maintenance of IMS Connect client applications written in Java and C

Page 28: Bru soa access-for_ims_tm_customers

28

Business Value

� Target Market

– The IMS Connect API is intended for all customers who write client applications that interact directly with IMS Connect (i.e., IMS Connect clients that do not use IMS TM Resource Adapter or IMS SOAP Gateway)

� Challenge Addressed

– Simplifies interactions with IMS Connect by handling:

• IMS Connect message header

• IMS Connect interaction protocols

• TCP/IP socket connections

� Solution Statement

– Provides a set of reusable profiles that define connections and types of interactions to be performed and set of high- and low-level methods for performing interactions with IMS Connect

� Business Value Statement

– Simplifies design, development, test and maintenance of IMS Connect client applications written in Java and C

Page 29: Bru soa access-for_ims_tm_customers

29

Description and Positioning

� Facilitates remote access to IMS transactions and commands

� Shields users from:

– IMS Connect protocol

– Socket communications

� Targets users who need to write and maintain RYO applications

– Accomplishes same task as IMS TM Resource Adapter and IMS SOAP

Gateway

– Leaner implementation

• No J2EE/JCA

• No SOAP server

– Allows different RYO applications to use the same code for accessing IMS from Java applications

� Utilizes JCA-like paradigm for accessing IMS Connect

– ConnectionFactory, Connection and TmInteraction interfaces

Page 30: Bru soa access-for_ims_tm_customers

30

Prerequisites

� Software requirements

– IMS V10 license required

– IMS V10 Integrated IMS Connect function

– JDK/JRE 1.4.2 or higher

� Hardware requirements

– Same as existing IMS Connect client application environment

� Tooling

– None required

Page 31: Bru soa access-for_ims_tm_customers

31

Design Assumptions

� IMS Connect API

– API will support existing IMS Connect function for RYO client applications

• TCP/IP only

– Client application responsible for:

• Preparing input data as expected by IMS application

• Interpreting output data as returned by IMS application

• Management of memory for required data structures used in C implementation

– Java implementation initially supported on Windows and System z

– C implementation initially supported on Windows only

Page 32: Bru soa access-for_ims_tm_customers

32

Restrictions

� IMS Connect API intended to support existing IMS Connect function

– New features added after start of development not included in initial GA

� Two-Phase Commit (2PC)

– Not supported in initial release

– May be restrictions which would prevent 2PC from ever being feasible with

API

� SSL

– May not be supported in initial release

– May not be concern if running API on System z behind firewall

� Cancel client ID

– May not supported in initial release

� XML

– Not supported in initial release

Page 33: Bru soa access-for_ims_tm_customers

33

Externals

� Major Functionality from Users’ Point-of-View

– IMS Connect API executes interactions with IMS Connect

• Shields IMS Connect client application developers from dealing with complexities of:

– IMS Connect headers and protocols,

– TCP/IP sockets programming, and

– IMS Connect user exits (defaults to HWSSMPL1)

– The IMS Connect client application developer responsible for

configuring connection and interaction property files used by API

– Optional features

• SSL connections

• API runtime tracing

Page 34: Bru soa access-for_ims_tm_customers

34

Interfaces

� Customers may provide pathnames to customized files

– Specify default connection- and interaction-related properties

� OO approach used for Java API

– Similar to design used for J2EE and JCA

– ConnectionFactory getConnection call returns Connection interface on which

createInteraction is called to return TmInteraction interface

� Low-level calls for Java Connection interface

– Connect ( )

• Input parameters: Java – none

C – pointer to ConnectionAttributes

– pointer to call completion/error status structure

• Return value: void

• Opens TCP/IP socket connection to IMS Connect identified in properties of

Connection instance

• Invoked explicitly by client application or called internally by API during high-level

execute call if Connection is not connected

Page 35: Bru soa access-for_ims_tm_customers

35

Interfaces (continued)

� Low-level calls for Connection interface (cont.)

– disconnect( )

• Input parameters: Java –noneC – pointer to ConnectionAttributes structure

– pointer to call completion/error structure

• Return value: void

• Closes underlying TCP/IP socket connection to IMS Connect for that Connection instance

• Invoked explicitly by client application or called internally by API during high-level execute call if Connection is not connected

– send( )

• Input parameters: Java – input byte arrayC – pointer to ConnectionAttributes structure

– pointer to input byte array– pointer to call completion/error structure

• Return value: void

• Sends input byte array to IMS Connect using underlying socket for that Connection instance

• Invoked explicitly by client application or called internally by API during high-level execute call

Page 36: Bru soa access-for_ims_tm_customers

36

Interfaces (continued)

� Low-level calls for Connection interface (cont.)

– receive( )

• Input parameters: Java – void

C – pointer to ConnectionAttributes structure

– pointer to output buffer

– pointer to call completion/error structure

• Return value: Java – output byte array

C – void

• Receives output byte array from IMS Connect using underlying socket for that

Connection instance

• Invoked explicitly by client application or called internally by API during high-level

execute call

Page 37: Bru soa access-for_ims_tm_customers

37

Interfaces (continued)

� High-level calls for Connection interface (cont.)

– loadConnectionPropertiesFromFile( )

• Input parameters: Java – qualified or unqualified name of file containing

Connection property values

C – qualified or unqualified name of file containing

Connection property values

– pointer to ConnectionAttributes structure

– pointer to call completion/error structure

• Return value: void

• Sets the values for all Connection properties identified by name-value pairs in the

specified Connection properties file

• Invoked explicitly by client application

Page 38: Bru soa access-for_ims_tm_customers

38

Interfaces (continued)

� High-level calls for TmInteraction interface

– execute( )

• Input parameters: Java – none

C – pointer to ConnectionAttributes structure

– pointer to input buffer

– pointer to output buffer

– pointer to InteractionAttributes structure

– pointer to call completion/error structure

• Return value: void

• Invoked explicitly by client application

– Establishes socket connection with IMS Connect if not already connected

– Builds input request message to be sent to IMS Connect including the IRM headers and with or without trancode and data as necessary

– Enforces rules of IMS Connect protocol, throwing exceptions if interaction would violate protocol

– Sends request message to IMS Connect

– Receives output from IMS Connect and IMS

– Processes output and returns either output or exception to calling client application

Page 39: Bru soa access-for_ims_tm_customers

39

Properties Files

� Default values

– Properties files used to set default values for Connection and TmInteraction

– Default values can be over-written by Connection and TmInteraction properties setter methods

� Two types of properties files supported

– Connection properties

• Identify target IMS Connect, type of connection and SSL-related properties of

Connections

• Same connection properties used by ConnectionFactory class and Connection

Interface

– ConnectionFactory can be loaded with connection property values which are then used as default values for Connections it creates

– Connections can also be loaded with connection property values which overwrite values set by ConnectionFactory

• Changing of connection properties allowed only while Connection is not connected

– TmInteraction properties

• Describe type and characteristics of interaction to be performed

• Can be changed any time – changes affect subsequent interactions

Page 40: Bru soa access-for_ims_tm_customers

40

Properties Files (continued)

Connection Properties

Target IMS Connect

- Host name

- Port number

SSL configuration - Use SSL flag

- SSL encryption level

- Keystore and truststore

Other properties

- Client ID

- Socket type

TmInteraction Properties

Interaction

- Datastore name (IMS)

- Commit mode, sync level

- Interaction type

Message routing- Purge undeliverable output

- Reroute undeliverable output

- Reroute name

Security- RACF settings

Timeouts

- IMS Connect timeout

- Interaction timeout

Message encoding

- IMS Connect codepage

Response

- responseIncludesLLLL

- returnMfsModName

Page 41: Bru soa access-for_ims_tm_customers

41

Tracing

� Uses java.util.logging package

� Provides four levels of tracing from no tracing to detailed tracing:

– None

– Exception – exceptions onlyMon, Jan 19 2009, 14.05.15.971 PST [SEVERE] Exception caught in client application

Mon, Jan 19 2009, 14.05.15.986 PST [SEVERE] Exception was:

[com.ibm.ims.connect.ImsConnectCommunicationException: HWS0006E: IMS OTMA returned an

error. IMS Connect return code: [16], OTMA sense code: [26], OTMA reason code: [25] (SMB

transaction or LTERM stopped (see DFS065))]

– EntryExit – exceptions plus significant method entries and exitsFri, Jan 16 2009, 17.18.05.111 PST [FINER] --> ConnectionImpl.connect()...

Fri, Jan 16 2009, 17.18.05.283 PST [FINER] <-- ConnectionImpl.connect()...

– Internal – trace exceptions plus entries and exits plus useful information such

as the input and output buffer contents formatted and interpretedInputMessage.getBytes() - writing trancode [IVTNO ] to "dout" DataOutStream

InputMessage.getBytes() - copied bout.toByteArray() to "message" byte array:

00000098 00700200 5ce2c1d4 d7d3f15c 00000000 10001000 c3d3c9c5 d5e3f0f1 |...q.ø..*SAMPL1*........CLIENT01| : 32

00400140 c9e5e3d5 d6404040 c9d4e2f1 40404040 40404040 40404040 d9c1c3c6 |. . IVTNO IMS1 RACF| : 64

e4c9c440 d9c1c3c6 c7d9e4d7 d9c1c3c6 d7e2e6c4 d9c1c3c6 c1d7d5d4 40404040 |UID RACFGRUPRACFPSWDRACFAPNM | : 96

40404040 c8e6e2e7 d4d3c1f0 c8e6e2e7 c3d5e5f0 00200000 c9e5e3d5 d6404040 | HWSXMLA0HWSXCNV0....IVTNO | : 128

4040c4c9 e2d7d3c1 e840d3c1 e2e3f140 40404040 00040000 | DISPLAY LAST1 .... | : 152

Page 42: Bru soa access-for_ims_tm_customers

42

Tracing� Tracing output at Internal level also includes interpreted IRM fields

Thu, Jan 15 2009, 00.01.15.877 PST [FINEST] llll = 0x98 (decimal 152)

Thu, Jan 15 2009, 00.01.15.877 PST [FINEST] irm_ll = 0x70 (decimal 112]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] archLvl = 0x02

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] f0 = 0x00 (decimal 0] (no XML transformation)

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] irmId = [*SAMPL1*]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] resWrd = 0x00 (decimal 0]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] f5 = 0x10 (decimal 16]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] EBCDIC translation not done by client

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] resumeTpipe option is SINGLE_WAIT

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] irmTimer = 0x00 (decimal 0]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] sockType = 0x10 (decimal 16]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] Persistent socket

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] encSchema = 0x00 (decimal 0]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] clientId = [CLIENT01]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] f1 = 0x00 (decimal 0)

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] Return MFS modname not requested

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] f2 = 0x40 (decimal 64)

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] Commit mode 0

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] f3 = 0x01 (decimal 1)

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] Sync Level is CONFIRM (1),

Purge undeliverable output is false,

Reroute undeliverable output is false

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] f4 = 0x40 (decimal 64, chararcter [ ])

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] SENDRECV interaction

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] irmTrancode = [IVTNO ]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] datastoreId = [IMS1 ]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] ltermOvrd = [ ]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] racfuserid = [RACFUID ]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] racfGroup = [RACFGRUP]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] racfPassword = [********]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] racfApplNm = [RACFAPNM]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] rerouteName = [ ]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] xmlAdapterNm = [HWSXMLA0]

Thu, Jan 15 2009, 00.01.15.892 PST [FINEST] xmlConvrtrNm = [HWSXCNV0]

Page 43: Bru soa access-for_ims_tm_customers

43

Usage

� API uses JEE/JCA-like paradigm

– Instantiate ConnectionFactory

• Configure using loadConnectionFactoryPropertiesFromFile() method or

ConnectionFactory property setter methods

– Create Connection from ConnectionFactory

• Configure using loadConnectionPropertiesFromFile() method or

Connection property setter methods

– Create TmInteraction from Connection

• Configure interaction using loadTmInteractionPropertiesFromFile() method

or TmInteraction property setter methods

– Create input data as one- or two-dimensional byte array or String

– Obtain InputMessage object using TmInteraction.getInputMessage()

• Set input data in InputMessage

– Invoke TmInteraction.execute() to perform interaction

– Obtain OutputMessage using TmInteraction.getOutputMessage()

• Get response data and properties from OutputMessage

Page 44: Bru soa access-for_ims_tm_customers

44

Usage (continued)

� Simplified example1 Logger logger = apiLoggingConfig.configureApiLogging(“trace.out”, ApiProperties.TRACE_LEVEL_INTERNAL);

2

3 ConnectionFactory myCF = new ConnectionFactory();

4 myCF.loadConnectionFactoryAttributesFromFile(“c:\\myPropAttributesFiles\\ConnAttr.txt");

5 myCF.setHostName(“myhost.mycompany.com");

6 myCF.setPortNumber(9999);

7

8 Connection myConn = myCF.getConnection();

9 myConn.setClientId(“client01");

10

11 TmInteraction myTmInteraction = myConn.createInteraction();

12 myTmInteraction.setImsDatastoreName("IMS1");

12 String myImsConnectCodepage = myTmInteraction.getImsConnectCodepage();

13 byte[] indata1 = (new String("/STA TRAN IVTNO")).getBytes(myImsConnectCodepage);

14 InputMessage inMsg = myTmInteraction.getInputMessage();

15 inMsg.setInputMessageData(indata1);

16

17 myTmInteraction.execute();

18

19 OutputMessage outMsg = myTmInteraction.getOutputMessage();

20 System.out.println(“\nResponse was: [” + outMsg.getDataAsString + “]\n”);

21

22 myTmInteraction.setTrancode(“IVTNO “);

23

24 byte[] indata2 = (new String(“DISPLAY LAST1 ")).getBytes(imsConnectCodepage);

25 inMsg.setInputMessageData(indata2);

26

27 myTmInteraction.execute();

28

29 System.out.println(“\nResponse was: [” + outMsg.getDataAsString + “]\n”);

Page 45: Bru soa access-for_ims_tm_customers

45

IMS Connect Functions Supported� IMS transactions

� OTMA-supported IMS commands

� IMS Connect PING command

� IMS Connect RACF password change command

� Persistent and transaction sockets

� IMS Connect-generated client IDs (application-generated – CLIENTID)

� SSL connections to IMS Connect (non-SSL)

� HWSSMPL0 and HWSSMPL1 user message exits (responses with and without LLLL)

� IMS Connect DATASTORE definitions

� ResumeTpipe processing options single waitand nowait, auto and noauto

� ResumeTpipe alternate client ID

� LTERM override name (8 blanks)

� Return MFS MOD name with response (false)

� Commit mode’s commit-then-send (CM0) and send-then-commit (CM1)

� Sync level’s none and confirm

� Interaction types ack, nak, cancel timer, end conversation, receive, resume tpipe, send only, send only w/ ack, send only w/ XCF ordered delivery and send receive

� Purge undeliverable output (false)

� Reroute undeliverable output (false)

� Reroute name (8 blanks)

� RACF user ID (RACFUID)

� RACF group name (RACFGRUP)

� RACF password (RACFPSWD)

� RACF appl name (RACAPNM)

� IMS Connect timeout (0 – use IMS Connect timeout value)

� Interaction timeout (0 – wait forever)

� IMS Connect codepage (cp037 – EBCDIC)

� ASCII or EBCDIC messages

� Bold = default value

Page 46: Bru soa access-for_ims_tm_customers

46

IMS Connect API Functions

� IMS Connect API-specific Functions

– Client ACK or NAK vs. API internal ACK

� LLZZ and trancode can be provided by client application or API

� Input and output message data types

– Byte array

• Single-segment

• Multi-segment if segment in data provided are delineated with LLZZ’s

– Array of byte arrays

• Single-segment if only one byte array element is populated

• Multi-segment – LLZZ not required to be specified

– String - LLZZ cannot be specified

• Single-segment only since there is no way to delineate segments within String

– Array of Strings - LLZZ cannot be specified

• Single-segment if only one String element is populated

• Multi-segment