I'm using JMS (ActiveMQ over JMS) in my AppConnect Professional project.
I need to pass the parameter prefetchPolicy.queuePrefetch to the connection factory, but I have tried different ways in ACP with no luck.
Did anyone try to pass that value? What am I doing wrong?
Thanks in advance!
I am assuming that you are using poll message activity.If yes please add the following property in Provider URL of JMS Endpointtcp://<Host Name>:61616?jms.prefetchPolicy.queuePrefetch=3Goto Activity and select the Batch Objects as mentioned in the screen shot
Thanks everyone! Your advises helped to passed the value, but unfortunately it hadn't resolve the problems I faced.I will try to describe:
I'm using AMQ over JMS in IBM AppConnect, and it works pretty well, until the number (total size) of messages not exceeds some limit.
AMQ message reading fails, if the overall size of pending messages exceeds some value (tested 500pcs*20Kb, 1000pcs*15Kb etc, same time 1000pcs*5b or 10pcs*20Kb works OK)
How it looks: I put just one message to queue, no matter if it's 10 bytes or 20 Kbytes, it works good:
but if I send to queue 500 such messages (or more messages but lower size) it stops reading messages, sometimes reads one message in 10-20 attempts:
If I try to look at the logs (Logging level: All) see no info, just failed (not started) job:
but when the overall size of messages in queue not exceeds some value - everything works fine
Does anybody have any ideas?
I will be grateful for any help or advises, thanks in advance!
Hi Anton,Please set the property ReceiveWithWait as 200 from the JMSConsole.Please refer the following doc and set the property.https://www.ibm.com/support/pages/using-app-connect-professional-end-point-activemq-cannot-read-queueAlso providing the details below on how to set the value
1.) Log in to the App Connect Professional (Cast Iron) appliance and enter the system shell.2) Execute the jmxport on command from the System Shell. Now you can connect via jconsole.exe.3) Open the command prompt from your workstation and enter jconsole.exe. Make sure the JRE installed on your system- jconsole.exe is part of the JRE)In the JCONSOLE.exe interface:1) Select the Remote Access radio button and add the following IP address with port <ApplianceIP:1999>2) Provide the username-password. For example, controlRole-ciControlRole.3) Click connect4) Expand JmsModule->JmsModuleInfo->Attribute->Click ReceiveWithWait5) On the right side screen, you the attribute name and, value. Enter 200 in the value field.6) Click Refresh.7) Start the orchestration and try to re-create the issue.Once you completed these steps, go to the system shell and enter the following command to disable the JMX Port: "jmxport off"ThanksMohan
Last week we have set the property ReceiveWithWait as 200 from the JMSConsole (we have tried both 100 and 200 values):Unfortunately, it had no effect, and issue continues to reproduce:
I have chosen sample 12Kb message for testing (common XML structure)10 messages - no issues50 messages - no issues100 messages - no issues200 messages - issue starts reproducing, but only in 5-10% of total cases500 messages - issue reproduces almost all the timesome screenshots with different amount of messages:
So, I suppose the problem is not only in ReceiveWithWait