ABS Goes Linux D.E.N.K. Endevor-Linux Interface. Johannes Radman 19.03.2012



Similar documents
Executing Commands on z/os through FTP. By: Philip Soldier of Fortran

z/os UNIX for all Vit Gottwald CA Technologies March 15, 2012 Session Number 10983

z/os Hybrid Batch Processing and Big Data

Linux Shell Script To Monitor Ftp Server Connection

z/os Hybrid Batch Processing and Big Data Session zba07

Compiler Forecast: Cloudy with. Cloud Computing for your z/os compilers

Using SFTP on the z/os Platform

CA Workload Automation EE r11.3 Report Server. Fred Brisard

UNIX Remote Job Entry User s Guide A. L. Sabsevitz K. A. Kelleman

CA Application Quality and Testing Tools

SPIRIT/21. Mainframe Competencies

Bookstore credit card application

TIn 1: Lecture 3: Lernziele. Lecture 3 The Belly of the Architect. Basic internal components of the Pointers and data storage in memory

DB2 for z/os: Configuring TLS/SSL for Secure Client/Server Communications

Jeffrey D. Ullman Anfang von: CS145 - Herbst Stanford University Online unter: Folien mit weißem Hintergrund wurden hinzugefügt!

Beyond the Software Life Cycle

Update to V10. Automic Support: Best Practices Josef Scharl. Please ask your questions here Event code 6262

Java Stand-alone Applications on z/os

Java on z/os. Agenda. Java runtime environments on z/os. Java SDK 5 and 6. Java System Resource Integration. Java Backend Integration

Host Communication Guide for Mainframe & Midrange Users

Field Developed Solution Catalog. Version 7.0

PRACTICAL TIPS FOR Z/OS VULNERABILITY SCANNING & PROACTIVE SECURITY MANAGEMENT

Linux Syslog Messages in IBM Director

Integrate z/vm into your z/os and Linux for System z Scheduling Environments Mike Sine IBM. Friday, February 8, 2013 Session Number: 12465

Things to Do with Rexx When You re on Z

AJAX SSL- Wizard Reference

Cross Platform Performance Monitoring with RMF XP

Kaiserslautern Mainframe Summit 2010 z/os Praxis Version

WebSphere Developer for System z

CS 2112 Lab: Version Control

FTP Secured With SSL on z/os

CA Integrated Agent Services

Using z/os to Access a Public Cloud - Beyond the Hand-Waving

CA Chorus for Security and Compliance Management

Decision Support System to MODEM communications

Software Requirements, Version 2015_01_12

SupportPac CB12. General Insurance Application (GENAPP) for IBM CICS Transaction Server

Monitoring z/vm and z/linux. Jürgen Hofmann

DB2 z/os und IBM DataStudio

Linux Overview. Local facilities. Linux commands. The vi (gvim) editor

Alert Logic Log Manager

Syntax: cd <Path> Or cd $<Custom/Standard Top Name>_TOP (In CAPS)

Unix Scripts and Job Scheduling

z/os Curriculum Job Control Language (JCL) Curriculum JES Curriculum WebSphere Curriculum TSO/ISPF for z/os Curriculum

Introduction to Running Hadoop on the High Performance Clusters at the Center for Computational Research

Programming for GCSE Topic H: Operating Systems

AnyWeb AG

Data Center Orchestration

Managing Server Component Output from WebSphere Application Server on z/os A WebSphere on z/os exclusive!

CS2720 Practical Software Development

Willkommen zum zrational Community Call. Dennis Behm, Scott Davis, Tobias Braun

Profil Ralf Seidler Stand: 11. September 2015

Configuring WebSphere Process Server & Business Process Manager V7 on z/os

Microsoft Certified IT Professional (MCITP) MCTS: Windows 7, Configuration ( )

What's so exciting about DB2 Native SQL Procedures?

SOLARIS 10 SECURITY. Technical Overview. Andreas Neuhold Systems Practice Lead Austria Sun Microsystems, GesmbH

Secure Database Backups with SecureZIP

Linux command line. An introduction to the Linux command line for genomics. Susan Fairley

Quick development of a mobile CICS application using Lua

Migrate AS 400 Applications to Windows, UNIX or Linux

VIT University Vellore , Tamil Nadu, India

Installing IBM Websphere Application Server 7 and 8 on OS4 Enterprise Linux

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

Application Map Release 2005

Paper PS04_05 ing a SAS Report to Excel C. Royce Claytor, Dominion Resources Services, Richmond, Virginia

SQL 2014 CTP1. Hekaton & CSI Version 2 unter der Lupe. Sascha Götz Karlsruhe, 03. Dezember 2013

Software / FileMaker / Plug-Ins Mailit 6 for FileMaker 10-13

mysap Supply Chain Management Solution Map Release 2005

AC500. Application Example. Scalable PLC for Individual Automation. Webserver Login Application Example With PM564-ETH. abb

Brauche neues Power Supply

Enterprise User Security

CA Workload Automation Agents for Mainframe-Hosted Implementations

Vergleich der Versionen von Kapitel 1 des EU-GMP-Leitfaden (Oktober 2012) 01 July November Januar 2013 Kommentar Maas & Peither

BMC Performance Management 2009

Using the z/os SMB Server. to access z/os data from Windows. -- Hands-On Lab Session

Automating admin tasks using shell scripts and cron Vijay Kumar Adhikari.

BRFplus Field Configuration for Portfolio Management

How To Run A Hybrid Batch Processing Job On An Z/Os V1.13 V1 (V1) V1-R13 (V2) V2.1 (R13) V3.1.1

CommVault Simpana 7.0 Software Suite. und ORACLE Momentaufnahme. Robert Romanski Channel SE

TBarCode.NET Barcodes in MS SQL Reporting Services

.OR.AT.ATTORNEY.AUCTION.BARGAINS.BAYERN.BERLIN.BLACKFRIDAY.BOUTIQUE.BRUSSELS.BUILDERS

Co:Z SFTP - User's Guide

Enterprise Content Management System Monitor 5.1 Agent Debugging Guide Revision CENIT AG Author: Stefan Bettighofer

Heterogeneous ABAP System Copy Technical Overview

Origins of Operating Systems OS/360. Martin Grund HPI

Bash shell programming Part II Control statements

Hadoop Shell Commands

Search Engines Chapter 2 Architecture Felix Naumann

Gothenburg Mainframe and Continuous Integration. Jan Marek com. CA Technologies. Session S610

Hadoop Shell Commands

Building a multi-source universe

File Manager base component

Debian GNU/Linux. Unix Sicherheit. Christian T. Steigies. Institut für Experimentelle und Angewandte Physik Christian-Albrechts-Universität zu Kiel

Introduction to the new mainframe Chapter 7: Batch processing and the Job Entry Subsystem (JES)

SFTP SHELL SCRIPT USER GUIDE

Change is Coming: z/os Mail Overview and Futures

Automated Underwriting: Threat or Opportunity? Jason Bowman, Head of Accelerated Underwriting, NA Dan Drabik, Senior Magnum Consultant

Financial Institutes. Deutsche Börse Systems. XONTRO Order Xentric Order S.W.I.F.T. Technical connection. Banking connection using LU 6.

Utilization of Hostsystem s Cross Sysplex Manager in the Swisscom IT Services. GSE z/os Expertenforum Brienz, May 2005 Thomas Ruh

Artikel-Detailinformationen

Transcription:

D.E.N.K. Endevor-Linux Interface ABS Goes Linux Johannes Radman 19.03.2012

Introduction AMOS Austria Software-Entwicklung ABS - Allianz Business System Client-Server/Portale Java C++ DB2/2 Host z/os PL1 C C++ DB2 Subversion Endevor 2

Introduction ABS Kunden Unternehmensgruppe Kunde seit Allianz Österreich Allianz Suisse Allianz Deutschland Mondial (Endausbau 27 Länder) Allianz SE Allianz Russland Allianz France 1995 2000 2006 2010 2010 2012 3

ABS Entwicklungsumgebungen ABS Core Allianz Österreich Allianz SE Mondial -> Linux -> Linux Allianz Russland Allianz France Inttest Fachtest Produktion E I R F V P 4

ABS Goes Linux ABS Plattformunabhängig IBM Lizenzkosten Pilot 2010 HP / Microfocus PL/I Source-Anpassungen Performance Tests HP-Hardware Red Hat Linux Microfocus Enterprise-Server Kostenreduktion Performancegewinn Destabilisierung 5

Source-Code-Umstellung Enterprise PL/I for z/os vs. Micro Focus Open PL/I..das können ein paar Schimpansen.. Umstellung tw. mittels PHP-Script (Judy) 1/3 der PL/1-Sourcen betroffen Umstellungsphase März 2011 November 2011 Compiler-Weiterentwicklung PKP Produktion: 3.Dezember 2011 6

Endevor-Umgebung unter Linux Integrationstest Fachtest Produktion /shared/endevor/ndvra/*/inttest/ /shared/endevor/ndvra/*/fachtest /shared/endevor/ndvra/*/prod Rexx Linux-Interface BPXBATCH via z/os Unix - langsam (SSH Randomizing Algorythmus Lösung: Krypto-Prozessor) -> AFT (Allianz-File-Transfer) Linux Shell-Scripts - ndvrgen.sh - ndvrmov.sh - ndvrdel.sh Perl Build Host vs. Linux 10% Endevor-Log 7

Generate-Prozessor //LINUXGEN EXEC PGM=IKJEFT01,MAXRC=8 //SYSPROC DD DSN=NDVRA.PROD.REXX,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSTSPRT DD DSN=&&LINUXLST,DISP=(MOD,PASS),FREE=CLOSE //AFTIN DD DSN=&&ELMOUT,DISP=(OLD,DELETE),FREE=CLOSE //SYSTSIN DD * %NDVRLINX - &#LINUX - &C1USERID - &C1ACTION - &C1PRTYPE - &C1PRGRP - &C1ELEMENT - &PROJECT - &C1ELTYPE - &C1ST 8

Move-Prozessor //LINUXMOV EXEC PGM=IKJEFT01,MAXRC=8 //SYSPROC DD DSN=NDVRA.PROD.REXX,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSTSPRT DD DSN=&&LINUXLST,DISP=(MOD,PASS),FREE=CLOSE //SYSTSIN DD * %NDVRLINX - &#LINUX - &C1USERID - &C1ACTION - &C1PRTYPE - &C1PRGRP - &C1ELEMENT - &PROJECT - &C1ELTYPE - &C1SSTAGE - &C1ST 9

Delete-Prozessor //LINUXDEL EXEC PGM=IKJEFT01,MAXRC=8 //SYSPROC DD DSN=NDVRA.PROD.REXX,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSTSPRT DD DSN=&&LINUXLST,DISP=(MOD,PASS),FREE=CLOSE //SYSTSIN DD * %NDVRLINX - &#LINUX - &C1USERID - &C1ACTION - &C1PRTYPE - &C1PRGRP - &C1ELEMENT - &PROJECT - &C1ELTYPE - &C1ST 10

REXX-Interface PARSE VAR PARMS, ON_OFF USER ACTION PRCTYP PROCGRP ELE PROJECT TYP ENVNAME TOENV /* Linux-Interface mittels Endevor-Symbol #LINUX deaktivierbar */ IF ON_OFF <> 'ON' THEN RETURN 0 /* Wenn linux oder aft inaktiv sind ENDEVOR_RC von 12 auf 8 setzen */ ENDEVOR_RC = 12 /* Endevor Activity-Log */ LOGFILE='/shared/endevor/log/'PROJECT'.'ENVNAME'.'ACT'.'TYP'.'ELE'.'USER LINUX = 'AS-AE01:3335' CODEPAGE = 'IBM-1141/IBM-1252' ROOTPFAD ='/shared/endevor/' PARSE VAR PROJECT NDVR'.'SYSTEM 11

REXX-Interface TYP3 = TRANSLATE(SUBSTR(TYP,2,3)); SELECT WHEN TYP3 = 'PLI' THEN PARSE VALUE 'pl1 pli' WITH EXT DIR WHEN TYP3 = 'INC' THEN PARSE VALUE 'inc inc' WITH EXT DIR WHEN TYP3 = 'SQL' THEN PARSE VALUE 'sql sqldml' WITH EXT DIR WHEN TYP3 = 'UNL' THEN PARSE VALUE 'sql db2unl' WITH EXT DIR WHEN TYP3 = 'JCL' THEN PARSE VALUE 'jcl jcl' WITH EXT DIR WHEN TYP3 = 'HPP' THEN PARSE VALUE 'hpp hpp' WITH EXT DIR WHEN TYP3 = 'HXX' THEN PARSE VALUE 'h h' WITH EXT DIR WHEN TYP3 = 'HDB' THEN PARSE VALUE 'h h' WITH EXT DIR WHEN TYP3 = 'CXX' THEN PARSE VALUE 'c c' WITH EXT DIR WHEN TYP3 = 'CPP' THEN PARSE VALUE 'cpp cpp' WITH EXT DIR WHEN TYP = 'ADBLOAD' THEN PARSE VALUE 'sql db2load' WITH EXT DIR WHEN TYP = 'ADB2DDL' THEN PARSE VALUE 'sql db2ddl' WITH EXT DIR OTHERWISE RETURN 4 /* Typ wird nicht übertragen */ END 12

REXX-Interface WHEN PRCTYP = "GENERATE" THEN DO LISTFILE = ROOTPFAD'/'ENVNAME'/list/'ELE'.'DIR'.lst' /* Filetransfer, Codepage-Konvertierung */ QUEUE 'SEND 'LINUX 'DD:AFTIN', ROOTPFAD'/'ENVNAME'/'DIR'/'ELE'.'EXT CODEPAGE /* Generate-Interface */ QUEUE 'CMD 'LINUX '"ndvrgen.sh' ''''USER'''', ''''NDVR'''', ''''ELE'''', ''''DIR'''', ''''EXT'''', ''''TYP'''', ''''PROCGRP'''', ''''ENVNAME'''', ''''PFAD'''' ''''SYSTEM'''', ' >'''LOGFILE''' 2>&1"' END 13

REXX-Interface WHEN PRCTYP = "MOVE" THEN DO LISTFILE = ROOTPFAD'/'TOENV'/list/'ELE'.'DIR'.lst' /* Move-Interface */ QUEUE 'CMD 'LINUX '"ndvrmove.sh' ''''USER'''', ''''NDVR'''', ''''ELE'''', ''''DIR'''', ''''EXT'''', ''''TYP'''', ''''PROCGRP'''', ''''ROOTPFAD'''', ''''ENVNAME'''', ''''TOENV'''', ''''SYSTEM'''', '>'''LOGFILE''' 2>&1"' END 14

REXX-Interface WHEN PRCTYP = "DELETE" THEN DO /* Delete-Prozessor wird intern nach Move/Generate angestossen */ IF ACTION = "MOVE"! ACTION = "GENERATE" THEN LOGFILE = '/dev/null' /* Delete-Interface */ QUEUE 'CMD 'LINUX "ndvrdel.sh' ''''USER'''', ''''NDVR'''', ''''ELE'''', ''''DIR'''', ''''EXT'''', ''''ENVNAME'''', ''''PFAD'''', '>'''LOGFILE''' 2>&1"' END 15

REXX-Interface /* Log-/List-Files lesen */ IF PRCTYP <> "DELETE" THEN DO LOG = ALLOCF("32756 32760 VB 1 1 CYL LOG") LIST = ALLOCF("32756 32760 VB 5 5 CYL LIST") QUEUE 'RECEIVE 'LINUX 'DD:LOG "'LOGFILE'"' CP_STD QUEUE 'RECEIVE 'LINUX 'DD:LIST "'LISTFILE'" 'CP_STD END 16

REXX-Interface /* swap to alternate-id - C1DEFLTS RACFUID=ENDEVOR */ "ALLOC FILE(LGNT$$$I) DUMMY" "ALLOC FILE(LGNT$$$O) DUMMY" "EXECIO 0 DISKR LGNT$$$I (OPEN)" /* execute queued commands via AFT */ AFT_RC=AFTEX() /* swap to User-ID */ "EXECIO 0 DISKR LGNT$$$I (finis)" "EXECIO 0 DISKR LGNT$$$O (open)" "EXECIO 0 DISKR LGNT$$$O (finis)" "FREE FILE(LGNT$$$I)" "FREE FILE(LGNT$$$O)" 17

REXX-Interface IF AFT_RC > 4 THEN /* Abbruch Endevor Step - AFT-Error */ RETURN ENDEVOR_RC /* Returncode aus Linux-Script */ IF PRCTYP <> "DELETE" THEN DO "EXECIO * DISKR LOG (FINIS STEM LOG." LINUX_RC = '' DO I = LOG.0 TO 1 BY -1 WHILE DATATYPE(LINUX_RC) <> 'NUM' PARSE VAR LOG.I 'rc='linux_rc REST END IF LINUX_RC > 0! DATATYPE(LINUX_RC) <> 'NUM' THEN AFT_RC = 8 /* kein Prozessor-Abbruch bei Linux-Prozessor-Fehler */ RETURN AFT_RC END 18

Generate Prozessor Unix/BPXBATCH //* File übertragen */ //USSPUT EXEC PGM=IEBGENER,MAXRC=4 //SYSUT1 DD DSN=&&ELMOUT,DISP=(OLD,PASS),FREE=CLOSE //SYSUT2 DD PATH='/u/endevor/tmp/&OMVSFILE', // PATHDISP=(KEEP,KEEP),FILEDATA=TEXT, // PATHOPTS=(OWRONLY,OCREAT), // PATHMODE=(SIRWXU,SIRWXG,SIRWXO) //SYSPRINT DD SYSOUT=* //SYSIN DD * //* BPXBATCH unter alternate-id ENDEVOR */ //LINUXGEN EXEC PGM=IKJEFT01,MAXRC=0 //SYSPROC DD DSN=NDVRA.PROD.REXX,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSTSPRT DD DSN=&&REXXLST,DISP=(MOD,PASS),FREE=CLOSE //STDOUT DD DSN=&&STDOUT,DISP=(MOD,PASS),FREE=CLOSE //STDERR DD DSN=&&STDERR,DISP=(MOD,PASS),FREE=CLOSE //SYSTSIN DD * %NDVRLINX... &OMVSFILE 19

Move/Delete Prozessor Unix/BPXBATCH //LINUXMOV EXEC PGM=IKJEFT01,MAXRC=0 //SYSPROC DD DSN=NDVRA.PROD.REXX,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSTSPRT DD DSN=&&REXXLST,DISP=(MOD,PASS),FREE=CLOSE //STDOUT DD DSN=&&STDOUT,DISP=(MOD,PASS),FREE=CLOSE //STDERR DD DSN=&&STDERR,DISP=(MOD,PASS),FREE=CLOSE //SYSTSIN DD * %NDVRLINX... //LINUXDEL EXEC PGM=IKJEFT01,MAXRC=0 //SYSPROC DD DSN=NDVRA.PROD.REXX,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSTSPRT DD DSN=&&REXXLST,DISP=(MOD,PASS),FREE=CLOSE //STDOUT DD DSN=&&STDOUT,DISP=(MOD,PASS),FREE=CLOSE //STDERR DD DSN=&&STDERR,DISP=(MOD,PASS),FREE=CLOSE //SYSTSIN DD * %NDVRLINX... 20

REXX-Interface Unix/BPXBATCH /* swap to alternate-id - C1DEFLTS RACFUID=ENDEVOR */ "ALLOC FILE(LGNT$$$I) DUMMY" "ALLOC FILE(LGNT$$$O) DUMMY" "EXECIO 0 DISKR LGNT$$$I (OPEN)" /* run BPXPATCH */ "BPXBATCH SH /u/gru2/ndvrunix.sh" parameter ZRC=RC IF ZRC > 0 THEN DO SAY "ERROR BPXBATCH RC="ZRC ZRC = 12 END /* swap to User-ID */ "EXECIO 0 DISKR LGNT$$$I (FINIS)" "EXECIO 0 DISKR LGNT$$$O (OPEN)" "EXECIO 0 DISKR LGNT$$$O (FINIS)" "FREE FILE(LGNT$$$I)" "FREE FILE(LGNT$$$O)" RETURN ZRC 21

Unix-Linux Interface case "$typ3" in PLI) ext=pl1; dir=pli;; INC) ext=inc; dir=inc;;... esac linux=endevor@as-ae01 # Zielumgebung sourcefile="/shared/endevor/$ndvr/$envname/$sys/$dir/$ele.$ext" # Linux Source if [ "$proctype" = "GENERATE" ]; then putlinuxfile "/u/endevor/tmp/$omvsfile" $sourcfile" # ICONV, SFTP ssh $linux bash -l ndvrgen.sh "$ele $dir $ext... " elif [ "$proctype" = "MOVE" ]; then ssh $linux bash -l ndvrmove.sh "$ele $dir $ext..." elif [ "$proctype" = "DELETE" ]; then ssh $linux bash -l ndvrdel.sh "$ele $dir $ext..." fi If [ "$proctype"!= "DELETE" ]; then getlinuxfile "$listfile" "/u/endevor/tmp/$omvsfile.$dir.lst" # SFTP, ICONV getlinuxfile "$logfile" "/u/endevor/tmp/$omvsfile.$dir.log" # SFTP, ICONV fi 22

Unix-Linux Interface # Codepage-Conversion, File nach Linux übertragen putlinuxfile() { iconv -f IBM-1141 -t IBM-1252 < "$1" >"$1.ascii" sftp -obatchmode=yes -b - "endevor@as-ae01"<<eof put "$1.ascii" "$2" bye EOF } # File von Linux übertragen, Codepage-Conversion, Ausgabe auf STDOUT getlinuxfile() { sftp -obatchmode=yes -b - "endevor@as-ae01" <<EOF get "$1" "$2.ascii" bye EOF [ $? -eq 0 ] && iconv -f IBM-1252 -t IBM-1141 < "$2.ascii" >"$2" [ $? -eq 0 ] && cat "$2" } 23

Linux Generate-Script # Build für Programme durchführen if [ "$ext" = pl1 ]; then mfpp... # Microfocus PL/I Preprozessor mfdb2... # Microfocus DB2 Preprozessor mfpli... # Microfocus PL/I Compiler cob... # Linker... elif [ "$ext" = "c" -o "$ext" = "cpp" ]; then db2 prep... # DB2 Preprozessor [ "$ext" = "c" ] && cc... # C Compiler [ "$ext" = "cpp" ] && g++... # C++ Compiler... else # nur Source Management fi 24

Linux Move-Script # Source und Output-Komponenten kopieren copydir="$dir list" If [[ "$dir" =~ '^(pli c cpp)$' ]]; then copydir="$copydir dbrm obj load debug" fi for i in $copydir ; do files=`find $pfad/$quellenv/$i/ -iname "$member.*" -type f` for file in $files; do cp -v $file $pfad/$zielenv/$i/ done Done 25

Linux Delete-Script # Source und Output-Komponenten löschen deldir="$dir list" If [[ "$dir" =~ '^(pli c cpp)$' ]]; then deldir="$deldir tmp dbrm obj load debug" fi for i in $deldir ; do files= `find $pfad/$i/ -iname "$member.*" -type f` for file in $files; do rm -f -v $file done done 26

Linux Logfile 27

Linux Logfile TSO NDVRLOG GRU2 -> ls -ggtc /shared/endevor/log/*.gru2 28

Linux Logfile TSO NDVRLOG LENJRAL -> ls -ggtc /shared/endevor/log/ndvrc*.lenjral.* 29

Linux Logfile KTX 30

Linux Logfile 31