Subject: | |
From: | |
Reply To: | |
Date: | Thu, 18 Mar 2004 16:51:28 -0500 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
From: "Jack Nickels" <[log in to unmask]>
> On the HP3000 side, we have a listener program which is constantly
> running on a particular port in HP3000. On each data request at the
> port, the listener spawns another program which reads the data from
> the port, process the data and returns success/failure back to the
> Oracle
>
> On the Oracle side, we have UTL_TCP open socket connection, send data
> to HP3000, receive success/failure and close the socket connection.
> This step is repeated for each transaction in Oracle that is to be
> sent to the HP3000.
>
> We are looking at huge volume of requests coming from Oracle side.
> With the current design, will the HP3000 programs be able to support
> volume of 1000 transactions per minute? Will opening multiple sockets
> for this be a solution?
The spawning of a new program for each request is slow on the HP3000.
My approach is this (we use it for our COBOL "application server")--
Have the application start, and open a listen socket
The application forks to create N children. They thus inherit the
listening socket.
The children run like this:
initialize--open files, databases
send message to parent that we initialized correctly
while (1) {
(optional) inform parent we are available
accept on listen sock
(optional) inform parent we are busy
read data
process transaction
send response
}
The parent just monitors the children for unexpected death.
It can start a new server if one dies or if the number of available servers
falls below some threshold.
There are a lot of little details, like how to shut down, making sure you
don't get into a loop of restarting a crashing server, etc.
* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *
|
|
|