My 1st time to use web socket data stream service. I use WebSocketReceiver to connect to a wss service. After using a JSONExtractor toextract the needed key/value pairs, I can write the data into an Oracle non-spatial table. The data has latitude/longitude, so I add a VertexCreator to create a point. But as I connect the VertexCreator to an Oracle SDE or File Geodatabase feature class, and run the workspace, the streaming goes on, but nothing happens in the writer, the feature class in SDE or File GeoDB is not created. No errors. I am pretty sure the lat/long values are valid. Any clues?
Solved
Lat/long data from WebSocketReceive can not be spatialized into a database
Best answer by fmelizard
There's good news and bad news. The bad news is: due to a design decision of 20+ years ago, when you use multiple writers in a workspace, only the first writer will write data UNTIL the input shuts down and the workspace run ends. Then the other writers will, one at a time, write any data that was destined to them. We've had a long running request to change this and it is near top of list, but not yet underway. I apologize that this still hasn't been dealt with.
View original
So the behaviour you're seeing is entirely how FME works. Your workspace connects to a stream and will never end really, and therefore, only the first writer will ever get data.
So what is to be done? That's where the good news kicks in. If you use FeatureWriter transformers instead of traditional writers, then the problem goes away. FeatureWriter transformers are all active all the time (unless you do dataset fanout but I don't think that is your case). Suggest you replace all 3 of your writers with FeatureWriters. Do let us know the outcome.
Reply
Rich Text Editor, editor1
Editor toolbars
Press ALT 0 for help
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.