The mysterious Eval Mainframe writes:
>I just want some honesty and details from
>the field.  I want to be ready for what things can bite as part of the
>switchover.  White papers and vendor promo are just part of the story.
>Currently linux/dell with lots of racks.

We're all intrigued about your identity since anonymous guests aren't too
common around here.  Forgive the hazing ritual. :-)  Hopefully you'll
emerge soon to reveal all. :-)

I work for the Blue Place, so I'm familiar with quite a few migrations of
multi-tier J2EE applications to the mainframe. Here are some suggestions
about how to anticipate and prevent "things that can bite," in no
particular order:

1.  IT people of any stripe tend to get possessive and parochial unless
well managed.  In particular, you don't want to have a "my system" / "your
system" dynamic at work, or a "loss of control" issue.  For example, I'm a
strong advocate of providing ready, easy access to at least one
test/development LPAR to the application development team -- and for
backing that up with a cooperative, understanding operations person eager
to help them.  Developers need this to do their jobs, on any platform, so
you don't want to skimp on that.  IBM's pricing terms are quite good, I
think, for supporting that concept.

2.  In multi-tier applications where there is split responsibility, e.g.
database administrators and application developers, it's very common to
have "it's your fault"/"no, it's your fault" contention.  Pulling
everything into a single tier (mainframe) does tend to help soothe those
issues since it can be easier to identify exactly where bottlenecks and
problems are within all those tiers.  I would take that further and
recommend good end-to-end monitoring.  Most mainframes have at least
something, but I'd review that to make sure it's going to encompass the
J2EE tier as well.  ITCAM is one example product if you don't have one.

3.  Code introspection and profiling is really important.  It's likely that
your development tool (e.g. Rational Application Developer) has profiling,
but are the developers using it?  Do they know how to use it?  You'll want
something analogous on the server side, e.g. ITCAM.

4.  It can be a little bit surprising to new developers that, in such a
highly virtualized environment, the mainframe team will actually measure
things like CPU and memory and look at code efficiency.  That's how you get
scalable, high performance systems.  You can certainly run piggish code,
but the ops people are going to (rightly) demand at least a certain amount
of professionalism and excellence in what gets delivered.  The first time
you go through this you'll probably want to have a good person from IBM to
take a preliminary look at your code and suggest ways to tune.  I've yet to
run into an application that didn't benefit from that, and usually
substantially.  It benefits every platform, but it particularly benefits
the thoroughly virtualized one (i.e. the mainframe) because any CPU cycle
you can return to the pool is a cycle that someone else can use.  The
mainframe will contain the pig, just like bouncers at a nightclub, but it's
still a good idea to be polite.

After a tuning round or two the developers even get enthusiastic about this
concept, believe it or not.  I've heard of places that actually pay bonuses
to developers for code efficiency.

Believe it or not you can also de-tier the stress testing servers if you've
got those.  Rational Performance Tester for z/OS is available, an HTTP(S)
Web stress testing tool.  A mainframe can stress test itself, believe it or
not, and generate predictable, reliable measurements.  (The wonders of
LPARs and PR/SM.)  The tool can also stress test distributed servers since
OSA Express is an incredibly efficient and potent IP traffic generator.

5.  Don't even think about running non-trivial J2EE workload without a zAAP
(assuming z/OS here, which is IMHO the way to go now that zAAPs are
available).  Throw as much zAAP as you can configure on the machine until
your zAAPs soak up as much workload as z/OS will give them.  Before you get
the zAAP z/OS (1.6 and above; and prior with a downloadable tool) can tell
you how much zAAP benefit you can get.

6.  Run with at least two servants at least in production for anything you
care about.  You've got the world's most highly available and reliable J2EE
machine, so don't turn off that wonderful high availability capability.
Test the failure of a servant (simulating an abend) and the automatic
servant restart process.

7.  DB2 DBAs won't be thrilled about dynamic SQL if that's what your
developers use (probably).  Whatever.  It's a fact of life.  Try to give
them some help to manage those incoming database requests, like SQL
performance analysis and query monitoring tools, if they don't have it.
The developers, over time, should look at static SQL (SQLJ) -- it's
actually very easy to program.  Regardless, ask your developers to pass
some data through the accounting strings on the JDBC connections.  (There
are some methods defined to pass data over the connection -- you can pass
things like server name, end user ID, application name, application
version, etc.)  If this information gets passed it'll help the DBAs
understand what's going on in "their" database and make them a whole lot
more helpful and useful in supporting the application development team.
Most standard DB2 monitoring products should be able to pick up these
strings.

8.  Initially you'll probably find out that your security architecture (if
you have one) in your multi-tier application is terrible. :-)  And then
you'll decide it's probably a good idea to improve it over time.  For
example, WebSphere and DB2 have been able to cooperate much better for the
past couple years, so now you don't have to make the whole WebSphere
application (or server) a fully trusted entity to DB2, with a single access
profile.  You can now have DB2 handle authorization while the WebSphere
layer handles the authentication, or DB2 can do both (re-authenticate and
authorize), for each and every database access and update.  This is a
really good idea, so keep heading in that direction.  You'll also want to
try to fold back into a single directory, i.e. your mainframe security
system, e.g. the z/OS Security Server, over time.

9.  You may wish to decouple the WebSphere upgrade schedule from upgrades
to other LPAR components (z/OS, CICS, DB2, etc.)  The Java developers tend
to have a different pace at which they want things like WebSphere patches,
point releases, etc. -- a higher velocity.  Make sure your system
programmers know that and are prepared to deal with that, especially early
on as they gain experience.  Some places even use separate "WebSphere
LPARs," occasionally even with a completely different level of z/OS as
other z/OS LPARs, in order to provide a different service velocity.  There
are distinct technical advantages to running WebSphere in the same LPAR as
DB2, CICS, IMS, MQ, etc. if your applications are accessing those
resources, so there are pros and cons to this.  I've seen both, even within
the same company.

10.  Keep well on top of IBM's patches and upgrades for WebSphere and Java,
including "PSP buckets."  Things move fast in the Java world.

11.  HTTP session persistence becomes rather more practical on z/OS
same-LPAR, IMHO.  Consider turning that on selectively, if you need it.
It's a nice feature.  This feature means that any application or servant
abend will not cause any interruption to users.  If they're five Web pages
deep into an ordering application, WebSphere and DB2 will cooperate to
maintain that user's state and transfer state to a surviving servant for
continuing processing onto page six.  Very cool stuff, especially for high
availability call centers.  It requires a bit of system processing power to
keep it going, but it's worth it for certain applications.

12.  Take advantage of IBM.  A lot.  For example, WBSR6 and WSW06 (course
codes) are free classes IBM offers fairly often.  When they're scheduled,
put a couple people on a plane to go.  Also, build some lab contacts over
time between your technical people and IBM.  They're quite valuable.

13.  Use the JDBC Type 2 driver if you can.

14.  This stuff really does work.  You can move an EAR file from the
WebSphere Test Environment right up to WebSphere Application Server for
z/OS and it runs.

Hope that helps.

- - - - -
Timothy Sipples
IBM Consulting Enterprise Software Architect
Specializing in Software Architectures Related to System z
Based in Tokyo, Serving IBM Japan and IBM Asia-Pacific
E-Mail: [EMAIL PROTECTED]
----------------------------------------------------------------------
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

Reply via email to