I am trying to connect pre-defined queue named GMMO.UCTRADE.DSLT01 it has ALL OTHER POERMISSIONS: No Access(0000) .
When i try to consume frm the queue , application throws below error :
org.springframework.cloud.stream.provisioning.ProvisioningException: Failed to provision durable queue GMMO.UCTRADE.DSLT01; nested exception is com.solacesystems.jcsmp.PropertyMismatchException: Permission mismatch. (ALL_OTHERS_PERMISSIONS mismatch, expected=0)
I tried 2nd solution ie Change the other permissions on the queue to “Consume”
My observation for Consume permission is - Once we give consume permission to the queue and connected from application, application is able to read the messages from queue … but later if we restart the application, then after restart application throwa same error
logs -
Below way i am using to set permissions to from SolaceAdmin UI .
on solace Admin , shut down queue then → right click on queue (GMMO.UCTRADE.DSLT01) → Edit Queue → select permission for ALL OTHER PERMISSIONS → click on OK
then start the queue by right click->Change Admin status ->Enable
@Monica_Gavali
Definitely interesting that it works the first time and fails the second time. If this is a pre-existing queue I would also try to set provisionDurableQueue to false and see if that helps. When that is set to true the solace cloud stream binder might be trying to do some provisioning which doesn’t fall under the consume permissions. Besides if it’s pre-existing there is no need to provision it
@marc -
Tried provisionDurableQueue to false below is observation :-
CASE I : provisionDurableQueue : false and queue ALL OTHER PERMISSIONS : No permission(default permission)
Got below error on applictaion start -
2021-10-05 11:02:25.542 INFO 2104 — [ main] c.s.s.c.s.b.p.SolaceQueueProvisioner : Durable queue provisioning is disabled, GMMO.UCTRADE.DSLT01 will not be provisioned nor will its configuration be validated
2021-10-05 11:02:25.543 INFO 2104 — [ main] c.s.s.c.s.b.p.SolaceQueueProvisioner : Testing consumer flow connection to queue GMMO.UCTRADE.DSLT01 (will not start it)
2021-10-05 11:02:25.744 ERROR 2104 — [ main] o.s.cloud.stream.binding.BindingService : Failed to create consumer binding; retrying in 30 seconds
org.springframework.cloud.stream.binder.BinderException: Exception thrown while starting consumer:
at org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindConsumer(AbstractMessageChannelBinder.java:462) ~[spring-cloud-stream-3.1.4.jar:3.1.4]
Caused by: com.solacesystems.jcsmp.AccessDeniedException: Permission Not Allowed
CASE II : provisionDurableQueue: false and queue ALL OTHER PERMISSIONS : consume
on first run application reads msg from queue
after application restart throwing exception as -
org.springframework.cloud.stream.binder.BinderException: Exception thrown while starting consumer:
at org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindConsumer(AbstractMessageChannelBinder.java:462) ~[spring-cloud-stream-3.1.4.jar:3.1.4]
Caused by: com.solacesystems.jcsmp.AccessDeniedException: Permission Not Allowed - Queue ‘GMMO.UCTRADE.DSLT01’ - Topic ‘GMMO.UCTRADE.DSLT01’
at com.solacesystems.jcsmp.impl.SessionModeSupportClient.performSmpReq(SessionModeSupportClient.java:278) ~[sol-jcsmp-10.10.0.jar:na]
CASE II : provisionDurableQueue: false and queue ALL OTHER PERMISSIONS : consume
I’m not sure why the permissions seem to be changing. It shouldn’t matter how many times you start/stop the app. Does your organization happen to have Solace support? If so I think it would best if you open a support ticket as they’ll be quicker to get back with you and can spend more time troubleshooting in detail.
Also as a heads up you can include all your code snippets with in between triple tics ``` that will make them easier to read