[resolved] TESBProviderRequest OnSubjobOk not executing?

One Star

[resolved] TESBProviderRequest OnSubjobOk not executing?

Hello,
tESBProviderRequest -> tXMLMap -> tESBProviderResponse
|
OnSubjobOk/OnSubjobError
|
tWarn
Why OnSubjobOk/OnSubjobError is not executed? How can I achieve such a behaviour?
Thank you,
Viktor

Accepted Solutions
One Star

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

Only runIf is feasible, all onComponentOk's are executed resulting in multiple executions of "finally" block.
Simplified Example:
tESBProviderRequest -> tXMLMap -> tESBConsumer -> fault -> tXMLMap -> tESBProviderFault -> runif -> logrow
tESBConsumer on success continues:
tXMLMap2 -> tESBConsumer2 -> fault -> tXMLMa2p -> tESBProviderFault2 -> runif -> logrow

With oncomponentOk all logrows executed.
Viktor

All Replies
Community Manager

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

If the previous subjob works fine, tWarn followed by onsubjobok will be fired and works. For testing, you can use a tJava instead of tWarn and write some java code in it. 
For example:
System.out.println("tJava is working");

Best regards
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

Hello,
I did a test again with tJava and nothing was written to the console. Even I don't see statistics over OnComponentOk or OnComponentError transitions. My service job works, got expected response.
Viktor
Community Manager

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

This is the webservice provider job, you should open this job to see if the message are printed on the console after you call the webservice, rather than reading the message from webservice client. 

Best regards
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

Yes, WS job started in TOS, checking for console output there. WS called from soapui, got correct response. Still not executed and no console output.
Community Manager

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

Hi 
I have tried to use SOAPUI to call the WS, it works fine and I can see the message are printed on the console.

Best regards
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

Hello Shong,
created a simple service from scratch, see schema below, project also attached.
oncomponent ok is executed, onsubjobok/error are not executed.
Console output:
Request OnComponentOk: 1418891316724
Response OnComponentOk: 1418891316724
Viktor
echoservice.zip_20141218-0952.zip
Community Manager

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

Hi 
This is because the keep listening box is checked, if this option is checked, tESBProviderRequest keep listening to the input request, that means this subjob is always working all the time, the next subjob linked by onSubjobOK/error will not be fired. 
Best regards
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

Hello,
keep listening cannot be turned off for a webservice, otherwise it would finish after the first request.
Also onsubjob cannot be triggered from a component after tESBProviderRequest.
I can trigger an "if" from tESBProviderResponse, but if I have more responses/faults I do need to trigger an if from all of them instead of one "finally" block.
Thank you,
Viktor
Community Manager

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

So, if you have other business logic need to be processed, link from tESBProviderResponse with OncomponentOK or runIf connector.
Best regards
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: [resolved] TESBProviderRequest OnSubjobOk not executing?

Only runIf is feasible, all onComponentOk's are executed resulting in multiple executions of "finally" block.
Simplified Example:
tESBProviderRequest -> tXMLMap -> tESBConsumer -> fault -> tXMLMap -> tESBProviderFault -> runif -> logrow
tESBConsumer on success continues:
tXMLMap2 -> tESBConsumer2 -> fault -> tXMLMa2p -> tESBProviderFault2 -> runif -> logrow

With oncomponentOk all logrows executed.
Viktor