|
Ok I am back from vacation and reading 350+ messages and just had to comment on this tread. When using client access Data Queue APIs in an TCP/IP environment, you are using a Socket connection to a data queue server that reads the socket and puts the data into the data queue. So I would have to say that a raw socket application would be faster. Now inter process communications I would tend to favor the data queue for transaction processing and sockets for stream processing. We have applications that have hundreds of clients, Green Screen, Leased Line X.25, ICF and TCP/IP all dumping transactions to a FIFO data queue. We then have several server jobs running that pull from the FIFO data queue and process the transaction. We can start and end servers as the volume dictates. Try that with sockets. I have not found a way to do FIFO processing with sockets. We wait at select for the next transaction and process it when it arrives. Mean while four more transactions come in. The next select tells me I have four transactions to process, not which one was ready first. While processing those transactions six come in on three open sockets. Which one was first? Did I get all the transactions on socket 4 before the one on socket 8 and the one on socket 188? Gets kinda of confusing. Sockets are great and have there place and so are data queues. I would not choose one over the other base on speed but on application needs. Christopher K. Bipes ckb62@cableone.net ----- Original Message ----- From: "Nathan M. Andelin" <nathanma@haaga.com> To: <MIDRANGE-L@midrange.com> Sent: Friday, April 28, 2000 4:52 PM Subject: Re: Socket vs Data Queue speed (was: Processor speed) To test the speed of sockets, here is a simple test (in psuedo code) ----------------------------- Socket Server: ----------------------------- socket() bind() listen() accept() for i = 1 to 10000 read() write() endfor ------------------------------ Socket Client: ------------------------------ socket() connect() for i = 1 to 10000 write() read() endfor You could also do an equivalent test with a pair of data queues. In my tests, data queues completed the exchange of equivalent messages in half the time that sockets took, for programs residing on the same AS/400. For inter-system communication between my PC and the AS/400, my LAN seemed to be the bottleneck. Sockets vs. client access data queue APIs were equivalent in performance. I have never tested sockets vs. remote data queues between two AS/400. It would be interesting to find out the difference? Nathan Andelin. +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
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.