Skip to main content

Hi all.

A problem that makes me crazy :-(

To collect data form Oracle, I use an SqlCreator with a parametric query.

When I run the same query in SqlDeveloper, I takes the correct number of records. Usually a single record.

When I do the same in FME, the record is duplicated.

The strange thing is that if the correct result is one record, it is duplicated. So two records.

If the correct result is three records, the result is four. One duplicated and the other fine.

The production landscape where the problem occurs has two FME servers with distributed engines.

In the second landscape (testing), the problem doesn't happen.

Very strange...

Thanks for your support

Roberto

I suppose you have connected only the Result output port?

If you would have connected both Result and Initiator output ports, that would explain the duplicates.


I suppose you have connected only the Result output port?

If you would have connected both Result and Initiator output ports, that would explain the duplicates.

@erik_jan, I made a mistake in the topic title and body. SqlCreator instead of SqlExecutor. The problem is that the same transformer with a second Database instance, works fine. The only difference is that the landscape where the problem occurs has two FME servers with distributed engines. I also tried to temporarily stop the secondary server but without positive result.

Roberto


Can you share the exact contents of statement used in the SQLCreator? A screenshot would be perfect.


I suppose you have connected only the Result output port?

If you would have connected both Result and Initiator output ports, that would explain the duplicates.

Hi,

the sql query, works fine in Oracle. The same workflow also from a different server pointing to the same DB. Confusing.

The fact that the duplication happens only on one record is an additional confusing fact.

One is always duplicated while the other (if any) don't.

THX

The query is:

Select a.EMPLOYEEID as CID, a.EMERGENCYPHONE, a.HOMEPHONE, a.UMHOLDER, a.UMHOLDERDESCRIPTION, a.UO_COREHOLDER, a.COREHOLDERDESCRIPTION, a.FIRSTNAME as NOME, a.LASTNAME as COGNOME, a.CUSTOMDATA.EmployeeCustom1 as TELEFONO1, a.CUSTOMDATA.EmployeeCustom2 as TELEFONO2, a.CUSTOMDATA.EmployeeCustom3 as TELEFONO3 from DEFINEDEMPLOYEE a where (upper(a.LASTNAME) like upper('%$(sCriterio)%')


@roberto It sounds like it is the FME Server environment that is causing the problem, not the SQLCreator. Perhaps run a test using FME desktop and determine if this gives a good or bad result. At this point I think I would report the issue through https://www.safe.com/support/report-a-problem/


@roberto It sounds like it is the FME Server environment that is causing the problem, not the SQLCreator. Perhaps run a test using FME desktop and determine if this gives a good or bad result. At this point I think I would report the issue through https://www.safe.com/support/report-a-problem/

Thanks. I'll document better the issue and I'll follow your suggestion.


A simple way to debug if it's the table contents or something else that's causing the issue, is to add the following where-clause at the end of your  SQL statement:

... and rownum = 1

If you still get two features, then it's probably not the database. On the other hand, if that fixes the problem then it's 99% certain that it's the table contents that actually contains several records that match your where-clause.


Reply