Announcement Announcement Module
Collapse
No announcement yet.
FTP Inbound-channel-adapter - How to terminate a process using this Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • FTP Inbound-channel-adapter - How to terminate a process using this

    Hi,
    My requirement is to do a simple FTP download of a file from a FTP server, process it then upload response file to the same server and then I am done. I have setup an inbound and outound ftp channel adapter. Configurations are
    Inbound:
    Code:
    <bean id="ftpClientFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
    		<property name="host" value="${cjserver.host}"/>
    		<property name="port" value="${cjserver.port}"/>
    		<property name="username" value="${cjserver.username}"/>
    		<property name="password" value="${cjserver.password}"/>
    	</bean>
    	
    	
    	<int-ftp:inbound-channel-adapter id="ftpInbound" 				
    				channel="receiveChannel" 
    				session-factory="ftpClientFactory"
    				filename-pattern="${inbound.filename}" 
    				auto-create-local-directory="true"
    				delete-remote-files="false"
    				remote-directory="${cjserver.inbound.dir}"
    				local-directory="${local.dir}">
    			<int:poller  fixed-rate="1000"/>					
    	</int-ftp:inbound-channel-adapter>
    				
    	<int:channel id="receiveChannel" />	
    		
    	<int:control-bus input-channel="operationChannel"/>
    Outbound:
    Code:
    <bean id="ftpClientFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
    		<property name="host" value="${cjserver.host}"/>
    		<property name="port" value="${cjserver.port}"/>
    		<property name="username" value="${cjserver.username}"/>
    		<property name="password" value="${cjserver.password}"/>
    	</bean>
    	
    	<int:channel id="outputChannel" />
    
    	<int-ftp:outbound-channel-adapter  id="ftpOutbound" cache-sessions="false"
    				channel="outputChannel" 
    				remote-directory="${cjserver.outbound.dir}"
    				session-factory="ftpClientFactory" />
    I am running a java main program and see that the process does not terminate even after execution of the program. Guess a thread is started by the <intoller fixed-rate="1000"/>. I need my progarm to terminate completly once I process the file. Any suggestions of how to achieve this please ?

    I have tried this to stop the inbound channel adapter, but that stops the polling , but my process did not exit.

    Code:
    @Resource(name="operationChannel")
    	private DirectChannel controlBusChannel;
    
    and then call
    
    Message<String> operation = MessageBuilder.withPayload("@ftpInbound.stop()").build();
    		controlBusChannel.send(operation);

  • #2
    FTP Inbound-channel-adapter - How to terminate a process

    you can use the following code to exit the process
    System.exit(1);
    exit code can be any integer value

    Thanks,
    Nagendran A

    Comment

    Working...
    X