Best Of
Re: python qpid-proton cannot access solace broker after rename Message VPN
AMQP doesn't have the concept of message VPN, so each VPN will have a different AMQP port. Did you change the port to the AMQP port for the new message VPN?
Re: API Release Notes are now in Docs
Re: Sequence Convoy Pattern with Solace
The difficulty with interpretation 1 is one that is created by physical reality, not any particular technology (solace or otherwise), so we need to be clear about what is being claimed here.
Suppose app1 and app2 are independent processes running on different hosts.
Both app1 and app2 can generate events.
These events must be transmitted to app3, which is another independent system.
The transmission time is necessarily non-zero and variable. This is a fact of reality imposed by the universe, not any particular technology.
OK, suppose app1 produces events E1 and E2 (in that order), and app2 produces events E3 and E4 (in that order).
We can know for sure that E1 happened before E2, and we can know for sure that E3 happened before E4, because the order of each pair is defined within the scope of a single application, and it is that application which defines the order.
But how do you know for sure that, say, E1 happened before E3?
If the systems are producing events completely independently then it is impossible to know this for sure. You can't just rely on, say, the system time for the hosts of app1 and app2, and compare something like a date time stamp on the event, because these host clocks could be slightly out of sync.
You also can't assume that "if E1 arrives at app3 before E3 arrives at app3, then E1 happened before E3", because it could be that E3 happened before E1, but took longer to transmit to app3.
The only way to have a "known order" across the systems is if the events are causally connected. Suppose, for example, that app1 produces event E1, which is transmitted to app2, and then as a result of receiving E1, app2 produces E3. Now there is a way to order these events - we can use the causal order. E1 is definitely causally antecedent to E3.
Without that causal connection, the relative order of events from different systems is undefined. So… are your events causally connected?
Re: Release note / Change Logs for version 10.0.1.XX
Hi @dreamoka The previous file was too big, I have re-generated the file, please check this.
In each release, we include the changes, new features, bug fixes and vulnerabilities patches. Our customers can check the release note and decide whether to apply the update or not.
Re: pubsubplus-connector-aws-kinesis
I'm also getting the same error on WSL2 and windows 11
wsl:
MiskLPro5i% java --version
openjdk 17.0.9 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9-Ubuntu-122.04)
OpenJDK 64-Bit Server VM (build 17.0.9+9-Ubuntu-122.04, mixed mode, sharing)
MiskLPro5i% ./bin/start.sh -c ./samples/config -P 8095
pubsubplus-connector-aws-kinesis
Starting the pubsubplus-connector-aws-kinesis...
22:50:06.700 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.IllegalArgumentException: Unable to instantiate factory class [org.springframework.cloud.config.client.ConfigServerConfigDataLocationResolver] for factory type [org.springframework.boot.context.config.ConfigDataLocationResolver]
Windows 11
PS C:\Users\miche\Downloads\pubsubplus-connector-aws-kinesis-1.0.0> java --version
openjdk 21.0.1 2023-10-17 LTS
OpenJDK Runtime Environment Temurin-21.0.1+12 (build 21.0.1+12-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.1+12 (build 21.0.1+12-LTS, mixed mode, sharing)
PS C:\Users\miche\Downloads\pubsubplus-connector-aws-kinesis-1.0.0>
other jar files and java application works.
Even if nothing is correct within the profile file, application.yaml, this error should not be appears, imo.
Cause when it should be stuck in exceptions, error msg, within the e.g start script… so feel like it something wrong within compiled jar file
Re: After Active-Passive solace brokers has switched there role. what is the best way to do switchback
auto-revert is an appliance only feature that doesn't apply to software brokers. In any event, I'd recommend you don't use it, as it can cause "flip-flops" when the primary is unstable. You should also stay running on the backup until you've identified why the primary has failed, as until you understand that, you have no guarantee that the problem will not recur.
Re: Introductions Thread - New to the community? Start here!
Intro
Hi all, my name is Ahmed and I'm fun and passionate by data streaming and connectors specially with KAFKA then SOLACE 😋
Name or handle
My full name is Ahmed TOUMI, and we can stay in touch using linkedin.
Location
I'm living in Paris since years
Job
I started as Java developper then as technical-leader, and finally as a Kafka DevOps Expert
Working for my own account, since 6 years and I'm trying to invest sometime in opensource projects
I saw that multiple of my client are using Solace (with different use cases) so that's why I'm here and I did a very small contribution in Solace Kafka connector build to let it been installable via confluent client
I'm preparing a new Plateform for Monitoring and Tracing and certainly I'll need your expertise when I'll ask some questions 🤗
For fun
Everything is funny when managing lot of data with clients (not true 🤯 🤣)
Re: Clarifitcations regarding sticky load balancing example architecture by Mathew Hobbis
Hi,
The article on sticky load-balancing was a work around until the 'partitioned queues' feature made it into the product. IMHO you should be looking to deprecate the work-around and utilise the supported feature in its place -
I believe this feature will remove all of the problems associated with the work around, especially indexing the clients, as all of the state is handled by the broker and the API with no user side code required.
/Mat
Re: How to consume messages synchronously from a solace "Queue" via Spring boot application?
Great to hear that! And glad you're finding the community helpful 😊
Re: How to get a specific message body from a queue using a unique ID
There are a number of issues to unpack here.
- SEMP/management interfaces do not provide access to message bodies. This is a security thing because those messages are governed by Client Usernames/ACLs/Profiles whereas management access is not. Management users are separate from messaging users.
- The right way to do what you are looking for, viewing the payload of a message but not consume it, is to use a queue browser interface in the client API of choice. This is what you have suggested, but I think you are saying you would use the browser to view the message after getting the message ID from SEMP. I am suggesting the list of messages is done in the queue browser. Then you get the message you want and "drill down" on it using the selector.
- Don't use message id - there is a message property called:
ReplicationGroupMessageId
which can be used for a unique message id across a broker cluster. Use this in your selector.
There is also some more info in the above link.