[EJB3] - Size limit on Remote EJB Calls
by Justin Hayes
Justin Hayes [https://community.jboss.org/people/justinhayes] created the discussion
"Size limit on Remote EJB Calls"
To view the discussion, visit: https://community.jboss.org/message/787159#787159
--------------------------------------------------------------
I have a SLSB that I invoke remotely and there appears to be a limit on how large the argument I can pass in a method call is. I'm using EAP 6.0.1 (jboss as 7.1.2 Final) and deploying my ejb as part of an ear. My client runs in a …
[View More]separete JVM and uses jboss-ejb-client 1.0.5.Final.
EJB3 interface:
public String ingest(NATLog[] values);
EJB3 impl:
@Override
public String ingest(NATLog[] values) {
//do something
}
NATLog is a simple POJO with 11 String member variables. The total size of one of these fully populated is about 300 bytes.
When I use an array up to about 150 NATLog objects, the EJB call works fine. When I pass in an array of 200 NATLog objects, the EJB call just hangs. And when I finally kill the client via ctrl-c, I get the following error message in the server's console.
15:49:56,740 ERROR [org.jboss.as.ejb3] (Remoting "cirries-3001" task-1) JBAS014248: Exception on channel Channel ID 699cd0be (inbound) of Remoting connection 58f368dc to null from message org.jboss.remoting3.remote.InboundMessage$3@41c61c91: org.jboss.remoting3.MessageCancelledException
at org.xnio.streams.BufferPipeInputStream.checkFailure(BufferPipeInputStream.java:280) [xnio-api-3.0.7.GA-redhat-1.jar:3.0.7.GA-redhat-1]
at org.xnio.streams.BufferPipeInputStream.read(BufferPipeInputStream.java:125) [xnio-api-3.0.7.GA-redhat-1.jar:3.0.7.GA-redhat-1]
at org.jboss.remoting3.remote.InboundMessage$3.read(InboundMessage.java:122) [jboss-remoting-3.2.14.GA-redhat-1.jar:3.2.14.GA-redhat-1]
at java.io.DataInputStream.readByte(DataInputStream.java:265) [rt.jar:1.6.0_24]
at org.jboss.as.ejb3.remote.protocol.versionone.AbstractMessageHandler$2.read(AbstractMessageHandler.java:249)
at java.io.InputStream.read(InputStream.java:170) [rt.jar:1.6.0_24]
at java.io.FilterInputStream.read(FilterInputStream.java:133) [rt.jar:1.6.0_24]
at org.jboss.marshalling.SimpleDataInput.read(SimpleDataInput.java:92) [jboss-marshalling-1.3.15.GA-redhat-1.jar:1.3.15.GA-redhat-1]
at org.jboss.marshalling.UTFUtils.readUTFBytes(UTFUtils.java:155) [jboss-marshalling-1.3.15.GA-redhat-1.jar:1.3.15.GA-redhat-1]
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:281)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1678)
at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1594)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1236)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadCollectionObject(RiverUnmarshaller.java:180)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObjectArray(RiverUnmarshaller.java:1503)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadArray(RiverUnmarshaller.java:1542)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:326)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37) [jboss-marshalling-1.3.15.GA-redhat-1.jar:1.3.15.GA-redhat-1]
at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.processMessage(MethodInvocationMessageHandler.java:162)
at org.jboss.as.ejb3.remote.protocol.versionone.VersionOneProtocolChannelReceiver.handleMessage(VersionOneProtocolChannelReceiver.java:180)
at org.jboss.remoting3.remote.RemoteConnectionChannel$5.run(RemoteConnectionChannel.java:435) [jboss-remoting-3.2.14.GA-redhat-1.jar:3.2.14.GA-redhat-1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.6.0_24]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.6.0_24]
at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_24]
Caused by: an exception which occurred:
in field origIP
in object of type org.jboss.tusk.juniper.ispn.NATLog
in element at index [107] of size [200]
1. Is there a size limit for the data passed in via remote EJB3 calls?
2. Are there any settings I can do in JBoss to tune the behavior with regard to EJB calls?
Thanks,
Justin
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/787159#787159]
Start a new discussion in EJB3 at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
[View Less]
11 years, 9 months
[jBPM] - How to fill the value of "outcomes" field in JBPM-console JSON for Personal Task List?
by Thomas Setiabudi
Thomas Setiabudi [https://community.jboss.org/people/thomas.setiabudi] created the discussion
"How to fill the value of "outcomes" field in JBPM-console JSON for Personal Task List?"
To view the discussion, visit: https://community.jboss.org/message/776140#776140
--------------------------------------------------------------
Hi,
In our environment, we use JBPM5.3 as a service via JBPM-Console REST service.
when we call this REST:
/gwt-console-server/rs/tasks/{idRef}
The resulting JSON is …
[View More]something like this:
{
tasks:
[
{
id:6,
processInstanceId:11,
processId:com.sample.evaluation,
name:Performance Evaluation,
assignee:thomas,
isBlocking:true,
isSignalling:false,
outcomes:[],
currentState:ASSIGNED,
participantUsers:[],
participantGroups:[],
url:http://localhost:8080/gwt-console-server/rs/form/task/6/render,
priority:0
},
{
id:7,
processInstanceId:11,
processId:com.sample.evaluation,
name:Performance Evaluation,
assignee:thomas,
isBlocking:true,
isSignalling:false,
outcomes:[],
currentState:ASSIGNED,
participantUsers:[],
participantGroups:[],
url:http://localhost:8080/gwt-console-server/rs/form/task/6/render,
priority:0
}
]
}
The outcomes field is always empty.. "outcomes":[]
is there any way to fill value to this field?
We have a requirement to add a custom field for every human task, and retrieve its value when we open personal task list.
We thought that maybe we can fill in the custom field in the JSON "outcomes" field.
is it possible? Or is there any other way? maybe like create a custom WorkItemHandler that extends the Human Task?
Any help is appreciated.
Regards,
Thomas Setiabudi
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/776140#776140]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
[View Less]
11 years, 9 months