I forgot how to troubleshoot Infor M3 Web Services (MWS) and wasted time researching again. This time I share what I rediscovered so I remember next time.
Scenario
I created a simple web service of type M3 Display Program (MDP) that creates a Facility in CRS008. The steps work correctly in M3:
MWS Designer error
I created the equivalent web service in MWS Designer (MWSD), but it throws ‘Unable to execute MPD!’:
MWS Designer log
The MWSD log does not provide more information:
We can increase the MWSD log level from WARN to DEBUG/TRACE, it shows some HTTP/SOAP information (remember to revert when done as it fills the disk space):
Fiddler proxy
We can use an HTTP proxy such as Fiddler to see the HTTP/SOAP request/response:
SoapUI
We can use another SOAP client such as SoapUI to test the web service:
Generated Java code
MWS Server generates Java code for each web service. I do not see any error with the generated code. The code uses Apache Axis2/CXF for SOAP, and the old Intentia Movex MPD for the interactive session:
MWS Server log
The MWS Server log provides some more information, it mentions m3.program which hints me to believe my web service is correct and the problem is in M3:
MWS Server DEBUG/TRACE
I increased the Grid’s log levels of Subsystem and MWS to DEBUG and TRACE (remember to revert when done as it fills the disk space):
I ran the test case again, and opened the merged log:
This time the log shows more information. It shows the <MPD> XML, and it shows the error Abnormal termination of mvx.app.pgm […] Dump log created:
M3 DUMPLOG
The M3 dumplog shows even more information, it shows there was a NullPointerException on READ_DSP ICFCMD:
I do not know how to analyze an M3 dumplog, so I will forward it to an M3 developer and ask for help. The problem points not to MWS but to the M3 program. That is as far as I can go in my troubleshooting.
Future work
Furthermore, depending on the case, it may also be useful to:
- Intercept network traffic to the BCI port, and troubleshoot the old Intentia Movex BCI protocol; MPD uses M3Session which uses BCIConnection:
- Use the Advanced Grid tools:
- Analyze the Thread dumps:
- Analyze the MWS Profiler:
- Analyze the Grid Status Report:
- Decrypt the encrypted Grid network traffic
- Debug the MWS Server Java code line by line at runtime
Conclusion
That was how to troubleshoot M3 Web Services and digg more information about an error. I dug as far as I could, all the way to M3, and asked help to an M3 developer. Furthermore, there are plenty other ways to troubleshoot and dig beyond.
That’s it!
Please like, comment, subscribe, share, and come author the next post.
UPDATE 2016-12-14: Added MWSD log level, Fiddler, SoapUI, Threads, Profile, Grid Status Report
LikeLike
It’s a pity there is no more official support for connecting to M3 directly with BCI, kind of like MForms Bookmarks, BCI is only officially available through MWS MDP.
LikeLike
Thanks for sharing!
LikeLike
Thanks Thibaud no doubt my fellow technical colleagues love it
LikeLiked by 1 person