Skip to main content
Announcements
SYSTEM MAINTENANCE: Thurs., Sept. 19, 1 AM ET, Platform will be unavailable for approx. 60 minutes.
cancel
Showing results for 
Search instead for 
Did you mean: 
David_Beaty
Specialist
Specialist

[resolved] tMomInput - Websphere MQ - Doesnt seem to get to the end of the queue

I have a job that dequeues messages from an MQ queue,that are XML text messages, parses the XML, then writes to an Oracle staging table. Once complete it then processes these staged records into our data warehouse.
Sometimes during the day, the job seems to get stuck dequeuing the messages and doesnt seem to receognises its got to the end of the queue and move on. Then for no specific reason, it then triggers thats it is now at the end of the queue and processes the records.
From looking at the code generated:
System.out.println("Ready to receive message");
System.out.println("Waiting..");
while (flagtMomInput_1) {
if (Integer.valueOf(
remoteQtMomInput_1.getCurrentDepth()).equals(1)) {
flagtMomInput_1 = false;
}
Its as if the queue depth never gets reported back as 1. The consumption rate *can* far exceed the rate the process putting the messages onto the queue.
Can anyone advise on what might be happening?
Thanks
Environment - Win7, TIS 4.1.1
Labels (3)
1 Solution

Accepted Solutions
David_Beaty
Specialist
Specialist
Author

We found the solution to this.
The Oracle server RMAN kicked in at 6pm which put a big load on the server, because of the implementation of the tMomInput component, it would never get to the end of processing the queue as it could never reach the end quickly enough.
Would be nice for the tMomInput component if it evaluated the queue depth once outside the loop and iterate only that number of times.

View solution in original post

5 Replies
Anonymous
Not applicable

Some out of sync Im reading? MQ server pause, reset or reboot flushing caching which could trigger some sort of error....
if depth eq 1 a flag is set to false so it exits the while loop, my suggestion before entering a while loop make sure the flagtMomInput_1 = true but that should not be the problem here.
are you able to reproduce the error, did you test with the same message over and over again and logging each step?
David_Beaty
Specialist
Specialist
Author

The MQ servers are all OK, checked the logs on those, nothing untoward.
My only option I think is to hack the generated code and put a "System.out.Println" in the loop to display the current queue depth as I dont have any visibility on exactly what the dept is at any given time. though the resulting log file might be huge as we process approx half a million transactions a day.
The odd bit is that during our busiest time of day, it behaves itself - its only when the load is quite low.
At themoment, my only long term solution is to decouple the MQ consumption to staging process from the staging to warehous process
David_Beaty
Specialist
Specialist
Author

We found the solution to this.
The Oracle server RMAN kicked in at 6pm which put a big load on the server, because of the implementation of the tMomInput component, it would never get to the end of processing the queue as it could never reach the end quickly enough.
Would be nice for the tMomInput component if it evaluated the queue depth once outside the loop and iterate only that number of times.
Anonymous
Not applicable

Hi Team
How to connect to WebSphere MQ with SSL Connection, I could not see SSL option in tMOMInput & tMOMConnection with WebSphere MQ.
Anonymous
Not applicable

Hi Team
Any Help !!

Thanks
AnilKumar Burri