Saving data in the database afterwards

Posted by delen on 17-Feb-2015 06:31

I am studying the possibility of recording data in the database afterwards.
I would want to know if it is possible to save the data in the database locally (due to network problems, AppServer or otherwise) and then update the database when the system is available again in simple way more or less automated.
Have you accomplished the same thing?

Thanks.

All Replies

Posted by Rob Fitzpatrick on 17-Feb-2015 08:39

You have left out a lot of information that might be useful for people who want to help you.  And frankly, your post is hard to understand.  For example: "I am studying the possibility of recording data in the database afterwards."  After what?  You didn't say.

You are describing your desired solution rather than your problem.  

What is your Progress version and you current architecture, and what problems are you experiencing?

Posted by delen on 17-Feb-2015 08:54

I experience no problem.

I would want to save data locally when a problem like network, appserver or otherwise problem occurs, so client data can't be write in database.

So when database access is available again, I am searching about software or programming to be able to update the database in simple more or less automated from data saved offside on client.

I contact Progress Software Support who advice me to post in this Community forum.

My Progress version is OE 11.1 client side on Windows Seven and Progress 11.0 server side on AIX.

Posted by Brian K. Maher on 17-Feb-2015 09:04

 
Hi Folks,
 
I suggested that this customer contact the communities site so he could gain the benefit of what other customers might do.
 
I have seen SonicMQ used for this sort of offline storage along with local copies of the database but since neither of those options are simple or automated as the customer wants I was hoping that others may join in with ways they have accomplished this.
 
Thanks,
 
Brian Maher
Technical Support
 
 

Posted by Thomas Mercer-Hursh on 17-Feb-2015 10:02

It sounds like you are talking about one of two classic problems.  One is a connection which is up most of the time, but is unreliable and one wants to keep working when it is down.  The other is a connection which is mostly down, the classic being a salesperson working on their laptop unconnected and then resyncing in the evening.  In both cases you need some kind of local storage or a guaranteed delivery mechanism like Sonic ... which itself needs local storage on your side of the connection.  The classic hard part of this is that changes get made on both sides, so how do you resolve those changes when they relate to the same data.

Posted by OctavioOlguin on 17-Feb-2015 10:57

I'm facing a very same sort of problem... and what I can tell you is that I'm about to proceed with something like this article you can find in the knowledge base:

"How to run a 4GL procedure in the background using widows to do some database locally processing periodically?"

combined with some I had to learn from my posting in

community.progress.com/.../15906.aspx

Hope it brings light in your search.

Greetings

Posted by Rob Fitzpatrick on 17-Feb-2015 11:02

"How to run a 4GL procedure in the background using widows to do some database locally processing periodically?"

That search doesn't return any articles in the KB.  Can you provide a KBase ID or URL for the article?

Posted by Thomas Mercer-Hursh on 17-Feb-2015 11:10

I might note that I first thought this must be on the Mobile forum since it is a classic problem there.

Posted by OctavioOlguin on 17-Feb-2015 11:14

footer on the printed page states:

P75991

(knowledgebase.progress.com/.../p)

I've never found how to get an article by number, and I posted that question back then..

Posted by OctavioOlguin on 17-Feb-2015 11:17

funny indeed...

The very precise title of article won't be a hit in the search...

Posted by Thomas Mercer-Hursh on 17-Feb-2015 11:30

Searching on 75991 locates the article ... under a new number

knowledgebase.progress.com/.../P75991

Posted by Rob Fitzpatrick on 17-Feb-2015 11:31

Yes, it is odd that KB search didn't find that article.

Regardless though, I don't think that article helps with this problem, in as much as I understand it.  Based on what has been said so far it seems the OP wants to design a reliable client/server application to run across an unreliable network.  

The referenced article talks about connecting a batch-mode client to a local database via TCP.  It doesn't discuss anything like client-side caching.  And running in batch mode won't do anything to make an OpenEdge client more resilient to network drops.  

In my experience, OE clients are pretty sensitive to network problems.  If the client loses its connection to its database, it will raise a STOP condition.  

If the network in this case can't be improved to make it more reliable, it may be better to put the application tier on the database server.

Posted by Thomas Mercer-Hursh on 17-Feb-2015 12:35

Reliable messaging, however, does allow one to run partially connected.  If the line is mostly connected, it is very straightforward.  If it is like the salesman setup I described, one has to recognize that messages processed at night may be posted against a DB which is in a different state than the rep's last image and you need to reconcile those issues.  E.g. the rep can tell the customer that there are 1000 in stock so an order for 100 is no problem, but two orders for 500 may get processed before the reps order arrives.

Posted by delen on 18-Feb-2015 02:00

I don't think integrity is my main problem.

It's a schedule management software, so entrance time and exit time are the only data I want to write locally.

This thread is closed