I've got to invoke a RPC service, and all the parameters sent are String. It works quite well when the data is relatively small, but when one of the string grows to the size about 10 or over hundred KB, immediately after the service is invoked, it goes to the error handler:
[FaultEvent fault=[RPC Fault faultString="Error #2006: The supplied index is out of bounds." faultCode="InvokeFailed" faultDetail="null"] messageId="85CF2FB3-E79D-779F-87F9-B04520318D3A" type="fault" bubbles=false cancelable=true eventPhase=2]
And the server side still got invoked, and when it returns the result, error raised:
Error: Command already finished executing: [object AsyncTokenCommand]
Google says error #2006 may because of too many hierarchy levels, which seems impossible to me because all my parameters are string. And I also don't have the chance to mistake on index.
I first thought it was because the string sent is too long, I segmented it and sent in a list, but didn't work.
Thanks in advance if you guys can give any help.
Finally got it right.
It was because I turned on the Network Monitor in Flash Builder.
Everything OK after it's off.
Related
In Go, a call to the net.Listener type's Accept method returns an error. However, is there a way to tell the difference between a transient error (ie, this connection failed to set up) vs a permanent error (ie, the listener is dead, such as a Unix domain socket file that was forcibly removed)? If I can't tell the difference, I run the risk of infinite looping and spitting out errors as fast as I can since each Accept call will immediately return an error.
Figured it out. Errors returned by the net package may be of the net.Error type, which defines the Temporary() bool method which reports whether the error is temporary.
I am using flex remoting to php, and it works very well, except I occasionally get these 'Invalid URL' fault messages.
In the message below, notice it is using an ip address. SO, no dns lookup issue.
There are usually minimum 10, up to 50 users logged in to this application at one time and there are only a few faults (not at the same time), so I dont think it was a server or larger network issue.
This particular message is to the PollService, so that tells me this user has already communicated with the server a number of times. For example, to log in and to load across other data. The polling is an every 10 seconds flex timer that calls the remote service.
SO, I am trying to figure out if this is an error on the server side, returning something flex did not like, or if it is in fact some lower level network/communications issue, OR possibly something else like an internal flex glitch? Then I would like to figure out how to appropriately handle this fault - maybe re-transmit after a delay?
PollService Send failed Client.Error.MessageSend Channel.Connect.Failed error Invalid URL url:
'http://172.16.10.26:80/amf/indexPoll.php' [ChannelFaultEvent faultCode="Channel.Connect.Failed"
faultString="error" faultDetail="Invalid URL url: 'http://172.16.10.26:80/amf/indexPoll.php'" channelId=null
type="channelFault" bubbles=false cancelable=false eventPhase=2]
Thanks!
we use Validate activity in our BPEL processes to validate input and output messages like this:
<validate name="validateInput" variables="inputVariable"/>
It works fine, but when an validation error occurs, the consumer gets only this kind of fault:
<env:Fault xmlns:ns0="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
<faultcode>ns0:invalidVariables</faultcode>
<faultstring>faultName: {{http://docs.oasis-open.org/wsbpel/2.0/process/executable}invalidVariables}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}</faultstring>
<faultactor/>
<detail>
<exception/>
</detail>
</env:Fault>
So my consumer knows that he sent invalid message but he gets no information at all about what exactly went wrong.
In Enterprise manager I can see the validation error message with the reason why the message failed the validation:
Invalid data: The value for variable "inputVariable", part "payload"
does not match the schema definition for this part Element 'ptSrcIdx'
not expected.
I need to return this validation error message to my consumer so he can see what was wrong with his message.
I will appreciate any help. Thanks!
It seems Oracle has some patch for this issue, also it should be ok in 11.1.1.7.
In the meantime we use our own validator written in java and called from Embed Java BPEL activity. It is little slower (cca +20%) but works fine.
I am trying to Enqueue a message onto an Oracle Queue from a .NET client. If the message exceeds a certain size, the following error occurs:
ORA-01013: user requested cancel of current operation
This happens with both XMLTYPE and raw as the queue table's message type.
It seems that the size of the message is to blame but cannot tell for sure be cause of the limited Oracle error message.
Is there a limit on the size, can I increase the size or is there another way to overcome this issue?
Update:
I am able to send the message directly with dbms_aq.enqueue(...)
Setting the timeout from the .NET client does not have any effect. (It times out immediately regardless of the timeout value)
This sounds like a connection timeout from the .net client. Try increasing the timeout. If that doesn't work, check if the issue is with the message payload by inserting the message directly through dbms_aq.enqueue(...). If you are able insert, then the message itself is fine.
There are a couple of size-related issues being fixed for 11.2.0.3. See this non-authoritative list here:
http://www.eygle.com/Notes/11.2.0.3.html
Some examples:
9878459 Specific length object binds over 4k may be bound as NULL
10389881 Raw buffered message payload > 8k corrupted when dequeued
from a buffered queue
Maybe, your issue is in this list?
I am getting this error during serialization:
RangeError: Error #2006: The supplied
index is out of bounds.
The error occurs in AbstractMessage.as when it attempts to read input of timestamp.
After that my fault handler gets this error:
faultCode:Server.Acknowledge.Failed
faultString:'Didn't receive an
acknowledge message' faultDetail:'Was
expecting
mx.messaging.messages.AcknowledgeMessage,
but received null'
It appears to be happening as a result of an ArrayCollection coming back from the server.
Is it necessary to create custom classes to handle serialization of ArrayCollections with custom objects as shown here?
I've also followed the serialization recommendations here with no luck.
Thanks for your help!
The solution was correcting a mistake in writeExternal on the Java side. I was being very careful about the order of serialization but was writing an int as an object using writeObject. This will cause errors in completely unrelated code on the client side after it tries to readInt.
I just experienced this error myself, and it turns out it is caused by the Flash Builder Network monitor being enabled!! FB 4.0.1 this is.
I was going nuts for not finding the reason, so sharing it here for your peace of mind.