My requirement is to receive updates from devices scattered across the country and store the updates in a Mysql database. The devices can only send to a socket (3 times a day).
And the devices are more than 10,000 so the TCP server should be resilient to accommodate the traffic.
As a solution, I created a job in Talend with, among others, the following components:
a) tWaitForSocket - Opens and listens to a TCP port
b) tFixedFlowInput - for reading incoming message from the port
c) tExtractDelimitedFields - to split the incoming TCP payload
d) tMysqlOutput - to store the data
a) If I do a simulation of many TCP requests the job crashes
Error from the client:
java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
b) I finally deployed the solution on Talend Runtime. The feature is installed and running but after some days it stops responding. I can still telnet to the port (meaning the port is open) but the messages I sent are not received.
I installed the log wrapper with "ALL" level of logging. The message string does not even appear on the log anymore. It's like it's not even being received. I have no idea how to explain this, considering the port is still open and there are no errors.
If I am using the wrong approach please let me know because I'm certain this is a use case Talend can handle.
Talend named a Leader.
Kickstart your first data integration and ETL projects.
Watch the recorded webinar!
Learn how to use an API-First Approach to Modernize your Applications
Take a look at this technical overview video of Talend API Designer
Find out how to get started with APIs