cancel
Showing results for 
Search instead for 
Did you mean: 

Inconsistent Data - During a SYNC rfc broken beetwen Middleware and Backend

Former Member
0 Kudos

Hi to all,

I've a BIG problem with inconsistent data because if at the end of ad day of work during a sync the rcf for a little time broke I lost all data. Because the inconsistent data not used to anything.

The MI application is a application developed by myself with 5 syncBo of type S01.

The error that I see in the trace file is:

[20080109 12:58:36:327] E [MI/Sync ] Exception while synchronizing via http

com.sap.ip.me.api.services.HttpConnectionException: Exception while synchronizing (java.net.SocketException: Remote Connection Closed: Remote connection closed)

at com.sap.ip.me.sync.HTTPSynchronizer.synchronize()

at com.sap.ip.me.sync.HTTPSynchronizer.synchronize()

at com.sap.ip.me.sync.HTTPSynchronizer.exchangeData()

at com.sap.ip.me.sync.SyncManagerImpl.processSyncCycle()

at com.sap.ip.me.sync.SyncManagerImpl.syncForUser()

at com.sap.ip.me.sync.SyncManagerImpl.processSynchronization()

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend()

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend()

at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend()

at com.sap.ip.me.apps.jsp.Home$SyncRunnable.run()

at java.lang.Thread.run()

The error that I see in the log of the merep_mon is:

E 09.01.2008 12:56:56 RFC system error: connection to partner 'rsat1:sapgw00' broken / CPIC-CALL: 'ThSAPCMRCV' : cmRc=20

E 09.01.2008 12:56:56 Return code 1 (DOWNLOADER)

Anybody have the solution?

Regards,

Alessandro

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

if connection breakes - well, it is not really for RFC problems, but anyway:

See if Note 921061 helps.

If RFC breaks - what can you see on ST22 in the systems

Regards,

Oliver

Former Member
0 Kudos

There is two problem.

First problem:

The parameter MobileEngine.Sync.WaitForResultsTimeout don't work fine.

- If i set this param at 1800000 the sync dont work and i get this exception :

com.sap.ip.me.api.services.HttpConnectionException: Exception while synchronizing (java.net.SocketException: Remote Connection Closed: Remote connection closed)

- If i set this param at -1 the sync work fine.

This not solve the problem because i need a timeout of sync.

Second problem:

The rfc broken is a problem of rfc comunication but in st22 I don't look any dump.

I find the log in sm21.

Former Member
0 Kudos

Hi,

well, why do you need a timeout? There are timeouts in J2EE that will occure as well. Usually leave them as default values like 99.9% of all customers and you have no issue with it. If you start setting it - then you need to set other values like the waitForTimeouts and you need to test the result and adapt the values until it is working fine again. The standard values are tested and work fine.

Even with a -1 sync will not run endless cause as I said, J2EE itself has a timeout and this is clarified in the notes. So the sync will stop for sure after a while.

Well, ok, the error is in SM21 - but what does it say? Is the error gone when you set the parameter to -1?

Regards,

Oliver

Former Member
0 Kudos

I'm working with a PDA with a connection by cable for sync.

If a "crazy" user remove the cable before the end of the syncronization the sync don't stop.

Then i need a timeout.

The error in SM21 is about a "rfc broken" beetwen the middleware and backend and is a different problem ( lan problem).

Regards,

Alessandro

Former Member
0 Kudos

Ah, there you come from .....

Mop, this is not correct - if the user removes the cable the sync wil stop as well - with an E500 or so. Because while sync the connection is not always open - it triggers several new connections to get and send data. So if after a while the connection is not longer available the sync will stop with an error on the device.

If you run into a "sync loop", try the button "Mobile Engine Home" from the start menu. This should help

What you do is, you set a timeout and that is the reason for the error you see. What you want is a smooth stop of the sync after a certain time, this you expect with the value you have set, but what you do is, you do a hard stop while the sync is still running.

Hope I now understand your issue correctly. Sorry for the confusion previously.

Regards,

Oliver

Former Member
0 Kudos

If the user removes the cable the sync wil NOT stop on the device.

I've look for this parameter becuse while the sync is still running if connection in not longer available the sync don't stop.

If I stop the sync whit a soft reset after that the data are inconsistent.

Regards,

Alessandro

Former Member
0 Kudos

Hi,

it will not spor emmediately - this is true!

Instead of Soft reset, try the MI button in the start menu - This will help. Not emmediately - MI need some time to find out that the sync has stopped caused by a landspace failure.

And if you really want to be on the safe side: if you develop your own Sync Screen, this is pretty much the best solution in your case!

Say it like that: the sync stops for sure - you can see that in the log! But the IE does not recognise that in some cases. And as I said: give MI some time, not remove the cable and expect an error immediately. See how long it takes to get an exception if you have not cradeled the PDA and start the sync. It can take up to a minute at least until the error occures.

So after removing the cable it is even worse. This is cause by the fact that MI does not permanently check if the conection is still there. It tries to write data into persistence and so on.

Are you using DB2e? With DB2e the data should not be inconsistent after a soft reboot. I do not guarantee for FileIO.

Well, as I say, best solution in that case: develop your own sync screen and do no refresh while you sync. In that case you will see the error.

Regards,

Oliver

Former Member
0 Kudos

I use FileIO and I would like to try the Db2e.

Is an expensive work?

there is some reference guide?

I've find the solution at the first problem:

If in the PDA the system time is 15:00-2007/11/01

and in the middleware the system time is 15:00-2008/11/01

and the parameter WaitForResultsTimeout isn't -1 the sync don't start because it goes in timeout immediatly!

I don't know if this is a bug but i think so.

Regards,

Alessandro

Former Member
0 Kudos

This is not a Bug / it is a feature

Well, to switch to DB2e is usually not a problem while coming from FileIO, the other way can be an issue, cause not everything form DB2e is supported.

Beside the usual MDK doku and the DB2e own docu I do not know anything else / sorry for that.

Just deploy it / this should work immediately.

Regards,

Oliver

Former Member
0 Kudos

Wonderfull feature !!! 😮

A double time control to determine a timeout... brrrrrrr

Well, when a worklist of a syncBo remains at I-Partial (for a timeout or for a lan problem)... What should I do to unlock the request?

Because in the next syncronization the PDA can't sync again...

Regards,

Alessandro

Former Member
0 Kudos

this is the best errors form all

Stops everything until a admin starts it again.

Unfortunately the only thing you can do is to select the I-Partian item and set it to ignore.

Then you need to select another one and tell REPROCESS - because it dies not start automatically again I have seen.

And: this error occures because the timeouts of the J2EE are to short. Check the NOTE I mentioned earlier and set the timeout to 30mins. I had it at 10min and still I got the exceptions - since it is on 30mins it is fine.

MI needs some time for processing sometimes

Regards,

Oliver