Skip to main content
Solved

Why is my workspace on FME Server using the wrong custom transformer?

  • December 9, 2017
  • 1 reply
  • 19 views

fmelizard
Safer
Forum|alt.badge.img+20

When I run an FME Script in one repository containing a custom transformer, FME Server will sometimes incorrectly use a custom transformer with same name from a different repository.

 

I have separate repositories on FME Server for a set of workspaces. I would like to extract some logic into custom transformers that would be loaded into these repositories. Unfortunately, it seems that FME Server sometimes loads a transformer from a different repository. I can run the same workspace in one repository twice in a row and get a different result because it will grab a transformer from different folders on different runs.

Best answer by jlutherthomas

So, I wouldn't recommend having multiple resources on FME Server with the same name, even though they're in different folders.

What seems to be the case is that the first time a job runs on an engine, that engine will take the correct fmx (custom transformer) based on which repository the workspace and fmx is in. When the next job runs, because it's already loaded that transformer (based on the name) it uses the originally used fmx, even though it might be using the wrong one.

 

 

To get round this you could either:

 

a) Rename and republish your custom transformers so they have unique names (recommended)

or

b) Force the engines to restart after every transaction. In the fmeServerConfig.txt file you'll see a MAX_TRANSACTION_RESULT_SUCCESSES and a MAX_TRANSACTION_RESULT_FAILURES parameter. If you set both of these to 1, it will force the engine to restart after every time a workspace fails/succeeds. This will release whatever and however it had the custom transformer in memory and pick up the correct transformer.

However, this isn't an elegant workaround, and could result in a delay between each job whilst the engines restart, so if you have workspaces that need to run in quick succession you may experience a slow down.

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

1 reply

Forum|alt.badge.img+2
  • 364 replies
  • Best Answer
  • December 9, 2017

So, I wouldn't recommend having multiple resources on FME Server with the same name, even though they're in different folders.

What seems to be the case is that the first time a job runs on an engine, that engine will take the correct fmx (custom transformer) based on which repository the workspace and fmx is in. When the next job runs, because it's already loaded that transformer (based on the name) it uses the originally used fmx, even though it might be using the wrong one.

 

 

To get round this you could either:

 

a) Rename and republish your custom transformers so they have unique names (recommended)

or

b) Force the engines to restart after every transaction. In the fmeServerConfig.txt file you'll see a MAX_TRANSACTION_RESULT_SUCCESSES and a MAX_TRANSACTION_RESULT_FAILURES parameter. If you set both of these to 1, it will force the engine to restart after every time a workspace fails/succeeds. This will release whatever and however it had the custom transformer in memory and pick up the correct transformer.

However, this isn't an elegant workaround, and could result in a delay between each job whilst the engines restart, so if you have workspaces that need to run in quick succession you may experience a slow down.