JMSToolBox not showing messages greater than 4MB
What happened:
* We published messages >5 MB to Solace
* We could see the messages in Solace Portal(message count increased)
* When using JMSToolbox and looking into we can't see them (even not showing up)
What did we test then:
* Sent small messages
* All worked fine in the portal and JMSToolBox
* Send then 1 bigger message >5 MB
* Did not show in JMSToolBox
* Send after that smaller message again
* Did now show in JMSToolBox
Comments
-
Hi @vimalp90,
Interesting 🤔, it does sound like a bug or limitation. In the last step below "Did now show in JMSToolBox" are you saying that after sending the smaller messages that both the smaller and bigger messages all showed up? or only the smaller messages and the larger ones were just missing altogether?
* Sent small messages
* All worked fine in the portal and JMSToolBox
* Send then 1 bigger message >5 MB
* Did not show in JMSToolBox
* Send after that smaller message again
* Did now show in JMSToolBoxAlso does anything show up in the logs?
0 -
Also I checked with Solace support to see if they were aware of this issue. They verified that the Solace JMS API (used by JMSToolbox) is able to browse messages larger than 5MB so the issue is probably going to be within JMSToolBox itself. If you haven't already it would be good to create an issue over on their github repo:
0 -
If you'd like a command-line utility (Java) to browse queues, you can check out:
It's similar to SdkPerf (which can also browse queues!) but can pretty-print certain payloads.
$ bin/PrettyDump aaron.messaging.solace.cloud aaron-demo-singapore me pw b:q1 PrettyDump initializing... PrettyDump connected to VPN 'aaron-demo-singapore' on broker 'aaron.messaging.solace.cloud'. Attempting to browse queue 'q1' on the broker... success! Browse all messages -> press [ENTER], or enter specific Message ID, or range of IDs (e.g. "25909-26183" or "9517-"): 31737085
So you can enter either a specific message ID, a range, or just all messages on the queue. Also: you can use the shorthand
f:<queueName>
instead to just browse the latest message off a queue and then exit.0 -
JMSToolBox does not have such limitations
However, there are a few methods of the "SolConnectionFactory" used by JTB, related to "large messages". Maybe this is related to the problem.
Namely:
- setLargeMessaging(Boolean largeMessaging)
- setLargeMessagingConsumeTimeoutInMillis(Integer consumeTimeoutInMillis)
- setLargeMessagingIncompletePolicy(String incompletePolicy)
- setLargeMessagingMaximumSize(Integer maxSize)
- setLargeMessagingSegmentSize(Integer segmentSize)
I can not find anything about those "large message" settings and the effect of using those methods.
Maybe you have a pointer where the methods are documented and their usage explained?
(I'm the author of JMSToolBox)0 -
Hi @titou10,
Those settings wouldn't apply here. That is for a controlled availability feature to allow the API to send/receive messages that are larger than what the broker supports out of the box. If the messages are already on the broker and we're just trying to browse them that shouldn't be an issue.
Hi @vimalp90,
Unfortunately I don't think we can make any progress here until we see the logs. Might as well grab them both from JMSToolBox and the event log from the broker so we can see both sides. **Note that if you have access to support it might be worth opening a support ticket as they'll have a SLA to respond faster than I will probably be able to :)
0 -
@marc
ok. FMI, Is there a place where those options/features are documented?
@vimalp90
In the meantime, I tried to "setLargeMessaging(true)" on the connection factory on the JMSToolBox side but the connection fails with exception:
com.solacesystems.jcsmp.InvalidPropertiesException: Large messaging is not supported for transacted sessions
at com.solacesystems.jcsmp.impl.JCSMPBasicSession.validateLargeMessaging(JCSMPBasicSession.java:1586)
at com.solacesystems.jcsmp.impl.JCSMPBasicSession.createTransactedSession(JCSMPBasicSession.java:1452)
at com.solacesystems.jms.SolSession.<init>(SolSession.java:112)
at com.solacesystems.jms.SolConnection.createSession(SolConnection.java:338)
at org.titou10.jtb.jms.model.JTBConnection.connect(JTBConnection.java:261)
So even if this option was pertinent to the problem, it would be possible in the conecte of JTB
(sorry I do not know how to format code on here..)0 -
Code formatting should work if you start with 3 tics ``` for multi-line or 1 tic ` for inline…but yea sometimes it doesn't work as expected for some reason.
As a controlled availability feature it isn't well documented publicly b/c it has a lot of caveats that come with it and I don't think anyone can just use it. I opened a request to get it better documented :)
0