Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi Team,
The mapping is designed to fetch the total count of rows of the API, storing it in a variable and diving with the number of pagesize it gets the total iterations to run. I have used a combination of tloop(for 1 to total page and increment) and the page value is dynamically sent to the tRest component to fire a rest call.
Issue: The job sometimes succeeds completing all the iterations , while most other times it fails after completing certain number of iterations: Error portion of log below:
"[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tLoop_1 - Start to loop from 1 to 124598 with a step of 2000 (Increasing).
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Prepare to send request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Has sent request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Prepare to send request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Has sent request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Prepare to send request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Has sent request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Prepare to send request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Has sent request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Prepare to send request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Has sent request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Prepare to send request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Has sent request to rest server.
[INFO ]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 - Prepare to send request to rest server.
[FATAL]: hr_datalake_dev.Jobname_masked_0_1.Jobname_masked - tREST_1 java.io.IOException: Premature EOF
#######################################
Job Failed - Check the Logs
#######################################
Exception in component tREST_1
com.sun.jersey.api.client.ClientHandlerException: java.io.IOException: Premature EOF
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:562)
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:505)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:563)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:72)
at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:454)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.tLoop_1Process(Jobname_masked.java:14635)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.tRESTClient_1Process(Jobname_masked.java:8574)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.tFileDelete_1Process(Jobname_masked.java:6194)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.tFTPDelete_1Process(Jobname_masked.java:5950)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.tPostgresqlClose_2Process(Jobname_masked.java:5603)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.tPostgresqlRow_2Process(Jobname_masked.java:5412)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.tJava_2Process(Jobname_masked.java:4680)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.tPostgresqlInput_2Process(Jobname_masked.java:4444)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.tPostgresqlConnection_2Process(Jobname_masked.java:3950)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.tSetGlobalVar_4Process(Jobname_masked.java:3717)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.runJobInTOS(Jobname_masked.java:21130)
at hr_datalake_dev.Jobname_masked_0_1.Jobname_masked.main(Jobname_masked.java:20826)
Caused by: java.io.IOException: Premature EOF
at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:565)
at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:609)
at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:696)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3393)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.Reader.read(Reader.java:140)
at com.sun.jersey.core.util.ReaderWriter.readFromAsString(ReaderWriter.java:171)
at com.sun.jersey.core.util.ReaderWriter.readFromAsString(ReaderWriter.java:157)
at com.sun.jersey.core.provider.AbstractMessageReaderWriterProvider.readFromAsString(AbstractMessageReaderWriterProvider.java:114)
at com.sun.jersey.core.impl.provider.entity.StringProvider.readFrom(StringProvider.java:73)
at com.sun.jersey.core.impl.provider.entity.StringProvider.readFrom(StringProvider.java:58)
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:552)"
Kindly help me in getting the root cause, as I tried same with tHttpRequest component as well
try to set a tSleep (with 10 secs wait) after tfileoutput