I inherited a rewritten Java project that is written for an ATM Switch. I've been working on this project for 3.5 months and trying to test the application for certification with Discover Card. I am not that familiar with Concurrency (threads and receive queuers) but I think I've run into a problem with a blocking problem and cannot find a way to correct the problem.
Here is the scenario of what occurs:
1. I start the application on our development server (Windows 2003).
2. I submit a ISO8583 message (0800) for a dynamic key exchange to my application via a WEB APP called RCT on the Discover web site and the message processes fine. The message then stops.
3. The key is then held in memory in the Discover web app.
4. I submit the next ISO8583 mesage (0200) to my application BUT I never see the subsequent ISO8583 message even hit our application.
5. I can see the subsequent message come across the wire on a specific port using Wireshark to confirm but it never makes it to the application entry point. I put a breakpoint on where I would see the subsequent message hit the application but I never reach the breakpoint. In the Eclipse debug session I see the DiscoverChannel thread running plus the 2 receive queuer threads running as well. They appear to be open and ready for a message but again it never reaches the application.
Any suggestions/direction on how to debug this type of problem would be appreciated. The previous developer at this company is no longer available to ask. I've been dealing with this specific issue for 2 weeks and cannot find a solution.
Since no one responded, I'd like to try again by providing the stack trace from the DEBUG window in Eclipse in hopes that someone can tell me if the problem with getting a subsequent request in DiscoverChannel-ReceiveQueuer-1 THREAD that is waiting is being blocked by the DiscoverChannel-ReceiveQueuer-0 THREAD?
Again, ANY help/direction would be appreciated. If not enough info is provided can someone tell me what info is required to get some assistance?
There is definitely not enough information. We probably need a runnable example (SSCCE <- link). Without code to see what you are doing there is literally no information about what the problem is other than, well, whatever is waiting for a message doesn't get it (wild guess #1: you are sending a message on the wrong channel - what a 'message' and a 'channel' is depends entirely upon the code you are using).