[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 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...]
12 years, 11 months
[jBPM] - Re: JBPM 5.4 Human task connected by HornetQ
by Nicolas Louis
Nicolas Louis [https://community.jboss.org/people/nicols] created the discussion
"Re: JBPM 5.4 Human task connected by HornetQ"
To view the discussion, visit: https://community.jboss.org/message/819003#819003
--------------------------------------------------------------
Hi Clebert,
Sorry, I'm a little bit confused, maybe i haven't explain correctly my problem.
I would like to use JBPM in cluster, with human task, so i have to use an implementation like Mina or HornetQ to transport my information, is it correct ?
In the jbpm example, i see a new instance of HornetQ like this : new HornetQTaskServer(taskService, "127.0.0.1", 5445)
But i don't see how i can connect directly to my JMS queue (HornetQ) of jboss?
Thanks,
Nicolas.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/819003#819003]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
12 years, 11 months
[JBoss Web Services] - Invocation of a Web service using invokeAsync calls invoke method
by Edin Joselyn
Edin Joselyn [https://community.jboss.org/people/edinsamuel] created the discussion
"Invocation of a Web service using invokeAsync calls invoke method"
To view the discussion, visit: https://community.jboss.org/message/818959#818959
--------------------------------------------------------------
Hi,
I have an issue with my client in JBoss calling a web service defined in Adobe Life cycle. I want to call the invokeAsync method from my client and I'm using the following code to call the invokeAsync method in the web service.
ARDocsImportProcessesCiderSend8130Service service = new ARDocsImportProcessesCiderSend8130Service();
ARDocsImportProcessesCiderSend8130 port = service.getSend8130();
String pid = port.invokeAsync(document, metadata);
But, eventually, the JBoss JAX-WS internally calls the invoke method instead and I get the exception *"Exception: ALC-DSC-127-000: com.adobe.idp.dsc.LongLivedInvocationException: The Long Lived Service ARDocsImport/Processes/Cider/Send8130 can not be invoked synchronously"*
I'm able to call the invokeAsync method in the web service using a standalone program, but when I'm doing it from within JBoss I'm getting the error as it is internally calling the invoke method, instead of the invokeAsync method. I'm using JBoss 5.0.0.*
*
I've also attached the WSDL file. I generated the proxy classes using the wsimport command available in jdk 1.6.
Please let me know if I'm missing something or something else needs to be done.
Thanks,
Edin.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/818959#818959]
Start a new discussion in JBoss Web Services at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
12 years, 11 months
[jBPM] - Created workflow definition programmatically - How to assign variables to switch on SplitNode?
by pras mn
pras mn [https://community.jboss.org/people/bloreguy] created the discussion
"Created workflow definition programmatically - How to assign variables to switch on SplitNode?"
To view the discussion, visit: https://community.jboss.org/message/818953#818953
--------------------------------------------------------------
I am creating a workflow definition programmatically and am able to invoke the workflow and execute any action nodes and work item nodes ( which in turn calls a WorkItemHandler). However I am stuck in transitioning outaide of a SplitNode.
I have a HumanTaskNode assigned to a user. When the user approves or rejects an order, I have a split node which will redirect to 2 different nodes. The constraint I have added for the SplitNode is as follows:
SplitFactory splitFactory = factory.splitNode( 1000)
.type(Split.TYPE_XOR)
.name("SplitNode");
splitFactory.constraint(2000, "orderApproved?", "code","java","return !orderApproved").done();
splitFactory.constraint(2500, "orderApproved?", "code","java","return orderApproved).done();
My question is how do we set the value of orderApproved at runtime so that the SplitNode can redirect to either node 2000 or node 2500? Should it be done in a WorkItemHandler? If So, what needs to be passed in to the workitem handler and how to read the value of the orderApproved back ?
I receive the value of the orderApproved via a web service call and need to assign it to the process variable "orderApproved". Any assistance with code samples or pointers will be greatly appreciated
orderApproved is declared earlier as
factory
.name("name")
.packageName(workflow.getName("name")
.variable("orderApproved",new ObjectDataType(Boolean.class.getCanonicalName()))
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/818953#818953]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
12 years, 11 months