Solved

Issue with the JSONFragmenter in FME Server 2017.1?

  • 2 October 2017
  • 4 replies
  • 6 views

Badge

Hi guys,

 

 

I've got an issue with the JSONFragmenter in FME Server 2017.1 (Build 17539 - win64). Well, I think I have... maybe I'm missing something! 

 

 

Any non-JSON input seems to cause the workspace to finish with an error rather than carry on : 

"A fatal error has occurred. Check the logfile above for details". But there's no further clues in the log :

Loaded module 'JSONQueryFactory' from file 'C:\Program Files\FMEServer\Server\fme\plugins/JSONQueryFactory.dll'
FME API version of module 'JSONQueryFactory' matches current internal version (3.8 20170315).
Emptying factory pipeline.
A fatal error has occurred. Check the logfile above for details

 

The same workspace runs fine in FME Desktop where any non-JSON inputs come out of the "Rejected" port and the workspace happily carries on (I've got "Rejected Feature Handling" set to "Continue Translation" in FME Desktop).

 

I've added in a Tester before the JSONFragmenter in my workspace for now, but I'm curious as to why this is behaving differently in FME Server.

Any ideas?

 

 

Here's a screenshot of my simple test workspace which I uploaded into FME Server (job submitter service) :

0684Q00000ArBPkQAN.jpg

 

 

Cheers

 

 

Batesy

icon

Best answer by richardatsafe 2 October 2017, 20:01

View original

4 replies

Badge +10

Hi @batesy,

Thanks for noting this. We are working making sure were consistent with our rejected feature handling in Server. I can reproduce the issue and we have a PR to make the changes. As a workaround if you want the workspace to continue running on FME Server you can add any transformer eg. logger to the rejected port and it will keep processing.

Badge

Hi @batesy,

Thanks for noting this. We are working making sure were consistent with our rejected feature handling in Server. I can reproduce the issue and we have a PR to make the changes. As a workaround if you want the workspace to continue running on FME Server you can add any transformer eg. logger to the rejected port and it will keep processing.

Ok cool, thanks for the reply @RichardAtSafe. The Logger does the trick for now, thanks for the tip.

 

Badge +13

Hi @batesy,

Thanks for noting this. We are working making sure were consistent with our rejected feature handling in Server. I can reproduce the issue and we have a PR to make the changes. As a workaround if you want the workspace to continue running on FME Server you can add any transformer eg. logger to the rejected port and it will keep processing.

I ran into the same issue in 2017.1.1 Server and the 'Logger' trick worked for me. Thanks!

 

 

Badge +6

Thanks again for the feedback. There appears to be a problem with rejected feature handling for JSONFragmenter in both FME 2017 and FME 2018. I've reproduced the problem here and have filed a bug report. This only seems to come up when the workspace is run 'headless' - that is with WorkspaceRunner or on FME Server. My guess is that the rejected port caching for inspection is acting like a logger when run interactively on Workbench. This does seem to be related to JSON transformers as a similar configuration using Bufferer rejected features did not fail, whereas JSONExtractor does fail.

In the meantime for a workaround you can add any transformer such as a Logger to the rejected port and the workspace will complete. Or use a JSONValidator to validate your json document before doing any of your parsing. You could then eliminate any features with invalid json before they get to the JSONFragmenters. Note that a similar problem was fixed recently in FME 2018 for JSONValidator.

 

We will definitely prioritize testing and fixing this for these other JSON transformers, and post a note here once a fix is available.

Reply