Thanks for the information Claus, yes, from the beginning I did not correctly formulate my question.
понедельник, 30 декабря 2019 г. пользователь Claus Ibsen < claus.ib...@gmail.com> написал: > Hi > > Ah okay so its not a transaction (eg using a tx manager with jms/jdbc > etc). So that is a bit different. > > You can take a look in JMX in the services tree of Camel there is a > AsyncProcessorAwaitManager mbean. It has details if there is a thread > stuck somewhere, which you can then force to free up. > > Also you can take a thread dump in the JVM and diagnose the threads to > see which ones there are, and if anyone stand out, related to your > route where you think something is stuck. > > > On Mon, Dec 30, 2019 at 4:43 PM Mikhail Lukyanov <lukyanov...@gmail.com> > wrote: > > > > Hi, Claus. > > > > I have the following reasons > > > > 1) For some reason, the exchange freezes (error, something is not > > available) and the message being processed becomes blocked. I want the > user > > to be able to complete this stuck exchange so that the blocked message is > > released and other consumers can start processing it. > > > > 2) Also, when I delete inflight exchanges, but the link to the exchange > > object remains in the pending exchange, which prevents it from being > > completely removed from memory and consumes memory > > > > 3) When an exchange gets stuck, I cannot stop the route with the usual > stop. > > > > *camelContext.stopRoute(routeId, 30L, TimeUnit.SECONDS, > abortAfterTime);* > > > > When I try to stop the route, I get the following message in the logs > > > > > > *Starting to graceful shutdown 1 routes (timeout 30 seconds)* > > > > > > *Waiting as there are still 2 inflight and pending exchanges to > > complete, timeout in 30 seconds. Inflights per route: > > [cfe84c41-9d83-4967-99c2-4c211676a61a = 2]* > > > > *There are 1 inflight exchanges: > > InflightExchange: [exchangeId=ID-esb-factor-ts- > ru-1577711906085-9-5, > > fromRouteId=cfe84c41-9d83-4967-99c2-4c211676a61a, > > routeId=cfe84c41-9d83-4967-99c2-4c211676a61a, > > nodeId=161d46cd-bc84-4510-8adc-0adbcd2cc092, elapsed=0, > > duration=26167]* > > > > *...* > > > > > > *Interrupted while waiting during graceful shutdown, will abort.* > > > > *Timeout occurred during graceful shutdown. Aborting the shutdown now. > > Notice: some resources may still be running as graceful shutdown did > > not complete successfully. > > > > *Then I delete this stuck exchange from the repository and try again > > to stop the route > > > > > > *camelContext.getInflightRepository().remove(exchange);camelContext. > getInflightRepository().remove(exchange, > > routeId);* > > > > I get the following message in the logs > > > > *Starting to graceful shutdown 1 routes (timeout 30 seconds)* > > > > *Waiting as there are still 1 inflight and pending exchanges to > > complete, timeout in 30 seconds. Inflights per route: > > [cfe84c41-9d83-4967-99c2-4c211676a61a = 1]* > > > > *...* > > > > > > *Interrupted while waiting during graceful shutdown, will abort.* > > > > *Timeout occurred during graceful shutdown. Aborting the shutdown now. > > Notice: some resources may still be running as graceful shutdown did > > not complete successfully. > > * > > > > I can only stop the route with a forced stop > > > > *camelContext.stopRoute(routeId, 1L, TimeUnit.SECONDS);* > > > > I use *2.20.2* camel-version. > > > > This behavior is reproduced in my case in different routes, for example, > > where the consumer is *from > > uri="jetty:http://0.0.0.0:7777/get?handlers=KG& > throwExceptionOnFailure=true&matchOnUriPrefix=true& > bridgeEndpoint=true > > <http://0.0.0.0:7777/get?handlers=KG&throwExceptionOnFailure=true& > amp;matchOnUriPrefix=true&bridgeEndpoint=true>"* > > producer *to > > uri="http4://localhost:7080/list?throwExceptionOnFailure= > false&httpClient.socketTimeout=30000&httpClient.connectTimeout= > 30000&httpClient.connectionRequestTimeout= > 30000&connectionsPerRoute=1000&maxTotalConnections= > 1000&bridgeEndpoint=true". > > *Or I reproduced in such a route > > > > > > > > > > > > > > *<route factor:name="inflight" id="cfe84c41-9d83-4967-99c2- > 4c211676a61a"> > > <from id="d83ac94f-cf56-4dc9-a9ba-76b571e0a2de" > > uri="ftp://192.168.194.69/logs/?username=name&password=password > > <ftp://192.168.194.69/logs/?username=name&password=password>"> > > <description>FTP</description> </from> <to > > id="161d46cd-bc84-4510-8adc-0adbcd2cc092" uri="activemqq://TEST.IN > > <http://TEST.IN>"> <description>local queue</description> > > </to> </route>* > > > > > > пн, 30 дек. 2019 г. в 11:54, Claus Ibsen <claus.ib...@gmail.com>: > > > > > Hi > > > > > > What is your use-case for the reason you want to do this? > > > You should often not do something like this, so want to hear more about > > > why. > > > And what Camel version and what resources are you using for > transaction? > > > > > > On Sun, Dec 29, 2019 at 12:52 PM Mikhail Lukyanov < > lukyanov...@gmail.com> > > > wrote: > > > > > > > > Hello everyone > > > > Tell me, please, is there a way to kill pending transactions? > > > > > > > > Route freezes, after I kill transactions in InflightRepository > > > > > > > > cc.getInflightRepository().remove(exchange); > > > > > > > > But they remain pending. When I stop the route, it does not stop > > > > immediately because of a pending transaction remain > > > > > > > > int inflight= > > > > this.context.getInflightRepository().size(order.getRoute().getId()); > > > > //there 0 > > > > inflight += DefaultShutdownStrategy.getPendingInflightExchanges( > order); > > > > //but there stil remain > > > > > > > > They are killed only after a forced stop of the route or after the > > > timeout > > > > > > > > > > > > -- > > > > *С наилучшими пожеланиями, Лукьянов Михаил* > > > > *Моб: **+7-909-69-71-547* > > > > > > > > > > > > -- > > > Claus Ibsen > > > ----------------- > > > http://davsclaus.com @davsclaus > > > Camel in Action 2: https://www.manning.com/ibsen2 > > > > > > > > > -- > > *С наилучшими пожеланиями, Лукьянов Михаил* > > *Моб: **+7-909-69-71-547* > > > > -- > Claus Ibsen > ----------------- > http://davsclaus.com @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 > -- *С наилучшими пожеланиями, Лукьянов Михаил* *Моб: **+7-909-69-71-547*