Lately I've had a few questions around whether Solace supports replay (answer: yes) and how to learn more so I thought I'd share a few options of doing so.
You can learn more about Solace replay with these resources:
- Solace Docs - of course you can read the manual https://docs.solace.com/Overviews/Message-Replay-Overview.htm
- Replay Use Cases - https://docs.solace.com/Overviews/Message-Replay-Overview.htm#Use-Case; another good use case is training some AI algos and being able to feed them the same data, in the same order, over and over again
Tutorials for some of our APIs:
- Java - https://solace.com/samples/solace-samples-java/feature_message-replay/
- C - https://solace.com/samples/solace-samples-c/feature_message-replay/
And maybe best for last, @Aaron created a video demonstrating how to use our replay feature.
Hope that helps! Let us know if you love Solace Replay, want to discuss a use case or are running into challenges using it
We have released our version 2 of the Boomi connector!
Check out a tutorial on our codelab site here https://codelabs.solace.dev/codelabs/boomi-v2-getting-started. You can also check out other codelabs that uses our Boomi Solace connector by filtering on the 'Boomi' category.
Some of the new features with this new v2 connector include
- Performance improvements
- Ability to automatically create a queue and a topic subscription directly from the solace connector
- Integration with the Solace PubSub+ Event Portal to import events as objects and event payload schemas to be used as Profiles in Boomi
How are you using the solace connecter within Boomi? What are your use-cases? Let us know and I am happy to start a conversation here 🙌
Have you ever seen this HTTP error? This occurs when too many processes are trying to access the Solace broker using SEMP. Or, perhaps a small number of processes/applications are polling the Solace broker too quickly. This often happens in larger distributed environments, where multiple monitoring frameworks are in place. This error indicates that the internal SEMP engine used for responding to remote commands is overdriven. Too many SEMP requests! Slow down!
Usually this occurs due to monitoring. I.e.
show commands. Not always, but almost always. Show commands (vs. config commands) can generate a lot of response data, which puts load on the SEMP engine.
One way to avoid this is to centralize your SEMP polling. If you have multiple processes asking for the exact same data, that's dumb. Poll SEMP once, and use pub/sub or similar to send the monitoring data to multiple downstream applications. This is what the StatsPump does, if you're familiar with that product.
Otherwise, to help you figure out who/what/where is causing the Solace SEMP engine to be overdriven, here is my TIP OF THE WEEK™. You can configure some additional logging to see all of the commands. Solace by default reports all configuration commands to the command.log, stored in directory
/usr/sw/jail/logs. But the following will show you how to enable all logging (including the "shows") to goto the command log. First, login to CLI, then:
enable config logging command all mode all-cmds show logging command show log command
Rather than looking at the command log in CLI, it's easier to simply
tail -f the command log from the shell, and look for usernames and IP addresses that are doing all the polling. I often use
grep to slice out one minute's worth of data, and then count the number of lines (e.g.
grep "2021-01-20T15:01" command.log | wc -l). You might be surprised to see 10, 20, 30 requests per second sometimes!! No wonder SEMP is complaining.
If you have a question while using PubSub+ Cloud or need more information about how Solace can help you become event driven, you can have a live chat with someone from Solace at any time now.
Here is how to use the new feature:
- If you have not already signed up for a trial account of PubSub+ Cloud, do so at https://console.solace.cloud/login/new-account.
- Click the Help icon on the left side.
- Click Chat with Us.
It's that simple. Ask your questions now.
Hey Solace Community! We're looking to hire a new Developer Advocate to join our cool awesome team 😎 The location we are looking for is India; preferably Bangalore, Karnatak. Let us know if you are interested of know someone who would fit our team
The job posting is here https://solace.bamboohr.com/jobs/view.php?id=241
Feel free to ping me if you want any more information 🤙
PubSub+ Early Access Broker now supports MQTT v5.0! With this new support, the broker will automatically determine whether the client is speaking MQTT v3.1 or MQTT v5.0. Some of the new features you will be able to have access to with this support is:
- Assigned Client ID
- Determine content type so that message consumers can determine how to decode the message payload
- Setting flow control: to ensure that the broker doesnt send messages at a rate faster than what the consumer can handle
- Setting Maximum packet size
- Setting Message expiry
- Setting Session expiry
- Server Capabilities Advertisement
- Determine Payload Format
- QoS0, QoS1 still supported
- QoS0 Shared Subscriptions
- Reason code on all Acks
- Setting User Properties
- Will Properties
Note: There is no broker configuration needed to enable the MQTT v5.0 feature set.
So, any MQTT users out there? What version of MQTT are you using? How would this support improve your IoT development with Solace?
I have updated the Python API Samples with the new guaranteed messages samples.
We've worked hard all year and now it's time for some fun! Here at Solace we've been sharing fun Christmas themed videos, recipes, and talents of the entire Solace crew.
To start us off we have @Greg with this light-hearted take on the Christmas classic "Santa Baby" - take it away Greg!
If you use TLS to secure your connections (and you should use TLS as often as possible), you sometime have issues connecting to your TLS ports.
Here, I will describe a way to debug that.
Try to connect to a port
You're not sure, if your service / port is enabled or (most probably) if all your firewall rules are in place ?
From the client, try to connect to the server port.
telnet is recommended. I don't recommend that, because the handling of
telnet is a little bit complicated, especially quitting
telnet after connecting. I recommend
$ nc -vz 10.71.1.8 8883 Connection to 10.71.1.8 8883 port [tcp/*] succeeded!
-v: Be verbose, output, if connected
-z: Just try to connect and stop, don't send any data
Check TLS server certificate
To see details of the server certificate, use
[[email protected] ~] $ openssl s_client -connect mr16jp1pl7tfu7.messaging.solace.cloud:55443 CONNECTED(00000005) depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA verify return:1 depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = Thawte RSA CA 2018 verify return:1 depth=0 C = CA, ST = Ontario, L = Kanata, O = Solace Corporation, CN = *.messaging.solace.cloud verify return:1 --- Certificate chain 0 s:/C=CA/ST=Ontario/L=Kanata/O=Solace Corporation/CN=*.messaging.solace.cloud i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte RSA CA 2018 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte RSA CA 2018 i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA --- Server certificate -----BEGIN CERTIFICATE----- MIIGpzCCBY+gAwIBAgIQBpfhPEvol9Rx6KExmHCJ2TANBgkqhkiG9w0BAQsFADBc MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 d3cuZGlnaWNlcnQuY29tMRswGQYDVQQDExJUaGF3dGUgUlNBIENBIDIwMTgwHhcN MTkwOTE5MDAwMDAwWhcNMjEwOTE4MTIwMDAwWjBwMQswCQYDVQQGEwJDQTEQMA4G A1UECBMHT250YXJpbzEPMA0GA1UEBxMGS2FuYXRhMRswGQYDVQQKExJTb2xhY2Ug ... DKszydaiybTA73m8w6YabN2BrpqvkaxA8zrbjeJ30cvgPM0ZzA2JRYnPvjxHQLyd uyQBGQcGAr2U0rjbVixFyFYs2dlXfbAHf7A6 -----END CERTIFICATE----- subject=/C=CA/ST=Ontario/L=Kanata/O=Solace Corporation/CN=*.messaging.solace.cloud issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte RSA CA 2018 --- No client certificate CA names sent Server Temp Key: ECDH, P-256, 256 bits --- SSL handshake has read 3392 bytes and written 334 bytes --- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 Session-ID: Session-ID-ctx: Master-Key: 59FE52516A3EA4A63FAA1EAB8045EE8A0F5813D6F9D83E6A02931BFFEFCA5C382D2C3670655169B097F104F9D8F75577 Start Time: 1607409440 Timeout : 7200 (sec) Verify return code: 0 (ok) ---
What can we see here:
1. Common name of your server:
2. certificate chain for your certificate:
Certificate chain 0 s:/C=CA/ST=Ontario/L=Kanata/O=Solace Corporation/CN=*.messaging.solace.cloud i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte RSA CA 2018 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte RSA CA 2018 i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
With this information, you know, that you need the certificates for DigiCert Global Root CA and Thawte RSA CA 2018 to validate your server certificate
We’ve made some new enhancements that we hope will improve your experience within the Event Portal:
Ability to move objects from one Application Domain to another
- Users can now easily move objects created on one app domain to another.
Multiple Application Domain export/import
- You can now export and import multiple application domains at once, including ones that have shared objects between them, or objects that already exist in another app domain.
Customize columns throughout Event Portal
You can now customize table columns throughout the Event Portal:
- Adjust column sizing.
- Select which columns to display and which to hide.
- Set whether the beginning or end of a large value is displayed. I.e. user can select where the ellipsis should go in the column (beginning or end), which helps in seeing the part of the value in the column that is unique or most interesting to the user.
Catalog to Designer in-context navigation capabilities
- You can now navigate from an object in the Catalog directly to that object in the Designer graph and tables. This makes it much easier to find and modify what you’re looking for.
More Human Readable Schema Support
- We’ve made it easier to search for and understand schema content details by displaying JSON Schemas in a more human readable format.