× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Aaron Bartell wrote:
Use data queues and send "end of data set" messages so the queue knows when
it has received all entries. A similar approach would be to make data queue
records as long as possible and "chunk" multiple logical entries onto one
data queue record. Each data queue record would have to have a header area
where you would denote whether there were additional records needing to be
read.

Thoughts?
Data queues have certain properties that make them appealing, specifically the ability to have a single server support multiple clients. I've done a lot of that over the years; it has pluses and minuses. It's best suited for situations where your server load needs to be controlled; you can more easily control the resources assigned to a given activity by controlling its server.

However, for pure OLTP (and the even faster response time requirements of Web 2.0), I've moved almost entirely to a program call approach. As server CPW grows in leaps and bounds, its more about call-to-call performance rather than load control, and for that nothing beats direct program calls. And its quite easy to do "chunking" with program calls - you simply call the program multiple times. One of the simplest approaches is to call a program with two data structures: a control DS and a data DS. The control DS is used to indicate the operation to perform and to return the result code. The data DS is simply for passing data. To emulate a "result set", you perform an "init" opcode, and then start doing "get next" operations. The control DS returns a flag indicating EOF.

One of the many benefits of this approach is that paging is entirely under control of the client. It can start or stop reading records at any time and reset the control pointers. You can even use embedded SQL in your called program with a cursor and in effect page your SQL calls.

It's a great architecture.

Joe

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.