Ed Gould wrote:
On Nov 17, 2007, at 11:05 PM, Joel C. Ewing wrote:
We don't turn REXX or batch TMP loose as a general tool for
Applications development to write code for production batch, but batch
REXX, including batch REXX that runs in batch TSO or batch ISPF
environments, has been frequently used by Technical Services to
quickly implement a number of simple utilities needed by Applications
Development. These utilities are documented and made available to
application programming for use in production batch, and if they
break, Tech Services does the debugging. We have not found any
significant problems in using batch TMP in this way, as properly
disciplined REXX code can be restartable, can check for internal
failures and reflect failures back to the step completion code if
necessary, and issues with a job scheduler or job restart software can
be avoided. In many cases these utilities that run under TMP may
actually do a better job of providing meaningful diagnostic messages
than if implemented in some other way - it seems to take much less
effort to provide meaningful text diagnostic messages in REXX, so it's
more likely they will be implemented.
Before programmers started using the DB2 Call Attach Facility (CAF) to
handle the connect to the appropriate DB2 subsystem, the only way to
execute a program using DB2 in batch was to run it under the TSO DSN
Command processor under TMP in batch TSO. As long as the application
program was implemented in a high level language with a runtime
environment that provides reasonable debugging information, the fact
that the runtime environment is under TMP really did not have any
significant impact on difficulty of problem resolution.
One thing which may make this practical in our environment which I
gather may not be true in yours - our production support people are
the same people who do application development. We find receiving
0300 problem calls provides strong incentive to Applications
Development (and to Technical Services) to design things for
reasonable diagnostics and restartability, and to promptly resolve any
deficiencies in those areas.
Joel,
Interesting. I guess that works in your environment. In the environments
I have worked in there is too much political stuff going on and the
finger pointing gets rather well pointed. (sorry about the pun).
I have always worked in environments that the production control is
separate and distinct from support. No programmers (unless they got paid
for OT) wants to be called at 0000 to handle space abends and the like
so production support is always there to handle mundane issues. As a
side issue most of the time that I have seen the day to day issues are
really better handled by production control people. There are some
exceptions of course but most of the time the documentation turned over
at turnover time is really gone through with a fine tooth comb and
acceptance only occurs when the people who will be handling the
jobstream are comfortable with it. That is NOT to say they are right 100
percent of the time but pretty close and the few percent they aren't is
because of either a rare fluke or the doc was in error (most likely cause).
Point taken on the DB2 issue (or other DB issues) there probably isn't a
schedular package in the world that can handle those.
Also, I have never worked in an environment where (except for extremely
minor programs) TS has written essentially application code. The one
exception I can think of was 30+ years ago where there was a database
and a program was written so that the applications people could call the
code for read/write access to the database. There was (I think) never
any issue of issues because it was extremely simple interface and
handled errors quite well. In the several years I was there I don't
recall a error ever happening in that code. I wrote a few utility type
programs but those were more of conversion type programs where
applications types never saw the code. The operators were in a sense my
end users for those programs.
I have written exits and such where the application types doesn't invoke
them per se but is on the receiving end of their submissions. So I
supported them but in a semi passive way. AFAIK none of my code has ever
broken. The exits may have had to be recompiled or changed because IBM
does change parameter lists or macros change or JES changes.
None of the places I have ever worked do not allow products to be put in
a production jobstream unless there is 24x7 support from the vendor
PERIOD and only then under a really stringent set of "ifs".
I have worked on both sides of the Atlantic and programmers in the
states are somewhat more accepting of midnight calls (exceptions exist),
so it may well be the area you are from that make exceptions to the
normals.
Ed
...
Ed,
I gather from remarks I have heard at SHARE and elsewhere that our data
processing environment may be rather unique - one reason why I have
stayed here for almost 30 years. Our environment is very non-Dilbert.
At least within the data-processing subsidiary, managers are not PHB
Business majors, but have Information Processing backgrounds and have
come up through the ranks and understand the technical side of of the
data processing business. There has been a tradition here of investing
more in people and less in hardware, and that is reflected in a lower
turn-over rate than is typical in the industry. All management positions
are filled by promotion from within.
We don't have programmers, we have Systems Analysts/Programmers. Their
job description is not just to implement applications, but to work
directly with the various corporate departments, help them determine
what they need to support their customers, design application specs,
implement the application, and support, improve, and maintain the
resulting applications. A significant part of their knowledge base
involves understanding the processes and problems of the corporate
department they support.
It may sound trite, but I really believe the majority of our SA/P's are
quite conscious that their function is not to produce software
applications but to support the ability of the corporation to function
and to support our corporate customers, who are the ultimate source of
all revenue. Those SA/Ps doing application development deal directly
with those in the corporate departments they support, and if there are
processing problems that aren't being addressed, they are the ones that
ultimately get involved in finding a solution. Here the foreign concept
would be NOT getting those most experienced with the application
involved in resolving a night production problem which could result in
some critical online application being delayed the next day. While no
one likes getting a 3 AM call, we like even less having to explain to
our users that some critical system is down because the right person
wasn't called and the fix either took too long or a wrong fix caused
additional problems. We have an On-Call application (written by
Technical Services) that implements a rotation for off-hours calls and
tracks who is on call for batch job streams, on-line applications, and
various Technical Service support (for generic system or vendor product
problems, or if the SA/Ps encounter something for which they just need
our help). It is required that even on holidays there be someone
reachable, at least for remote support, in the event of a application or
system problem. The Operations staff will attempt to resolve a limited
number of DD space problems and step restarts caused by tape drive
failures, provided the job step is documented as restartable, but beyond
that the application people will generally get involved (unless the job
really is non-critical, in which case it will be marked in the on-call
system as "no night call").
Technical Services here has traditionally been a multi-faceted job,
doing some things that would probably be impossible in a place like
Chicago or NYC where having a non-union person do a "union job" can
result in problems with the unions. In the first decade I was here we
did whatever was necessary to support the hardware end of DP and
minimize the time for hardware changes: install connectors on power
cables and make connections to equipment and live breaker boxes in the
computer room; run and connect channel cables and EPO cables under the
raised floor; design and install runs of coax and telco 25-pair cables
(for data communications lines) within multiple buildings owned by the
corporation or in buildings owned by customers, including runs across
alleys, under floors, in ceiling crawl spaces, through 1 foot concrete
walls, between floors, etc.; physically transport and install 3270
devices, remote 3276 controllers, 3174 controllers, and install modems
at various sites; design, build, and install coax interface cabinets
(involved welding); design computer room equipment layouts and
physically cut the required openings in the steel-reinforced floor
tiles; and assist IBM in the physical installation of equipment. Our
Director of Technical Services was directly involved in many of these
activities as well, and the tradition of a hands-on Director who is not
above physical labor when we are under time constraints has persisted
through multiple Directors up to today. We no longer do routine
communications cabling, or power cabling, but mostly just because we
lack the time. However, the corporate data communications wiring
systems are still designed by the Network sub-section of Technical
Services, and they still handle all data communications wiring in the
computer room and in the distribution closets.
There is also a long standing tradition here of significant software
development under Technical Services. When I first came here (1978, in
Itel-DOS/VS, pre-CICS days), all on-line programs ran in a multi-tasking
online partition in a MiniTask subsystem written by the then Director of
Technical Services, who also used that as a platform to implement an
On-Line-Editor application (OLE'), which was a 3270 application used for
almost all application development and test batch submission. The same
Director also designed and wrote the communications programs that ran on
a System/1 to drive what was then our corporate communications network.
Over the years Technical Services has designed and implemented (and
supported) a number of minor utilities and some fairly major ones: A
disk-based interlock/enqueuing system using channel programming to
permit controlled updates to shared libraries by two Itel DOS/VS
systems; a source library system for DOS/VS to address many shortcomings
of native DOS/VS source libraries; several versions of compile dialogs,
which are now used for all MVS compiles to insure that all applications
development usage invokes the various compilers/assemblers with correct
options and uses library families in accordance with corporate
standards; several versions of a Library Management System, which
handles promotion of application code into protected production
libraries, with auditing; a CICS function-based security system; ISPF
applications to make various requests to Operations for production job
changes. In many cases, if Technical Services sees a generic need,
especially one that crosses application areas or that requires the
expertise of Technical Services to implement, we are given the
flexibility to implement a solution. Also, one of the roles of
Technical Services is to address issues or problems facing our
Operations staff. If our Operations department should have a processing
need, Technical Services is their default programming development
support - appropriate because their problems typically involve
interfaces to either the Operating System or to vendor products, both
our area of expertise.
While all our 3rd party vendor products have 24x7 support, in our
experience in recent years that support would be of much less use to
someone who hasn't dealt with the product enough to understand enough of
the internals and enough of the vendors product terminology to discuss
and argue the problem intelligently with the vendor. If a "new" problem
with a product is found, it is not unusual for it to take much
documentation and effort to get past the vendor's level-1-support or WAD
denials. Using the same philosophy as for application code problems, we
funnel all suspected vendor problems through those most familiar with
its installation and customization: the section of Technical Services
that installed the product. This way we can weed out all "obvious"
usage/configuration problems, possibly find a simple circumvention
without waiting on a vendor response, and if vendor contact is required,
insure we have a single contact point with the vendor.
--
Joel C. Ewing, Fort Smith, AR [EMAIL PROTECTED]
Sr Mainframe Admin, Mainframe Systems, Data-Tronics Corp.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html