🎄 Happy Holidays! 🥳
Most of Solace is closed December 24–January 1 so our employees can spend time with their families. We will re-open Thursday, January 2, 2024. Please expect slower response times during this period and open a support ticket for anything needing immediate assistance.
Happy Holidays!
Please note: most of Solace is closed December 25–January 2, and will re-open Tuesday, January 3, 2023.
Immediate application shutdown after succesful start
Hi !
I have the following problem and no clue why the application behaves as described:
I created a spring boot cloud stream application with gradle or maven (same behaviour) and added a subscription to a durable queue for consuming messages send to the topic. The application starts succesful but is followed by an immediate shutdown. It looks like someone is pressing Ctrl-C to stop the application.
:: Spring Boot :: (v2.2.6.RELEASE) 2020-06-03 10:55:09.200 INFO 1272 --- [ main] spring.boot.Application : Starting Application on CE33088 with PID 1272 (C:\Users\geotte\work\dev\nas\template\spring-boot-solace\bin\main started by geotte in C:\Users\geotte\work\dev\nas\template\spring-boot-solace) ... 2020-06-03 10:55:15.432 INFO 1272 --- [ main] spring.boot.Application : Started Application in 7.563 seconds (JVM running for 9.291) 2020-06-03 10:55:15.450 INFO 1272 --- [extShutdownHook] c.s.j.protocol.impl.TcpClientChannel : Channel Closed (smfclient 2) 2020-06-03 10:55:15.457 INFO 1272 --- [extShutdownHook] c.s.s.c.s.b.i.JCSMPInboundChannelAdapter : Stopping consumer flow from queue app/created/consumer.Q.app.inbox <inbound adapter ID: 73a4f0c0-f608-4218-b0e6-9fc0ffa74db9> ...
My Gradle build file looks like this:
plugins { id 'java' id 'org.springframework.boot' version '2.2.6.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' } repositories { // Use jcenter for resolving dependencies. // You can declare any Maven/Ivy/file repository here. jcenter() } dependencies { implementation platform('org.springframework.cloud:spring-cloud-dependencies:Hoxton.SR3') implementation platform('com.solace.spring.cloud:solace-spring-cloud-bom:1.0.0') implementation 'com.solace.spring.cloud:spring-cloud-starter-stream-solace' }
If i add a web starter to the application the application keeps running because of the tomcat and receives events. But this can not be the solution.
Thank you and best regards,
Gerhard
Comments
-
Just a guess: You have no permissions to subscribe - maybe something in your acl profile or client-profile.
Do you have access to broker logs ? Have a look at event.log.
If not: If you have access to cli, you can do something likeshow log event lines 20
0 -
Ok, finally I found the "solution":
The application must have a consumer and a supplier and both must be listed in the function paragraf in the solace stream. If I omit the supplier from the application or does not name it in the descriptor the application shuts down immediatly.
Now the working application looks like this:@SpringBootApplication public class Application { private static final Logger logger = LoggerFactory.getLogger(Application.class); public static void main(String[] args) { SpringApplication.run(Application.class); } @Bean public Consumer<String> appCreatedConsumer() { return String -> { System.out.println("String created: " + String); }; } @Bean public Supplier<String> appCreatedSupplier() { return () -> new String("Test"); } }
and my application.xml looks like this:
spring: cloud: stream: function: definition: appCreatedConsumer;appCreatedSupplier bindings: appCreatedConsumer-in-0: group: Q.app.inbox destination: app/created/consumer solace: java: host: 'tcp://192.168.99.100:55555' msgVpn: default clientUsername: admin clientPassword: admin logging: level: root: info org: springframework: info
BR Gerhard
0 -
Hi @gerhardo,
What you've found is indeed a bug that we're already working on a fix for and it will be fixed in the next release of the Solace Spring Cloud Stream binder. Both solutions that you've found will work in the meantime (adding a web starter or having a supplier as part for your microservice) but once the next release is available those workarounds will no longer be necessary.
-Marc0 -
Actually, looks like the fix has already been merged into the master branch if you want to try it out prior to the next release: https://github.com/SolaceProducts/solace-spring-cloud/pull/5
0 -
And a release with this fix has been cut! It should be up in maven central sometime tomorrow.
In the meantime you can find it here: https://github.com/SolaceProducts/solace-spring-cloud/releases/tag/1.0.1
-Marc0