Question Java Connecting Appserver For Sdo

Vaalen

Member
Hi all,

Not sure if this is the correct spot, correct me if I'm wrong.

I have an appserver and a simple SDO to get records from one specific table to my java prog.
Works absolutely fine but when my table has lots of entries (I am currently testing a table with around 38000 entries) my Appserver connection seems to be lost before I get any records.

Works fine with another test with 7000 records. My suggestion is that building up the result set just takes too long. Is there any way to influence such a timeout?

Regards,
Karin
 

RealHeavyDude

Well-Known Member
I've done a lot of things with Java accessing the OpenEdge AppServer via the Java open client but I never tried to load such a large dataset. We implemented a batching mechanism similar to - as far as I know - the sdo has built in.

Which method of the sdo do you use to fetch the data set?

BTW, as always, the OpenEdge version is valuable information for us.

Heavy Regards, RealHeavyDude.
 

Vaalen

Member
Sorry for the delay. Working with version 10.2b on win7. Database runs on Redhat linux.

From Java I make a call to _createSDOResultSet. I think very basic? Is there another way?

My problem is how to read a large amount of records, write them to a Postgres database and after that alter the status of the Progress records I have read. In one transaction. I should be able to rollback the whole thing if anything goes wrong.
I found out my Appserver has to be in a state free mode instead of stateless.

I have been testing with 1.000.000 recs. Reading is fast, writing to Postgres is quick, but updating Progress is very slow (using an SDO with just one updatable field).

Any suggestions how to speed up writing to Progress is welcome...
 

RealHeavyDude

Well-Known Member
There are a couple of things from my point of view:
  1. What does the AppServer log file say?
  2. Why do you need one big transaction? IMHO it would be a better design to do a transaction on small batches.
  3. You can't spawn a transaction across two different technologies in such a way. That is not how a state free AppServer works.
  4. From my experience, working with result sets and an SDO may be good for small sets of data but not for large ones.
  5. Even if you want to use an SDO I would access it through my own wrapper which would work with a ProDataSet that it hands out and accepts as input.

RealHeavyDude.
 
Top