Author |
Message
|
ajaykumar.maram |
Posted: Fri Jul 10, 2015 5:40 am Post subject: problem while working with HTTP nodes |
|
|
Novice
Joined: 10 Jul 2015 Posts: 20
|
Hi all,
I need some help regarding http nodes. The problem is that i've created a service using http nodes . While i'm trying to hit this service with some pay load data ,it is working fine with pay load upto 2MB there after it is i'm unable to hit the service.
Can any one help me on how to increase the pay load size of http input node.
i've tried the command "mqsichangeproperties" and increased jvmheapsize,maxPostSize,maxHeaderSize also.. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Jul 10, 2015 5:51 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
are you using the biphttplistener or the eg listener? |
|
Back to top |
|
 |
ajaykumar.maram |
Posted: Fri Jul 10, 2015 10:13 am Post subject: |
|
|
Novice
Joined: 10 Jul 2015 Posts: 20
|
i'm not using biphttplistener |
|
Back to top |
|
 |
psyconic |
Posted: Tue Jul 14, 2015 4:52 pm Post subject: |
|
|
Novice
Joined: 17 Jun 2015 Posts: 11
|
I had the same problem here was my thread : -
http://www.mqseries.net/phpBB2/viewtopic.php?t=70388
After analysing it I found it was generating a JVM Out of memory error
behind the scenes. This showed up in the Manage Computer, Event
Viewers, Windows Logs, Application Events.
Anyway here is what I had to do.
I had to increase the Maximum Heap size for both broker wide and
execution group HTTP Listeners as I was operating at the execution group
level.
I also had to increase the Maximum Post Size, I also set the minimum
Heap size to 2 Meg (Dunno if that actually helped).
I also had to use curl to run my tests on the correct 7800 port as broker always tested on the broker wide 7080 port.
My dev environment was Windows 7 64 Bit with 8 meg of Ram.
Now here are my settings that allowed me to process via http up to a 700 Meg payload no problems.
In the following my broker was called 'DBKR and the execution group was
called 'default' : -
1. Stop the broker
2. Open the IBM Integration Console
3. Run the following command in the console to set the maximum heap
size for the broker wide HttpListener
mqsiservice DBKR -r MaxJVMHeapSize=7000000000
4. Start the broker again
5. Run the following command in the console to set the broker to use the
execution group level http listener
mqsichangeproperties DBKR -b httplistener -o HTTPListener -n startListener -v false
6. Run the following command to set the maximum post size
mqsichangeproperties DBKR -o HTTPConnector -n maxPostSize -v 1500000000
7. Run the following command to set the maximum heap size for the
execution group http listener
mqsichangeproperties DBKR -e default -o ComIbmJVMManager -n jvmMaxHeapSize -v 7000000000
8. Run the following command to set the minimum heap size for the
execution group http listener
mqsichangeproperties DBKR -e default -o ComIbmJVMManager -n jvmMinHeapSize -v 2000000
9. Stop the broker
10. Start the broker
You can play with the max and min values of course but that worked
for me processing up to a 700 Meg file posted to my Restful Web Service.
Another thing I noticed was if I used the above settings and tried say a 2-3Gig file it would not even get to the broker. I believe this was a curl.exe limitation which was the utility I used to send messages to the broker. I havent confirmed that.
I hope that helps you.
Also when testing make sure you are sending to the right port.
Quoting stoney from my thread
"The broker wide HTTP listener would be the default for an HTTPInput node deployed to IIB V9.
It defaults to ports 7080/7043, whilst the per execution group HTTP listener defaults to ports starting from 7800/7843. "
I used curl to send my test messages to the correct 7800 port as I couldn't get the broker to NOT use the broker wide 7080 port when using IIB9's "test flow".
In my case I was taking in huge json messages that contained a base64 representation of a file via a http post to a restful service, and creating a Binary version of it and then saving it to a database. So my assumption was the broker would need at least twice the memory as the upper heap limit.
One last thing the doco for maxPostSize said 0 is actually setting it to unlimited. It is actually setting it to 0. So don't do that for maxPostSize.
You can also view your current settings by using these commands in the console with your broker name and execution group name.
mqsireportproperties DBKR -e default -o ComIbmJVMManager -r
mqsireportproperties DBKR -e default -o HTTPConnector -r
mqsireportproperties DBKR -b httplistener -o HTTPListener -r
In the example above my broker is "DBKR" and my execution group is "default". |
|
Back to top |
|
 |
ajaykumar.maram |
Posted: Wed Jul 15, 2015 12:15 pm Post subject: |
|
|
Novice
Joined: 10 Jul 2015 Posts: 20
|
hi,
Thanks for the response.
I'm followed ur process at my environment still I'm unable to process the request the exception is like this
Code: |
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>
BIP3113E: Exception detected in message flow newServ_Json
</faultstring>
<faultactor>http://localhost:7080/myserv</faultactor>
<detail>
<text>
Exception. BIP2230E: Error detected whilst processing a message in node 'newServ_Json.Compute1'. : F:\build\slot1\S000_P\src\DataFlowEngine\SQLNodeLibrary\ImbComputeNode.cpp: 515: ImbComputeNode::evaluate: ComIbmComputeNode: newServ_Json#FCMComposite_1_5 BIP2488E: ('.newServ_Json_Compute1.Main', '27.3') Error detected whilst executing the SQL statement ''PROPAGATE TO TERMINAL 'out' FINALIZE DEFAULT DELETE DEFAULT;''. : F:\build\slot1\S000_P\src\DataFlowEngine\ImbRdl\ImbRdlStatementGroup.cpp: 795: SqlStatementGroup::execute: : BIP2230E: Error detected whilst processing a message in node 'newServ_Json.HTTP Reply'. : F:\build\slot1\S000_P\src\WebServices\WSLibrary\ImbWSReplyNode.cpp: 991: ImbWSReplyNode::evaluate: ComIbmWSReplyNode: newServ_Json#FCMComposite_1_2 BIP2667E: An error occurred in ''MQ'' when writing message to queue ''SYSTEM.BROKER.WS.REPLY'' on queue manager ''testQUEUEMANAGER''. State = '-1' ''MQW102'' '2031' '''' : F:\build\slot1\S000_P\src\DataFlowEngine\Connectors\mqconnector\MQOutputInteraction.cpp: 948: MQOutputInteraction::putToQueue: :
</text>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope> |
What i'm doing is just i'm passing base64string of approx 5MB from compute node (static string for test purpose)
can any one help how to overcome this exception..  |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Jul 15, 2015 12:23 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Quote: |
An error occurred in ''MQ'' when writing message to queue ''SYSTEM.BROKER.WS.REPLY'' on queue manager ''testQUEUEMANAGER''. State = '-1' ''MQW102'' '2031' '''' : F:\build\slot1\S000_P\src\DataFlowEngine\Connectors\mqconnector\MQOutputInteraction.cpp: 948: MQOutputInteraction::putToQueue: : |
Just a message too big for queue... Somewhere you are using the brokers HTTP(S)Connector...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
psyconic |
Posted: Wed Jul 15, 2015 5:12 pm Post subject: |
|
|
Novice
Joined: 17 Jun 2015 Posts: 11
|
Maybe open MQ Explorer and right click on the Queue and check that the maximum message length is set large enough for your message.
Also make sure your Queue Managers maximum message length is set large enough as well. |
|
Back to top |
|
 |
ajaykumar.maram |
Posted: Thu Jul 16, 2015 2:08 am Post subject: |
|
|
Novice
Joined: 10 Jul 2015 Posts: 20
|
Thanks all my problem was resolved successfully thanks for your help...
I just increased the max message size of message broker..
 |
|
Back to top |
|
 |
|