0

I have a Java EE application that resides on multiple servers over multiple sites.

Each instance of the application produces logs locally.

The Java EE application also communicates with IBM Mainframe CICS applications via SOAP/HTTP.

These CICS applications execute in multiple CICS regions over multiple mainframe LPARS over multiple sites.

Like the Java EE application the CICS application produces logs locally.

Attempting to trouble shoot issues is extremely time consuming. This entails support staff having to manually log onto UNIX servers and or mainframe LPARS tracking down all related Logs for a particular issue.

One solution we are looking at is to create a single point that collects all distributed logs from both UNIX and Mainframe.

Another area we are looking at is whether or not its possible to drive client traffic to designated Java EE servers and IBM Mainframe LAPS right down to a particular application server node and a single IBM CICS region.

We would only want to do this for "synthetic" client calls, e.g. calls generated by our support staff, not "real" customer traffic.

Is this possible?

So for example say we had 10 UNIX servers distributed over two geographical sites as follows:-

Geo One:    UNIX_1, UNIX_3, UNIX_5, UNIX_7, UNIX_9
Geo Two:    UNIX_2, UNIX_4, UNIX_6, UNIX_8, UNIX_0

Four IBM Mainframe lpars over two two geographical sites as follows:-

Geo One:    lpar_a, lpar_c
Geo Two:    lpar_b, lpar_d

each lpar has 8 cics regions

cicsa_1, cicsa_2... cicsa_8 
cicsb_1, cicsb_2... cicsb_8 
cicsc_1, cicsc_2... cicsc_8 
cicsd_1, cicsd_2... cicsd_8 

we would want to target a single route for our synthetic traffic of

unix_5 > lpar_b, > cicsb_6

this way we will know where to look for the log output on all platforms

UPDATE - 0001

By "synthetic traffic" I mean that our support staff would make client calls to our back end API's instead of "Real" front end users.

If our support staff could specify the exact route these synthetic calls traversed, they would know exactly which log files to search at each step.

These log files are very large 10's of MB each and there are many of them

for example, one of our applications runs on 64 UNIX physical servers, split across 2 geographical locations. Each UNIX server hosts multiple application server nodes, each node produces multiple log files, each of these log files are 10MB+. the log files roll over so log output can be lost very quickly .

Hector
  • 4,016
  • 21
  • 112
  • 211

1 Answers1

1

One solution we are looking at is to create a single point that collects all distributed logs from both UNIX and Mainframe.

I believe collecting all logs into a single point is the way to go. When the log files roll over, perhaps you could SFTP them to your single point as part of that rolling over process. Or use NFS mounts to copy them.

I think you can make your synthetic traffic solution work, but I'm not sure what it accomplishes.

You could have your Java applications send to a synthetic URL, which is mapped by DNS to a single CICS region containing a synthetic WEBSERVICE definition, synthetic PIPELINE definition, and a synthetic URIMAP definition which in turn maps to a synthetic transaction which is defined to run locally. The local part of the definition should keep it from being routed to another CICS region in the CICSPlex.

In order to get the synthetic URIMAP you would have to run your WSDL through the IBM tooling (DFHWS2LS or DFHLS2WS) with a URI control card indicating your synthetic URL. You would also use the TRANSACTION control card to point to your synthetic transaction defined to run locally.

I think this is seriously twisting the CICS definitions such that it barely resembles your non-synthetic environment - and that's provided it would work at all, I am not a CICS Systems Programmer and yours might read this and conclude my sanity is in question. Your auditors, on the other hand, may simply ask for my head on a platter.

All of the extra definitions are needed (IMHO) to defeat the function of the CICSPlex, which is to load balance incoming requests, sending them to the CICS region that is best able to service them. You need some requests to go to a specific region, short-circuiting all the load balancing being done for you.

cschneid
  • 10,237
  • 1
  • 28
  • 39