I'm using spring integration to interface with a company that listens for a tcp connection.
I use a TcpOutboundGateway to send the message and put the ack on the reply channel.
This works pretty well.
However, I periodically and sometimes consistently get the MessageTimeoutException while waiting for my 3rd party to send the Ack. In their logs they complain that the socket connection was closed before they could send the ack. It seems to occur very quickly even though I've tried to specify they have up to 10 seconds to send the ack.
I've set the remotetimeout, requesttimeout, sendtimeout, soTimeout, but it seems like nothing much is helping to reduce the occurance.
I'm trying to run multiple of these gateways, don't think that's a problem.
I don't know enough to know what I should be looking for.
I believe this is the relevant bit of code:
#Bean
public TcpNetClientConnectionFactory createTcpClientConnectionFactory() {
TcpNetClientConnectionFactory tcpNetClientConnectionFactory = new TcpNetClientConnectionFactory(host, port);
LisSerializer lisSerializer = new LisSerializer(maxMessageSize);
tcpNetClientConnectionFactory.setSerializer(lisSerializer);
tcpNetClientConnectionFactory.setDeserializer(lisSerializer);
tcpNetClientConnectionFactory.setSingleUse(true);
tcpNetClientConnectionFactory.setSoTimeout(tcpTimeout);
return tcpNetClientConnectionFactory;
}
#Bean
#ServiceActivator(inputChannel="tcpToLisEncoded")
public TcpOutboundGateway createTcpOutboundGateway(TcpNetClientConnectionFactory createTcpClientConnectionFactory){
TcpOutboundGateway tcpOutboundGateway = new TcpOutboundGateway();
tcpOutboundGateway.setConnectionFactory(createTcpClientConnectionFactory);
tcpOutboundGateway.setReplyChannel(tcpOutAck());
tcpOutboundGateway.setRemoteTimeout(tcpTimeout);
tcpOutboundGateway.setRequestTimeout(tcpTimeout);
tcpOutboundGateway.setSendTimeout(tcpTimeout);
tcpOutboundGateway.setRequiresReply(true);
return tcpOutboundGateway;
}
Error I get:
018-02-22 22:56:44.969 ERROR 29 --- [SimpleAsyncTaskExecutor-1] o.s.i.ip.tcp.TcpOutboundGateway : Tcp Gateway exception
org.springframework.integration.MessageTimeoutException: Timed out waiting for response
at org.springframework.integration.ip.tcp.TcpOutboundGateway.handleRequestMessage(TcpOutboundGateway.java:146) ~[spring-integration-ip-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:109) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:116) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:148) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:121) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:89) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:425) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:375) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:115) [spring-messaging-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:45) [spring-messaging-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:105) [spring-messaging-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput(AbstractMessageProducingHandler.java:360) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput(AbstractMessageProducingHandler.java:271) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs(AbstractMessageProducingHandler.java:188) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:115) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:116) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:148) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:121) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:89) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:425) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:375) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:115) [spring-messaging-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at org.springframework.messaging.core.GenericMessagingTemplate.doSendAndReceive(GenericMessagingTemplate.java:150) [spring-messaging-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at org.springframework.messaging.core.GenericMessagingTemplate.doSendAndReceive(GenericMessagingTemplate.java:45) [spring-messaging-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at org.springframework.messaging.core.AbstractMessagingTemplate.sendAndReceive(AbstractMessagingTemplate.java:42) [spring-messaging-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at org.springframework.integration.core.MessagingTemplate.sendAndReceive(MessagingTemplate.java:97) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.core.MessagingTemplate.sendAndReceive(MessagingTemplate.java:38) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.messaging.core.AbstractMessagingTemplate.convertSendAndReceive(AbstractMessagingTemplate.java:79) [spring-messaging-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at org.springframework.messaging.core.AbstractMessagingTemplate.convertSendAndReceive(AbstractMessagingTemplate.java:70) [spring-messaging-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at org.springframework.integration.gateway.MessagingGatewaySupport.doSendAndReceive(MessagingGatewaySupport.java:449) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.gateway.MessagingGatewaySupport.sendAndReceive(MessagingGatewaySupport.java:422) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.gateway.GatewayProxyFactoryBean.invokeGatewayMethod(GatewayProxyFactoryBean.java:478) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.gateway.GatewayProxyFactoryBean.doInvoke(GatewayProxyFactoryBean.java:433) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.gateway.GatewayProxyFactoryBean.invoke(GatewayProxyFactoryBean.java:424) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.integration.gateway.GatewayCompletableFutureProxyFactoryBean.invoke(GatewayCompletableFutureProxyFactoryBean.java:65) [spring-integration-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) [spring-aop-4.3.11.RELEASE.jar!/:4.3.11.RELEASE]
at com.sun.proxy.$Proxy120.sendMessage(Unknown Source) [na:na]
Related
I have a simple web service, ws1, that just has a setBody to "hello world" which is exposed by netty. I want to call this web service asynchronously with the help of camel-ahc.
for doing that, I have a main camel context that call the ws1 every 6 seconds, but after calling ws1 in another thread, the control of the program is not returning to the main camel context thread and it seems camel-ahc component is not working and after 60 seconds a request timeout exception is happening.
in my pom i have added:
camel-ahc
camel-reactive-streams
<camelContext trace="true" id="mainCamelContext" xmlns="http://camel.apache.org/schema/blueprint" >
<route id="ahc-route-first-api">
<from uri="timer://webinar?period=6000"/>
<log message="this is body: ${body}"/>
<to uri="ahc:http://192.168.100.232:9999/ws1"/>
<log message="this is body after call: ${body}"/>
</route>
</camelContext>
when install bundle in Fuse:
10:35:18.914 INFO [Camel (mainCamelContext) thread #316 -
timer://webinar] this is body: 10:35:18.914 INFO [Camel
(mainCamelContext) thread #316 - timer://webinar]
ID-localhost-localdomain-1552973873885-38-116 >>>
(ahc-route-first-api) log[this is body: ${body}] -->
ahc://http://192.168.100.232:9999/api?throwExceptionOnFailure=false
<<< Pattern:InOnly,
Headers:{breadcrumbId=ID-localhost-localdomain-1552973873885-38-116,
firedTime=Sat Apr 06 10:35:18 IRDT 2019}, BodyType:null, Body:[Body is
null] 10:35:19.202 WARN [AsyncHttpClient-timer-87-1] Error processing
exchange. Exchange[ID-localhost-localdomain-1552973873885-38-114].
Caused by: [java.util.concurrent.TimeoutException - Request timeout to
192.168.100.232/192.168.100.232:9999 after 60000 ms] java.util.concurrent.TimeoutException: Request timeout to
192.168.100.232/192.168.100.232:9999 after 60000 ms at org.asynchttpclient.netty.timeout.TimeoutTimerTask.expire(TimeoutTimerTask.java:43)
[1990:wrap_file__home_ossl_.m2_repository_org_asynchttpclient_async-http-client_2.4.3_async-http-client-2.4.3.jar_Export-Package_org.asynchttpclient.__version_2.4.3:0.0.0]
at
org.asynchttpclient.netty.timeout.RequestTimeoutTimerTask.run(RequestTimeoutTimerTask.java:50)
[1990:wrap_file__home_ossl_.m2_repository_org_asynchttpclient_async-http-client_2.4.3_async-http-client-2.4.3.jar_Export-Package_org.asynchttpclient.__version_2.4.3:0.0.0]
at
io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:663)
[654:io.netty.common:4.1.16.Final-redhat-2] at
io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:738)
[654:io.netty.common:4.1.16.Final-redhat-2] at
io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:466)
[654:io.netty.common:4.1.16.Final-redhat-2] at
io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
[654:io.netty.common:4.1.16.Final-redhat-2] at
java.lang.Thread.run(Thread.java:748) [?:?] 10:35:19.203 ERROR
[AsyncHttpClient-timer-87-1] Failed delivery for (MessageId:
ID-localhost-localdomain-1552973873885-38-117 on ExchangeId:
ID-localhost-localdomain-1552973873885-38-114). Exhausted after
delivery attempt: 1 caught: java.util.concurrent.TimeoutException:
Request timeout to 192.168.100.232/192.168.100.232:9999 after 60000 ms
I am doing some tests in a Linux server environment with Corda Enterprise 3.1 and the Obligation sample code from R3. When I try to execute a flow, I get an exception from the Notary in the log of the node initiating the flow. I have pasted log entries in below. All the nodes are being recognized as valid, but the message seems to say that the client for the notary flow is not registered. Where would I register it? What would I register?
The code being executed is:
val flowHandle = service.proxy.startFlowDynamic(
IssueObligation.Initiator::class.java,
issueAmount,
lenderIdentity,
true
)
The logs show this stack trace:
[INFO ] 2018-09-27T23:07:51,522Z [nioEventLoopGroup-2-2] netty.AMQPChannelHandler.invoke - Handshake completed with subject: O=Notary, L=London, C=GB {allowedRemoteLegalNames=O=Notary, L=London, C=GB, localCert=O=PartyB, L=New York, C=US, remoteAddress=xxxxx:10102, remoteCert=O=Notary, L=London, C=GB, serverMode=false}
[INFO ] 2018-09-27T23:07:51,524Z [nioEventLoopGroup-2-2] bridging.AMQPBridgeManager$AMQPBridge.invoke - Bridge Connected {bridgeName=internal.peers.DLCYA2tcXLrUnF9bkTMwouBuHooVn416Dc8Gk8JBaze4Gk -> xxxxx:10102, legalNames=O=Notary, L=London, C=GB, maxMessageSize=10485760, queueName=internal.peers.DLCYA2tcXLrUnF9bkTMwouBuHooVn416Dc8Gk8JBaze4Gk, target=xxxxx:10102}
[INFO ] 2018-09-27T23:07:51,530Z [nioEventLoopGroup-2-2] engine.ConnectionStateMachine.invoke - Connection local open org.apache.qpid.proton.engine.impl.ConnectionImpl#2e08c638 {localLegalName=O=PartyB, L=New York, C=US, remoteLegalName=O=Notary, L=London, C=GB, serverMode=false}
[INFO ] 2018-09-27T23:07:56,988Z [flow-worker] corda.flow.run - Flow threw exception... sending to flow hospital {actor_id=user1, actor_owningIdentity=O=PartyB, L=New York, C=US, actor_store_id=NODE_CONFIG, fiber-id=10396171, flow-id=af75a3d3-402c-45e2-89af-48dce5b11998, invocation_id=1399fb77-c4ed-4a09-972b-76c6ffb09bdc, invocation_timestamp=2018-09-27T23:07:49.588Z, session_id=d3c04d4a-f722-4cbd-95ec-dd2f744a36cd, session_timestamp=2018-09-27T23:05:30.595Z, thread-id=201, tx_id=2D94EABC8EBE902AC24A64A2562C293A1FB26747D0A04821A497FD333944F220}
net.corda.core.flows.UnexpectedFlowEndException: class net.corda.core.flows.NotaryFlow$Client is not registered
at net.corda.node.services.statemachine.FlowStateMachineImpl.processEventsUntilFlowIsResumed(FlowStateMachineImpl.kt:166) ~[corda-node-3.1.jar:?]
at net.corda.node.services.statemachine.FlowStateMachineImpl.suspend(FlowStateMachineImpl.kt:396) ~[corda-node-3.1.jar:?]
at net.corda.core.flows.FlowLogic.sendAndReceiveWithRetry$core(FlowLogic.kt:245) ~[corda-core-3.1.jar:?]
at net.corda.core.flows.NotaryFlow$Client.sendAndReceiveNonValidating(NotaryFlow.kt:140) ~[corda-core-3.1.jar:?]
at net.corda.core.flows.NotaryFlow$Client.notarise(NotaryFlow.kt:94) ~[corda-core-3.1.jar:?]
at net.corda.core.flows.NotaryFlow$Client.call(NotaryFlow.kt:65) ~[corda-core-3.1.jar:?]
at net.corda.core.flows.NotaryFlow$Client.call(NotaryFlow.kt:45) ~[corda-core-3.1.jar:?]
This was due to the notary not being configured as such. As a result, it did not have a responder flow for NotaryFlow$Client installed.
The follow-up error you received, net.corda.core.transactions.FilteredTransaction cannot be cast to net.corda.core.transactions.SignedTransaction., indicates that the node requesting notarisation incorrectly identified the notary as non-validating rather than validating. As a result, it sent the wrong transaction type.
we are trying to using Amazon ElastiCache in place of Redis.
From Dev Box connection getting created but while accessing getting the below error
org.springframework.data.redis.RedisConnectionFailureException: java.net.SocketTimeoutException: Read timed out; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out
at org.springframework.data.redis.connection.jedis.JedisExceptionConverter.convert(JedisExceptionConverter.java:47)
at org.springframework.data.redis.connection.jedis.JedisExceptionConverter.convert(JedisExceptionConverter.java:36)
at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:37)
at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:37)
at org.springframework.data.redis.connection.jedis.JedisConnection.convertJedisAccessException(JedisConnection.java:196)
at org.springframework.data.redis.connection.jedis.JedisConnection.hGetAll(JedisConnection.java:2536)
at org.springframework.data.redis.core.DefaultHashOperations$13.doInRedis(DefaultHashOperations.java:223)
at org.springframework.data.redis.core.DefaultHashOperations$13.doInRedis(DefaultHashOperations.java:220)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:153)
at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:86)
at org.springframework.data.redis.core.DefaultHashOperations.entries(DefaultHashOperations.java:220)
at org.springframework.data.redis.core.DefaultBoundHashOperations.entries(DefaultBoundHashOperations.java:101)
at org.springframework.session.data.redis.RedisOperationsSessionRepository.getSession(RedisOperationsSessionRepository.java:432)
at org.springframework.session.data.redis.RedisOperationsSessionRepository.getSession(RedisOperationsSessionRepository.java:402)
at org.springframework.session.data.redis.RedisOperationsSessionRepository.getSession(RedisOperationsSessionRepository.java:245)
at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.getSession(SessionRepositoryFilter.java:327)
at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.getSession(SessionRepositoryFilter.java:344)
at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.getSession(SessionRepositoryFilter.java:390)
at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.getSession(SessionRepositoryFilter.java:217)
at com.operative.dashboard.web.multitenancy.filter.TenantContextFilter.setTenantAndUser(TenantContextFilter.java:89)
at com.operative.dashboard.web.multitenancy.filter.TenantContextFilter.doFilter(TenantContextFilter.java:75)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at com.operative.dashboard.web.logging.filter.LongRequestDetectionFilter.doFilter(LongRequestDetectionFilter.java:69)
at com.operative.dashboard.web.logging.filter.LongRequestDetectionFilter.doFilter(LongRequestDetectionFilter.java:46)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:167)
at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1629)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:564)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
at java.lang.Thread.run(Thread.java:745)
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out
at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:201)
at redis.clients.util.RedisInputStream.read(RedisInputStream.java:180)
at redis.clients.jedis.Protocol.processBulkReply(Protocol.java:158)
at redis.clients.jedis.Protocol.process(Protocol.java:132)
at redis.clients.jedis.Protocol.processMultiBulkReply(Protocol.java:183)
at redis.clients.jedis.Protocol.process(Protocol.java:134)
at redis.clients.jedis.Protocol.read(Protocol.java:192)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:282)
at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:218)
at redis.clients.jedis.BinaryJedis.hgetAll(BinaryJedis.java:865)
at org.springframework.data.redis.connection.jedis.JedisConnection.hGetAll(JedisConnection.java:2534)
... 55 more
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:170)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.net.SocketInputStream.read(SocketInputStream.java:127)
at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:195)
same ElastiCache instance i am able to connect using local.
we gave allowed the Devbox IP from the Amazon ElastiCache .
Not too much sure about IP and VPC. lookes like some access or time out issue.
thanks in Advance
I have a Mule flow that is converting an inbound file into some XML and I wish to post this to an HTTP outbound endpoint but my flow fails when I attempt to do so. My flow looks as follows:
<flow name="mainFlow" processingStrategy="synchronous">
<file:inbound-endpoint name="fileIn" path="path/to/file"/>
<file:file-to-string-transformer />
<component class="CUSTOM JAVA CLASS TO CONVERT CSV INPUT TO BASIC XML"/>
<mulexml:xml-to-dom-transformer returnClass="org.w3c.dom.Document"/>
<!-- XSLT converts my Java-produced XML to a more complex structure for output -->
<mulexml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" xsl-file="path/to/xsl"/>
<object-to-string-transformer doc:name="Object to String"/>
<!-- AT THIS POINT, THE PAYLOAD IS A STRING OF XML (payload=java.lang.String) -->
<http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="hello" contentType="text/xml" method="POST" doc:name="HTTP"/>
</flow>
The errors I'm getting are as follows:
ERROR 2014-05-08 10:39:41,449 [[processes].consignmentInputFileConnector.receiver.02] org.mule.exception.CatchMessagingExceptionStrategy:
********************************************************************************
Message : Failed to route event via endpoint: DefaultOutboundEndpoint{endpointUri=http://localhost:8081/hello, connector=HttpConnector
{
name=connector.http.mule.default
lifecycle=start
this=45f8d5e5
numberOfConcurrentTransactedReceivers=4
createMultipleTransactedReceivers=true
connected=true
supportedProtocols=[http]
serviceOverrides=<none>
}
, name='endpoint.http.localhost.8081.hello', mep=REQUEST_RESPONSE, properties={http.method=POST, Content-Type=text/xml}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type: PostMethod
Code : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
1. Connection refused (java.net.ConnectException)
java.net.PlainSocketImpl:-2 (null)
2. Failed to route event via endpoint: DefaultOutboundEndpoint{endpointUri=http://localhost:8081/hello, connector=HttpConnector
{
name=connector.http.mule.default
lifecycle=start
this=45f8d5e5
numberOfConcurrentTransactedReceivers=4
createMultipleTransactedReceivers=true
connected=true
supportedProtocols=[http]
serviceOverrides=<none>
}
, name='endpoint.http.localhost.8081.hello', mep=REQUEST_RESPONSE, properties={http.method=POST, Content-Type=text/xml}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type: PostMethod (org.mule.api.transport.DispatchException)
org.mule.transport.http.HttpClientMessageDispatcher:155 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transport/DispatchException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
The end goal of what I'm trying to achieve here is to evaluate the response code received from the HTTP endpoint and then proceed accordingly. However, I've so far been unable to get as far as posting successfully.
Are you sure something is listening on http://localhost:8081/hello? The java.net.ConnectException tends to say the opposite.
On qmail logs there are lots of the following lines:
2012-12-14 18:04:49.314299500 simscan:[9999]:CLEAN (4.00/50.00):2.2875s:Delivery Status Notification (Failure):aa.aa.aa.aa::info#xxxx.it
2012-12-14 18:04:49.657999500 CHKUSER accepted rcpt: from <::> remote <utility-xxxx.it:unknown:aa.aa.aa.aa> rcpt <info#xxx.it> : found existing recipient
2012-12-14 18:04:49.658005500 policy_check: local -> local info#xxxx.it (UNAUTHENTICATED SENDER)
2012-12-14 18:04:49.658016500 policy_check: policy allows transmission
2012-12-14 18:04:49.658019500 spamdyke[9945]: ALLOWED from: (unknown) to: info#xxxx.it origin_ip: 82.85.185.32 origin_rdns: utility-xxxxx.it auth: (unknown)
and
12-14 18:03:57 CHKUSER accepted rcpt: from <::> remote <utility-xxxx.it:unknown:aa.aa.aa.aa> rcpt <info#xxxx.it> : found existing recipient
12-14 18:03:57 policy_check: local -> local info#xxxx.it (UNAUTHENTICATED SENDER)
12-14 18:03:57 spamdyke[9945]: ALLOWED from: (unknown) to: info#xxxx.it origin_ip: aa.aa.aa.aa origin_rdns: utility-xxxx.it auth: (unknown)
12-14 18:03:59 simscan:[9999]:CLEAN (4.00/50.00):2.4153s:Delivery Status Notification (Failure):aa.aa.aa.aa::info#xxxx.it
12-14 18:04:00 CHKUSER accepted rcpt: from <::> remote <utility-xxxx.it:unknown:aa.aa.aa.aa> rcpt <info#xxxx.it> : found existing recipient
12-14 18:04:00 policy_check: local -> local info#xxxx.it (UNAUTHENTICATED SENDER)
12-14 18:04:00 spamdyke[9945]: ALLOWED from: (unknown) to: info#xxxx.it origin_ip: aa.aa.aa.aa origin_rdns: utility-xxxx.it auth: (unknown)
12-14 18:04:02 simscan:[9999]:CLEAN (4.00/50.00):2.5481s:Delivery Status Notification (Failure):aa.aa.aa.aa::info#xxxx.it
12-14 18:04:02 CHKUSER accepted rcpt: from <::> remote <utility-xxxx.it:unknown:aa.aa.aa.aa> rcpt <info#xxxx.it> : found existing recipient
12-14 18:04:02 policy_check: local -> local info#xxxx.it (UNAUTHENTICATED SENDER)
12-14 18:04:02 spamdyke[9945]: ALLOWED from: (unknown) to: info#xxxx.it origin_ip: aa.aa.aa.aa origin_rdns: utility-xxxx.it auth: (unknown)
Does this mean something unwanted?
Thank you... I'm completely new to qmail
possibly these are the bounce message recieved by the user info#xxxx.it
12-14 18:03:57 CHKUSER accepted rcpt: from <::> remote rcpt : found existing recipient
It is possible that someone has spoofed the mail id of sender and might be performing some spam activity. And as we all know spammers send mails to random ids and most of which do-not exists. In return the sender id would get a bounce message.
Just verify it.