One Star

Problem with tSalesforceBulkExec component.

Hello,
I've encountered the following problem in several occasions and I don't know why it's happening.
I am sending records to Salesforce with a tSalesforceBulkExec; this is being run on an iSeries machine, and it needs to use a Proxy to connect to Salesforce. I'm using Talend DI 5.2.2.
This problem happens when processing around 5k records, which is not a high amount. However, if I run this from outside the iSeries machine, it works.
So my guess is that the Proxy is slowing down the process and the tSalesforceBulkExec component is not getting an answer back from the Salesforce API.
This is the Exception message I get:
Exception in component tSalesforceBulkExec_1
java.lang.IllegalArgumentException: input stream can not be null
at com.sforce.ws.parser.MXParser.setInput(MXParser.java:528)
at com.sforce.ws.parser.XmlInputStream.setInput(XmlInputStream.java:64)
at com.sforce.async.BulkConnection.parseAndThrowException(BulkConnection.java:107)
at com.sforce.async.BulkConnection.doHttpGet(BulkConnection.java:472)
at com.sforce.async.BulkConnection.getBatchInfoList(BulkConnection.java:309)
at org.talend.salesforceBulk.SalesforceBulkAPI.awaitCompletion(SalesforceBulkAPI.java:388)
at org.talend.salesforceBulk.SalesforceBulkAPI.executeBulk(SalesforceBulkAPI.java:120)
at transfer_instructions.transferinstructionstosalesforce_0_5.TransferInstructionsToSalesforce.tSalesforceBulkExec_1Process(TransferInstructionsToSalesforce.java:11473)
at transfer_instructions.transferinstructionstosalesforce_0_5.TransferInstructionsToSalesforce.tAS400Input_2Process(TransferInstructionsToSalesforce.java:7791)
at transfer_instructions.transferinstructionstosalesforce_0_5.TransferInstructionsToSalesforce.runJobInTOS(TransferInstructionsToSalesforce.java:18286)
at transfer_instructions.transferinstructionstosalesforce_0_5.TransferInstructionsToSalesforce.runJob(TransferInstructionsToSalesforce.java:17812)
at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.tRunJob_1Process(UpdateSalesforceWithInstructions.java:2525)
at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.tAS400Input_3Process(UpdateSalesforceWithInstructions.java:2283)
at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.runJobInTOS(UpdateSalesforceWithInstructions.java:4920)
at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.main(UpdateSalesforceWithInstructions.java:4440)
Exception in component tRunJob_1
java.lang.RuntimeException: Child job running failed
at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.tRunJob_1Process(UpdateSalesforceWithInstructions.java:2544)
at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.tAS400Input_3Process(UpdateSalesforceWithInstructions.java:2283)
at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.runJobInTOS(UpdateSalesforceWithInstructions.java:4920)
at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.main(UpdateSalesforceWithInstructions.java:4440)

I have googled this and haven't found any explanations, could anyone let me know if I'm right assuming this is caused by the Proxy connection and the Salesforce API response timing out? Or is it caused by any other reason?
I would appreciate any comments.
Many thanks,
Julipool
10 REPLIES
Moderator

Re: Problem with tSalesforceBulkExec component.

Hi,
Please upload your job design and tSalesforceBulkExec component setting screenshots into forum so that we can address your issue quickly.
Best regards
Sabrina
--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
One Star

Re: Problem with tSalesforceBulkExec component.

Hi xdshi,
Thanks for your response. Sorry I didn't include that before...
Please have a look at the design and the configuration for the tSalesforceBulkExec_1 component. You can also find the basic settings and advanced settings tabs attached.
The Exception is thrown on the tSalesforceBulkExec_1 component, so neither the success or Error files get created, and therefore I don't have any information about what the outcome of the load is. I don't know what records succeeded or which failed.
That is why I think there must be some kind of timeout that is stopping my job from getting the response from the Salesforce API.
I hope this makes more sense and helps to understand the scenario I am working on.
Many thanks.
Julipool
One Star

Re: Problem with tSalesforceBulkExec component.

I have now better analysed the problem I am getting.
The thing is that the Bulk API takes around 7 or 8 minutes to process the number of records I am sending to Salesforce from my tSalesforceBulkExec component.
I noticed that my qshell job on the iSeries gets killed after 5 minutes of inactivity, and Salesforce is still processing the records, so it hasn't sent a response back to my tSalesforceBulkExec component.
Does anyone know any remedy for this? Is there any way of keeping the qshell job alive?
Any suggestions are welcome.
Many thanks,
Julipool
One Star

Re: Problem with tSalesforceBulkExec component.

Hello All,
I am facing issue with tSalesforceBulExec Component. I don't see Quote Object in the drop down for "Module". I am using talend 5.4/ Same happens in 5.5 as well. Please help me how to do this. We are doing a data migration where we will have to upload Quote to salesforce.
Thanks,
One Star

Re: Problem with tSalesforceBulkExec component.

Hi Team,
Can anyone provide the solution to this problem as mentioned by julipool.
Many thanks,
Devanshu
One Star

Re: Problem with tSalesforceBulkExec component.

Hi, 
We're also having this issue. Is there a way to increase the bulk API connection timeout? OR is this a network issue? Any solution or suggestion would be greatly appreciated.
Thanks,
James
One Star

Re: Problem with tSalesforceBulkExec component.

Hi xdshi,
can you please help me with the query mentioned by julipool on 2013-12-18 17:21:48.
Regards,
sateesh
Moderator

Re: Problem with tSalesforceBulkExec component.

Hi sateesh,
Would you mind giving us some information about your current situation? Did you get some problem on tSalesforceBulkExec?
Best regards
Sabrina
--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
One Star

Re: Problem with tSalesforceBulkExec component.

Hi Xdshi,
Me and Sateesh are from the same team. The problem we are facing is described by Julipool in the comments below.
Can you please provide some assistance on the below issue - 
We are sending records to Salesforce with a tSalesforceBulkExec; this is being run on an iSeries machine and we are using Talend DI 5.2.2.

This problem happens when processing around 2k records, the tSalesforceBulkExec component is not getting an answer back from the Salesforce API.

This is the Exception message we get:

Exception in component tSalesforceBulkExec_1
java.lang.IllegalArgumentException: input stream can not be null
    at com.sforce.ws.parser.MXParser.setInput(MXParser.java:528)
    at com.sforce.ws.parser.XmlInputStream.setInput(XmlInputStream.java:64)
    at com.sforce.async.BulkConnection.parseAndThrowException(BulkConnection.java:107)
    at com.sforce.async.BulkConnection.doHttpGet(BulkConnection.java:472)
    at com.sforce.async.BulkConnection.getBatchInfoList(BulkConnection.java:309)
    at org.talend.salesforceBulk.SalesforceBulkAPI.awaitCompletion(SalesforceBulkAPI.java:388)
    at org.talend.salesforceBulk.SalesforceBulkAPI.executeBulk(SalesforceBulkAPI.java:120)
    at transfer_instructions.transferinstructionstosalesforce_0_5.TransferInstructionsToSalesforce.tSalesforceBulkExec_1Process(TransferInstructionsToSalesforce.java:11473)
    at transfer_instructions.transferinstructionstosalesforce_0_5.TransferInstructionsToSalesforce.tAS400Input_2Process(TransferInstructionsToSalesforce.java:7791)
    at transfer_instructions.transferinstructionstosalesforce_0_5.TransferInstructionsToSalesforce.runJobInTOS(TransferInstructionsToSalesforce.java:18286)
    at transfer_instructions.transferinstructionstosalesforce_0_5.TransferInstructionsToSalesforce.runJob(TransferInstructionsToSalesforce.java:17812)
    at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.tRunJob_1Process(UpdateSalesforceWithInstructions.java:2525)
    at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.tAS400Input_3Process(UpdateSalesforceWithInstructions.java:2283)
    at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.runJobInTOS(UpdateSalesforceWithInstructions.java:4920)
    at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.main(UpdateSalesforceWithInstructions.java:4440)
Exception in component tRunJob_1
java.lang.RuntimeException: Child job running failed
    at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.tRunJob_1Process(UpdateSalesforceWithInstructions.java:2544)
    at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.tAS400Input_3Process(UpdateSalesforceWithInstructions.java:2283)
    at transfer_instructions.updatesalesforcewithinstructions_0_5.UpdateSalesforceWithInstructions.runJobInTOS(UpdateSalesforceWithInstructions.java:4920)
    at transfer_instructions.updatesalesforcewithinstructions_0_5.Update

Julipool has also attached the job design in the comments below.
Regards,
Devanshu
One Star

Re: Problem with tSalesforceBulkExec component.

Hi, I'm new to Talend and I have the same issue.
This is the error log that I obtain from Talend log:
Exception in component tSalesforceOutputBulkExec_1_tSBE
java.lang.IllegalArgumentException: input stream can not be null
at com.sforce.ws.parser.MXParser.setInput(MXParser.java:554)
at com.sforce.ws.parser.XmlInputStream.setInput(XmlInputStream.java:65)
at com.sforce.async.BulkConnection.parseAndThrowException(BulkConnection.java:129)
at com.sforce.async.BulkConnection.doHttpGet(BulkConnection.java:615)
at com.sforce.async.BulkConnection.getBatchInfoList(BulkConnection.java:439)
at org.talend.salesforceBulk.SforceBulkConnection.getBatchInfoList(SforceBulkConnection.java:82)
at org.talend.salesforceBulk.SalesforceBulkAPI.awaitCompletion(SalesforceBulkAPI.java:256)
at org.talend.salesforceBulk.SalesforceBulkAPI.executeBulk(SalesforceBulkAPI.java:99)
...
java.lang.RuntimeException: Child job running failed
The input file is not null.I launch the job, it runs correctly for some operations and this error happens every time in a different tSalesforceOutputBulkExec component. Can be a problem related to the connection?
Thank you in advance