WebSphere Application Server Z/OS V8.5 Unit 6 - WOLA

2y ago
8 Views
2 Downloads
1.66 MB
27 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Ellie Forte
Transcription

2013 IBM CorporationIBM Advanced Technical SkillsWBSR85WebSphere Application Server z/OS V8.5Unit 6 - WOLA

This page intentionally left blank2IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

Overview of WebSphere Optimized Local AdaptersWOLA is a means of communicating between WAS z/OS and external address spacesby transferring message blocks between virtual memory locations:ControlRegionWLMServantRegion(s)AppWOLA is this piece .CICS, IMSor Batch Prog Built on function WAS z/OS has had since thevery early daysAllows and coordinates this cross-memoryexchangeProvides the higher-level interface to thelower-level exchangeProvides the infrastructure code for use withCICS and IMSRegistration 3IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

RegistrationAn important key concept is "registration" . the construction of the cross-memorylinkage into the WAS z/OS application server:ControlRegionServantRegion(s)WLMServes as the cross-memory"pipe" over which exchanges occurAppRegistration is really a set of control blocks that permits andcontrols the specific cross-memory exchangesCICS, IMSor BatchProgThe outside address space always registers into the WAS z/OSserver, never the other way aroundThe interaction between CR and SR is the same as for any form ofinputAny given WAS z/OS server may have multiple registrations into itRegistration is accomplished in several ways: A supplied CICS control transactionThe BBOA1REG APIOutbound vs. Inbound 4IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

"Outbound" and "Inbound"WOLA is bi-directional. The key to "outbound" vs. "inbound" is thinking about whoinitiates the conversation . or, what program invokes the other program.OutboundWAS z/OS AppServerCICS, IMS or BatchProgAppJava program invokes "outbound"Uses supplied JCA resource adapterWOLA JCAResourceAdapterWOLASupportImplementation in external A/S dependson system - CICS, IMS or BatchInboundWAS z/OS AppServerCICS, IMS or BatchAppProgCOBOL, C/C , Assembler or PL/IUses WOLA APIsWOLASupportWOLAAPIsInvokes "inbound" to WAS EJBTo target EJB it looks like IIOPWOLA Information 5IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

Source of Information on WOLAIn addition to the InfoCenter, which has many valuable reference articles, the WP101490Techdoc is ATS's central location for WOLA-related ter/wasinfo/v8r0/index.jspInfoCenter cdat f/WebIndex/WP101490TechDocsWP101490Quick Start GuideIntroduction to WOLAHistory of Updates to WOLANative API PrimerYouTube Video URL PDFWOLA is a functionally richfeature of WAS z/OSIn this Unit we'll cover theessential frameworkIn the hands-on lab you'll useWOLA with CICS and BatchOutbound to CICS 6IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

Outbound to CICSUsing the Supplied CICS Link Server Task7IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

The WOLA Infrastructure Components for CICSWAS z/OS supplies a few key components that install into a CICS region so it may useWOLA to communicate with WAS z/OS:BBOC3270CICS Region4Utility TranDirect Program Link (DPL)2Application ServerWAS z/OSControlRegionWOLA3BBO BBO#Link Server TaskInvocation TaskTRUETask Related User ExitTarget CICSProgram11. CICS Task Related User Exit (TRUE)This provides the essential low-level connectivity to WAS using the cross-memoryservices provided by WOLA.ServantRegion(s)2. BBO Link Server TaskApplication3. BBO# Invocation TaskServes as receiver of WOLA calls from WAS into the CICS regionPerforms the DPL to the named CICS program. Plays a role in security (more in a bit)4. BBOC Control TransactionA 3270 application useful for things such as starting the link server taskEnabling in CICS 8IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

Enabling WOLA in CICS RegionThe following diagram summarizes the steps. The InfoCenter article has iles/default/bin/copyZOS.shcopyZOS.sh OLASAMPS 'USER1.WAS8.WOLA.SAMPLES'copyZOS.sh OLAMODS'USER1.WAS8.WOLA.LOADLIB'FB 80USER1.WAS8.WOLA.SAMPLESCSDUPDATUpdates the CICS CSD with the WOLA programs, transactions and screen mapsDFHPLTOLAdds program to PLT to initialize WOLA TRUE at CICS startupCICS start procedure//DFHRPL////InfoCenter9DD DSN &CICSDS.SDFHLOAD,DISP SHRDD DSN SYSS.CICS.LOADLIB,DISP SHR:DD DSN USER1.WAS8.WOLA.LOADLIBLIBRARYtdat enableconnectorcicsIBM Americas Advanced Technical SkillsGaithersburg, MDUSER1.WAS8.WOLA.LOADLIBEnable WOLA in WAS 2012 IBM Corporation

Enabling WOLA in WAS z/OSJust a few relatively easy steps to begin using WOLA from an application server:Two scope cell environment variablesWAS DAEMON ONLY enable adapter 1ola cicsuser identity propagate 1InfoCenterRARCFcdat olacustpropola.rarFound in the /installableApps directorySimple connection factory . no native librarypath, no custom properties to start withWill require a restart ofthe entire WAS cell topick up these changesThe installation of this RAR fileis like any JCA RAR fileWAS z/OS SAF ProfileCB.BIND.Z9*InfoCenter10 Grant CICS ID READ, or Make profile UACC READtdat enableconnectorIBM Americas Advanced Technical SkillsGaithersburg, MDStarting Link Server Task 2012 IBM Corporation

Starting the WOLA Link Server Task in CICSThis performs two roles -- it initates the registration into the WAS server, and it preparesthe Link Server to accept requests from the application in WAS:BBOC3270Utility TranOperationRegister NameCell SHORTNode SHORTServer SHORTBBOC START SRVR RGN CICSXREG DGN Z9CELL NDN Z9NODEA SVN Z9SR01SVC *Accept anyservice nameWAS ServerApplication4MNC 1MXC 10TXN NSEC NREU saction?PropagateSecurity?Reuse BBO#?CICS Region35TRUEBBO 1267CICSProgramBBO#8See notes for explanation of numbered blocksInfoCenter11rdat cicsJava application considerations IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

Java Application ConsiderationsFor outbound use of WOLA to CICS using the Link Server Task the followingconsiderations come into play:ApplicationServlet or EJBola.rarCF JNDI eis/olaContext ctx new InitialContext();ConnectionFactory cf1 Impl csi new ConnectionSpecImpl();csi.setRegisterName ("CICSXREG");RegistrationCICSXREGTRUEBBO /BBO#Connection con cf.getConnection(csi);CICS ProgramInfoCenter123Interaction int con.createInteraction();InteractionSpecImpl isi new );MYPROG12int.execute(isi, data);4Either COMMAREA or CICS channeland container. If channel andcontainer, see InfoCenter rdat cicstdat connect2wasapp, tdat useoutboundconnectionIBM Americas Advanced Technical SkillsGaithersburg, MDRA failover 2012 IBM Corporation

Using Resource Failover with WOLA Outbound to CICSIn many ways this is just like what we saw with resource failover earlier. But there's afew important things to note about making this work properly:Connection Pool Custom PropertiesalternateResourceJNDIName eis/ola-altfailureThreshold n attemptsresourceAvailabilityTestRetryInterval n secsfailureNotificationActionCode 1, 2 or 3ApplicationServlet or gistrationCICSXREGCICSYREGSet the RegisterName as acustom property of the CF,not in the applicationprogram as we saw earlierFailover custom properties same as we saw for JDBCand JCA resource connectionsSame properties, settings and behaviorThe registration into the WAS server must existahead of timeCICSXCICSXCICSYCICSYRegistration is always performed from external space into WAS. For CICS andWOLA, start Link Server in each CICS region ahead of usageSet RegisterName custom property on each CF toname the registration to communicate overPermits different registration names to be used transparent to applicationRound-robin 13IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

V8.0.0.1 and WOLA Round-RobinThe 8.0.0.1 fixpack brought new WOLA function, including ability to round-robinbetween multiple CICS regions registered into the server with the same name:Environment Variableola locate service search algorithm1The last external addressspace to register in gets work2Round-robin across likenamed registrationsWebSphere ApplicationServer z/OS V8.0.0.1ApplicationCommon Client InterfaceOLARARCICS RegionWOLA RegistrationName AAAWOLA RegistrationName AAATargetServiceCICS RegionTargetServiceFor calls outbound from WAS to external address spaceRegistration names must be identicalTargeted service must be present in address spacesparticipating in the work distribution14IBM Americas Advanced Technical SkillsGaithersburg, MDAny supported externaladdress space, not just CICSTX, Security summary 2012 IBM Corporation

Summary of Transaction and Security SupportThe following picture summarizes the support for TX and security:WAS z/OSCICSTransaction 2PCSecurity ID on WAS ion NoneSecurity No ID PropagationWOLAWOLAAPIsAPIsBypass LinkServer formaximumperformanceTransaction 2PCSecurity Region ID orApplication User IDWOLAWOLAAPIsAPIsInboundThe registration into WAS must have the appropriateTXN and SEC settings to support propagation of globaltransaction and propagation of security identityInbound? 15IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

Inbound to WAS from CICS?It is possible to have a program in CICS invoke a Java service in WAS z/OS usingWOLA. It implies the use of the WOLA native APIs:CICS RegionOther CICSProgramsThe TRUE is still neededAlways needed in CICS because it provides the fundamental WOLA functionLink Server Task not usedLink Server task is for outbound WAS-to-CICS, not inbound to WASRegistration into WAS server must be presentCICSProgramWOLAAPIsTRUEAccomplish with BBOC REGISTER or BBOA1REG native APICICS program must use WOLA APIsNote the concept of a "bridge" program that shields other CICS programs fromhaving to understand the APIs. We'll explore those APIs nextThe ola.rar adapter not usedThat's for outbound calls . general WOLA support used for inbound callsRegistrationTarget must be stateless EJBAnd it must implement using the supplied WOLA class filesApplicationStateless EJBWAS ServerThis is just like what an external batchprogram would use. We'll exploreinbound from batch next . keep in mindsame lessons apply to inbound from CICSBatch 16IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

Inbound from BatchUsing the native APIs of WOLA17IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

Essentials of Batch Program Use of WOLARelatively simple setup, but there is a bit more exposure to the programming interfacesof WOLA:Eclipse Toolingi.e. IBM Rational Application DeveloperJob Control Language (JCL)2ola apis.jarSTEPLIB DD DSN hlq.OLAMODSINPUTDD DSN hlq.datasetOUTPUT DD DSN hlq.dataset./util/zos/OLASamples/libBatch Program1WAS EJBCOBOL, C/C ,High Level Assembler, PL/IBBOA1REGBBOA1INVHome InterfaceBBOA1URGRemote Interface4WOLA APIs within batchprogram structure3WOLA Native ModulescopyZOS.sh, specify OLAMODSInfoCenter18cdat olaapis, tdat useola in step2IBM Americas Advanced Technical SkillsGaithersburg, MDApplicationStateless EJBexecute()input: byte arrayoutput: byte array5OtherApplicationsThis WOLA-aware EJB becomesa "bridge" to other EJBs unawarethat WOLA is in the pictureAPI InfoCenter 2012 IBM Corporation

The WOLA Native APIs InfoCenter ArticleAn incredibly useful InfoCenter article that details all 13 of the native APIs, includingparameters and return code / reason code descriptions13 APIs plus an internallink to JCA adapter APIsParameter map (with full descriptions following)Return Code / Reason Code descriptions for each APIAPIs that start with BBO*are 31-bit callable; BBG*are 64-bit callableA wonderful reference article, but it doesn'thighlight how easy using the APIs can be .InfoCenter19cdat olaapisSimplest use IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

The Simplest Inbound Use of Native APIsThere are 13 APIs, but that doesn't mean you have to use all 13 .Start13 APIs as listed inthe InfoCenter INVBBOA1SRVBBOA1REGRegisters into the WAS z/OSapplication serverBBOA1INVInvokes the named target EJB, passesin input data and receives back resultsMore?BBOA1URGUnregisters from the WAS z/OSapplication serverEndWhat are otherAPIs used for?Assumptions 20IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

BBOA1INV Makes Some AssumptionsTo keep the BBOA1INV API simple to understand and simple to use, it makes someassumptions. Explaining this will begin to surface why the other APIs exist .BBOA1INVInvokes the named target EJB, passesin input data and receives back resultsHome InterfaceApplicationRemote InterfaceStateless EJBexecute()input: byte arrayoutput: byte arrayAssumptions Made . Program control held until WAS repondsIn other words, it operates synchronously . invoke, wait for response, process response Connections returned to pool each timeWhich implies a little bit of extra overhead to get the connection each time The maximum response length is predictableYou set the maximum response length as an input parameter on the APIIf response back is unpredictable it means you'll need more granular controlThis suggests WOLA provides "basic" APIs and "advanced" APIsAPIs categorized 21IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

13 APIs CategorizedThe organize around inbound, outbound, basic and GETBBOA1INVBBOA1SRVBBOA1REGRegistersOutbound BasicBBOA1INVBBOA1SRVInvoke EJBHost serviceInbound AdvancedBBOA1SRPBBOA1CNGGet connectionSome APIs appear inmultiple categoriesSend responseBBOA1CNRRelease connectionBBOA1SRQSend requestGet responseBBOA1CNROutbound AdvancedBBOA1RCAReceive anyBBOA1GETBBOA1RCSReceive specificBBOA1CNGRelease connectionGet responseGet connectionBBOA1RCLBBOA1CNRBBOA1SRXResponse length22UnregistersInbound BasicBBOA1GETInfoCenterBBOA1URGRelease connectioncdat olaapisSend exceptionReal example IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

A Real-Life Example of Inbound Batch ProcessingThis involves a COBOL batch program that invokes a vendor tax calculation applicationrunning on distributed WAS and accessed with web services:WAS on DistributedIn-house TaxCalculationModule2Linked COBOLprogramsVendor WAS z/OSWOLABridgeto WASCustomer Billing Records1,000,000 with fixedcompletion windowWOLA EJB CallsTax Web ServiceNetworkCarries web servicecalls to distributedtax packageWAS on Distributed4Advanced inbound APIs with asynchronous controlAsynchronous because COBOL is single-threaded and web service call to external tax package is theslowest link. Asynchronous APIs allows COBOL to get program control immediately.150 connections kept loaded with work and busyVendor TaxCalculationPackage5Maximum connections over WOLA to EJB. All 150 loaded up with work requests. COBOL then loopsthrough array to see if response received. If so, then process back results and load that connectionwith another request. Connections kept fully busy in this manner.Multi-threaded Java then parallelized web service callsWAS z/OS and WAS distributed are multi-threaded. Given sufficient processing capacity, the workrequests from COBOL may then be handled in a parallel execution fashion.23IBM Americas Advanced Technical SkillsGaithersburg, MDPrimer 2012 IBM Corporation

WP101490 Native API "Primer"Provides a step-by-step introduction to the use of the native APIs with COBOL:Logical diagramsof API usageCompanion PDF withdetailed step-by-stepinstructionsWorking codeillustrationsZIPZIP containing COBOLprograms and aWOLA-enabled sampleEAR file applicationWhen you're ready to begin usingthe native APIs, this "Primer"will assist you in understandinghow the APIs are used8.0.0.1 24IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

New in V8.0.0.1"Development Mode" using the Proxy Application25IBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

Development Mode - Outbound ApplicationsThe focus here is on developing and testing WOLA outbound applications without thedeveloper needing direct access to a z/OS systemWAS z/OSWAS for DistributedCICS(or IMS, Batch)ApplicationUnder Dev/TestWOLAProxyNetworkola.rarand CFFlows RMI/IIOP toProxy on z/OSola.rarand CFTargetProgramInfoCenter"Local Node"InfoCenter"Remote Node"Connection Factory Custom PropertiesRemoteHostname Where WOLA Proxy deployedRemotePort ORB port for bootstrap processRemoteJNDIName Of WOLA Proxy EJBLimitations: Can not participate in global transaction 2PC Can not assert distributed WAS thread ID up to z/OS.InfoCenter26Java developer writesapplication to CCI in theWOLA JCA resource adapterjust as if the application wasdeployed on WAS z/OScdat devmode overviewIBM Americas Advanced Technical SkillsGaithersburg, MDInbound 2012 IBM Corporation

Development Mode - Inbound ApplicationsLet's take the reverse . the case where you wish a native z/OS program to make aninbound call to a target EJB running in WAS. Can EJB be on WAS distributed? Yes .CICSWAS z/OS(or IMS, Batch)CallingProgramWOLAProxyWOLAAPIsWAS DistributedNetworkFederated namespacesor operating withinsame cellWOLA Native ModulesWOLA API developer writes as if target EJB isin the WOLA-attached WAS z/OS serverOne parameter difference - requesttype on BBOA1INV or BBOA1SRQset to "2" (for remote EJB request) rather than "1"EJB Developer develops stateless EJB withWOLA class libraries as if deployed on z/OSInfoCenter27cdat ola remotequestIBM Americas Advanced Technical SkillsGaithersburg, MD 2012 IBM Corporation

WAS z/OS AppServer CICS, IMS or Batch Prog WOLA Support Java program invokes "outbound" Uses supplied JCA resource adapter Implementation in external A/S depends on system - CICS, IMS or Batch Outbound App WAS z/OS AppServer CICS, IMS or Batch Prog WOLA Support COBOL, C/C , Asse

Related Documents:

WebSphere Application Server WebSphere MQ Use the most appropriate protocol C .net Java C JMS COBOL Java Jacl JMS Jython Web-Sockets C# HTTP WebSphere Application Server is a fully compliant Java Enterprise Edition (JEE) application server. The Java Message Service (JMS) is the JEE application messaging protocol. WebSphere MQ provides a fully

IBM WebSphere Portal Version 5 Family Enable WebSphere Application Server IBM HTTP server WebSphere Portal Server Out-of-the-Box Portlets Collaboration Services API Portal Toolkit WebSphere Translation Server WebSphere Studio Site Developer Content Management Personalization Portal Document Manager

examples of WebSphere Application Server system configurations. v “Appendix. The library for WebSphere Application Server” on page 85 provides a complete list of the documentation available with WebSphere Application Server. Related information For further information on the topics and software discussed in this manual, see the following .

In the three volumes of the IBM WebSphere Portal V4.1 Handbook, we cover WebSphere Portal Enable and Extend. The IBM WebSphere Portal V4.1 Handbook will help you to understand the WebSphere Portal architecture, how to install and configure WebSphere Portal, how to administer portal pages using WebSphere Portal; it will also discuss the

Software Services for WebSphere (ISSW) team. Our job is to help clients fully exploit our products, such as IBM WebSphere Application Server, WebSphere Portal Server, WebSphere Commerce Server, and WebSphere Process Server. We are often involved in proof of tech-nology and head-to-head bake

Figure 2 WebSphere Manages the Middle Tier in a Three-Tier Model One of the WebSphere products, WebSphere Portal, manages a variety of enterprise applications and supports application development and delivery. In the Lean Retail WebSphere Solution, content development and document management functions of WebSphere Portal were tested.

This edition applies to IBM WebSphere Application Server V6.1, IBM WebSphere Application Server Network Deployment V6.1, and IBM WebSphere Application Server for z/OS V6.1. Note: Before using this information and the product it supports, read the information in "Notices" on page xv.

the entire WebSphere Application Server domain, including multiple nodes and servers. Each node can contain one or more WebSphere Application Servers. Each server organizes PMI data into modules and submodules. 4 IBM WebSphere Application Server, Version 5: Monitoring and Troubleshooting