Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SOL-58059 PauseResume #123

Merged
merged 20 commits into from
Mar 10, 2022

Conversation

carolmorneau
Copy link
Collaborator

This implements the Pausable interface much like the older, active PR #57

Please review/merge below PRs before this one as they were merged into this branch to facilitate testing:

@Nephery Nephery self-requested a review February 15, 2022 20:45
Copy link
Collaborator

@Nephery Nephery left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JCSMPInboundChannelAdapter doesn't persist its paused state between bindings being restarted (STARTED -> PAUSED -> STOPPED -> STARTED) for async consumers. Polled consumers work fine.

Copy link
Collaborator

@Nephery Nephery left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pausing consumers doesn't work if the FlowReceiverContainer is unbound when pause is invoked.

To reproduce:

  1. Start consumer whose message handler just throws an exception.
  2. Disable queue egress.
  3. Change binding state to PAUSED (can be verified via actuator)
  4. Enable queue egress.
  5. Notice that actuator reports the binding state as PAUSED but the consumer binding is actively consuming messages.

@Nephery Nephery self-requested a review March 8, 2022 17:22
Copy link
Collaborator

@Nephery Nephery left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@carolmorneau I'm done with the PR fixes. Feel free to retest this when you have time. I can't add you as a reviewer since you were the one who created the PR.

@carolmorneau
Copy link
Collaborator Author

Retested polled consumers and async consumers.

As part of the retests, confirmed that:

  • Bindings can be paused/resumed when flow is unbound.
  • Paused state is preserved when binding is restarted (stopped than started)

I believe this is ready for merging

@Nephery Nephery merged commit f5bad80 into SolaceProducts:stage-2.3.0 Mar 10, 2022
PhilippeKhalife added a commit that referenced this pull request Mar 11, 2022
* Add is-reply message header (#97)

* Add `solace_isReply` message header

* Creating configuration metadata for bindings properties (#98)

* Handle consuming null payloads (#112)

* Add `solace_scst_nullPayload` message header
* Convert incoming null payloads to empty equivalents

* add config option to disable adding destination subscription on queue (#108)

* add `addDestinationAsSubscriptionToQueue` binding config option
* deprecate `isProvisionSubscriptionsToDurableQueue` in favor of `addDestinationAsSubscriptionToQueue`

Co-authored-by: Jeffrey D <11084623+Nephery@users.noreply.github.com>

* Upgrade to Spring cloud 2021.0.0 and Junit 5 (#118)

# Product Changes
* Upgrade Spring Boot to `2.6.2`
* Upgrade Spring Cloud to `2021.0.0`
* Upgrade sol-jcsmp to `10.13.0`

# Test Changes
* Upgrade sol-jms to `10.13.0`
* Upgrade solace-integration-test-support to `0.8.0`
* Upgrade all binder tests to JUnit 5
  * Add `PubSubPlusExtension` into integration tests for automatic provisioning of PubSub+ in Docker and extension-managed JCSMP resources (e.g. managed `JCSMPSession` and `Queue`).
    * Docker provisioning is disabled if Spring properties are defined to use an externally provisioned broker.
  * Usage of Mockito, SoftAssertions, & ExecutorService were updated to use extensions for injection and auto-cleanup (or auto-calling `assertAll()` in the case of SoftAssertions).
* Remove Maven `it` profile
  * Integration tests will always run by default.
* Add parallel test execution and enable it by default in **Maven**
  * Is disabled by default for easy debugging when test are directly ran from an IDE (not through Maven).
* Update `Test` Github Action workflow to skip duplicate runs, cache maven dependencies, and report unit test results.

* fix PubSubPlusExtension integration (#119)

* upgrade solace-integration-test-support to 0.9.0
* fix `SpringCloudStreamExtension` to use static accessors of `PubSubPlusExtension` resources

* Replace the use of Pivotal Cloud Foundry by VMware Tanzu in documentation (#114)

* SOL-46352: Fix duplicate logs by registering a single RetryListener (#116)

* Fix duplicate logs by registering a single RetryListener
  * Fixes #77

* update sonatype urls to s01 (#121)

Co-authored-by: skgaddam <ShivaKumar.Gaddam@solace.com>

* Delivery Count (#122)

* Add solace_deliveryCount Spring message header
  * This is a controlled availability feature

* upgrade to spring-cloud@2021.0.1 & spring-boot@2.6.4 (#126)

* SOL-57956: Removing dependency on spring-cloud-connector (#113)

Fixes #15

* Sol 46284 Queue Name Expression (#120)

* add config options to change the queue name format:
  * Add `queueNameExpression` and `errorQueueNameExpression` consumer config options
  * Add `queueNameExpression` and `queueNameExpressionsForRequiredGroups` producer config options
  * Deprecate `queueNamePrefix`, `useGroupNameInQueueName`, `useFamiliarityInQueueName`, `useDestinationEncodingInQueueName`, `errorQueueNameOverride`, and `useGroupNameInErrorQueueName` binding config options
  * Fixes #88

* Sol 58058 health actuator (#125)

* Add support for health indicator
* Add new `RECONNECTING` health indicator status

Co-authored-by: E521877 <nathanael.weber@sbb.ch>
Co-authored-by: Jeffrey Douangpaseuth <11084623+Nephery@users.noreply.github.com>

* SOL-58059 Consumer Pause/Resume (#123)

* Add support for consumer pause/resume

Co-authored-by: Jeffrey Douangpaseuth <11084623+Nephery@users.noreply.github.com>

* SOL-43137 Batch Consumer Support (#124)

* Add support for batch consumers
  * Add `batchMaxSize` and `batchTimeout` consumer config options
  * Add `solace_scst_batchedHeaders` message header
  * closes #22

* SOL-49780: SCSt README Cleanup (#127)

* Expand table of contents to 3 levels
* Rewrite overview to be more clear
* Try to make it more apparent that Solace session configuration is handled by the Solace Java Spring Boot starter (a completely different project)
* Remove references to obsolete `prefix` consumer/producer config options. The `prefix` option was removed in `3.0.0`.

* prepare for 2.3.0 release (#128)

* add dependabot (#130)

closes #78

* Upgrade Solace APIs to 10.13.1 & Log4j2 to 2.17.2 (#131)

* Upgrade sol-jcsmp to `10.13.1`
* Upgrade sol-jms to `10.13.1`
* Upgrade Log4j2 to `2.17.2`

* upgrade solace-spring-boot to 1.2.0 (#129)

* upgrade to solace-spring-boot@1.2.1 & solace-services-info@0.4.4

Co-authored-by: carolmorneau <carol.morneau@solace.com>
Co-authored-by: PhilippeKhalife <philippe.khalife@solace.com>
Co-authored-by: skgaddam <ShivaKumar.Gaddam@solace.com>
Co-authored-by: E521877 <nathanael.weber@sbb.ch>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants