Hi Java Guru...
I'm developing a Java Application that communicates with a mainframe program. One of the requirements is to log all
failed transactions. Our current design is
1. Before the the data is end to the mainframe application, the data is written to a file.
2. The confirmation that the transaction completed will be asynchronously send to the Java program. Once the
confirmation is received, the data is deleted from the file.
With this design, we have all the failed transaction logged into the file.
The requirement for the system is to be able to handle more than 200 transactions per second.
With the current design, the system can't handle more than 200 transactions per second because
of the I/0 operation for each transation.
Please provide some input on how to improve our current design.
Your help will be very much appreciated.
Have you considered using the Connecters architecture... I think it would be a better solution to the situation... though i don't know a whole lot of what you are doing...any way if i couldnot use connecters i'd go this way...
make the io operations async as well.. do this by introducing MOM components... that are resposible for 'logging' and 'un-loggig' the data processed
direct all confirmations to another MOM componet that would delete the data...
you could posibally use DBs for logging the data or in-memory DBs if you want even more speed... DBs would let you transact the logging and un-logging processes.. this might be useful...but it's for you to decide.
Try to use JMS with some appl. server. JMS supports TX.
I suppose Your application is written in Java and runs under Unix System Services (OS390).
I 've just finished testing JMS communication on WLS6 and JMS client running on OS390v2r8 Unix, It works fine.