#1 Re: mORMot 1 » ID1ID2 error » 2017-09-22 16:32:32

Hello Arnaud,

what do you mean by check the exception line on client side ? Which line -in my code- does raize this error ?
I cannot access the exact line because it is embbeded in my .so file, but I think this Exception is raized from AndroidAPI.JNIMarshal.execJNI(void*, void*, void*, Androidapi.JniMarshal.JNIMethodInvokeData*)() method (find in my calling stack while stoping debugging after this error) if not a compression error, what could it be ? sad

Hopefully this will enlighten my issue..

#2 mORMot 1 » ID1ID2 error » 2017-09-21 07:33:57

M477h13u
Replies: 2

Hello everyone,

I am facing an error that I have never encounter before: "Java.IO.IOException: ID1ID2: actual 0x00001f00 != expected 0x00001f8b".

It happens on client side (TSQLRestClientHTTP, an android client), while my apk receive the answer from my TSQLHttpServer with useBidirSocket option. We have some interface base services implemented, most of them does not encounter this issue.

My hypothesis that ensue from my research is that it is a compression issue, but I am a little perplex as I did not change a thing on that matter.

Can anyone give me a hand ? (:

#3 Re: mORMot 1 » Degraded TSQLHttpServer » 2017-09-07 12:48:10

Thank you for the very quick answer mister mORMot! (:

I tried what you advice, but I did not find any 'AcquireExecutionMode' property for TSQLHttpServer .. but it is implemented in TSQLRest class .. Am I missing something ? yikes

#4 mORMot 1 » Degraded TSQLHttpServer » 2017-09-07 08:51:30

M477h13u
Replies: 3

Hello AB! (:

I am actually working on a project which is a client/server TSQLHttpServer using WebSockets, useBidirSocket and a TSQLRestServerFullMemory.

For a test purpose, we would like to know if it is possible to 'degrade' the server in order to make him not multi-thread, is that possible ? If so, what do you advise ?

#5 Re: mORMot 1 » Test Android application JMeter » 2017-09-01 10:05:36

Hello Arnaud,

I hope you're all right (:

Yes indeed, our server is using JSON kind of Websockets!
But can you be more specific about the mORMot JSON layout ? I'm not sure what you mean yikes
But still, I do not understand why I am able to make a successfull load testing with correct request and answer with my minimalist project but not with the complete one..

I just noticed that our android client is not implementing the "FClient.WebSocketsUpgrade(TRANSMISSION_KEY)" that is suppose to upgrade http communication to websockets.. but it does not seem to be crossplatform and I did not find any equivalent in the SynCrossPlatform folder, am I missing something or is it not implemented yet for Android client ?

With the hope to read you! big_smile

#6 Re: mORMot 1 » Test Android application JMeter » 2017-08-30 16:48:24

Hello Arnaud !! smile

I tried what you recommended me concerning the project 21.. but unfortunately these classes (TTestMultiThreadProcess & TSynTestsLogged) are not compatible with Android .. so I manage to use TTask object in order to make my multithread.. but I wasn't really convinced by these tests.. as I only managed once to get 50 users connected; the rest of the time, it is just not stable..
So I tried NeoLoad, another load testing solution which manage Websocket.. I first try this solution with my minimal project ... AND IT WORKS ! big_smile  I manage to do a full load testing...

Unfortunately when I do my load testing with my full project .. I still get the 403 error on '/root/MyServiceName._contract_' & '/root/MyServiceName.DoMethod' ...... I do not understand why, because I have the really same NeoLoad's configuration, my only clue would be a security measure proper to mORMot .. Do you have any clue ? sad

Hope to read someone on that matter !

#7 Re: mORMot 1 » Test Android application JMeter » 2017-08-25 16:11:48

Hello Arnaud! big_smile

First of all, thank you for these recommendations and highlights !

I did check about JMeter & WebSocket, and indeed, JMeter does not manage WS. On the other hand, I found that some pleople created a plugin in order to add WS samplers on JMeter, but I did not manage to get the proper server's answer!

So I analyze more carefully about what was done in the "21 - HTTP Client-Server performance" sample. If I get it right, it is just launching multithread in order to multi-insert in the SQLite Database ?
Correct me if I'm wrong: for my own load testing, I just have to use TSynTestsLogged and create my own 'TTestMultiThreadProcess', in order to multi-request my interface-based services in different thread and analyze the timers in correlation with the number of thread and user per thread ? roll

Hope to read you guys and I wish you a good week-end for the lucky ones! big_smile

#8 Re: mORMot 1 » Test Android application JMeter » 2017-08-24 08:26:36

Hello Arnaud! big_smile

currently I am working on a very basic client(Android)/TSQLHttpServer with useBidirSocket option. The Client is just requesting an -Interface based- service (sicPerUser).

1) I change that option to useHttpApiRegisteringURI which is suppose to register my URI automaticaly.. but still, I got my 403 and/or 406 error while requesting the '._contract_' and my 'method's service' on JMeter (netsh cmd comfirmed that 'http://+:7274/root/' was indeed registered whereas it was not with useBidirSocket!) .
Anyhow, my initial project need to enable WebSocket + immediate event callbacks, so I guess I am obliged to set Server option to useBidirSocket +  use WebSocketsEnable() method ?
Thus, with this configuration, should I still sign my URI ? If so, how should I do ?

2) I take a look at the e.g. "21 - HTTP C-S performance".. Basically I just have to add TTestMultiThreadProcess & TSynTestsLogged objects on client side ?
It seem that I also need to adapt TTestMultiThreadProcess.Test method in order to do what I want in my own project ? I.E. it's the entry point of my android client ?

Hope to read you guys big_smile

NB: Sorry if I ask novice questions or if I missed something in the documentation ... but I am new to all that roll big_smile

#9 Re: mORMot 1 » Test Android application JMeter » 2017-08-22 09:57:45

Hello everyone!

I would really appreciate to get feedback on that matter! (:

I am able to authenticate my current user, but all my POST requests return with a 403 or 406 error ..

Hope to read you guys big_smile

#10 Re: mORMot 1 » How avoid "contract differs from client's" to allow updating? » 2017-08-09 07:45:17

Hello Arnaud!
Thanks for the quick answer !! (:

I should have precise that I am using TServiceClientAbstract class from SynCrossPlatformREST (V 1.18) as my Client is an Android one... I checked for the last release of your framework, and the variable has not vanished from SynCrossPlatform!
Were you talking about a none SynCross-Platform Client ?

Concerning the contents of the contract, it is only working when I put numbers .. and I wanted to put letters and special caracters.. but when I do, I get the error I wrote above..
For example, if I put "10.7" as a contract, the server side will interpret it as ''10,7" so I get the above error..

Thank you for your time big_smile

#11 Re: mORMot 1 » How avoid "contract differs from client's" to allow updating? » 2017-08-08 12:47:45

Hello there everyone!

I am having issue with fContractExpected. You're saying above that this variable can hold a version number.. and this variable is of type String.. so I was wondering if it could handle something else than just number i.e. letters or special caracters ?
So, I tried to give him a contract like 'ServiceProvider', but when I do, I get the following error : ''Invalid contract "" for TServiceParams: expected "ServiceProvider" '. What is odd is that the server's contract totally vanish in the maelstrom based on this message..
It is not specify in the documentation (Or I missed it.. yikes) whether it can only hold numeric caracters; that's why I am asking you this little question (:
Hope to read you promptly and thank you guys for this awesome work you're doing !!! big_smile

Board footer

Powered by FluxBB