Isect Middleware How-To - Sample

Go to the first, previous, next, last section, table of contents.

# Sample

isectd has no configuration file that it automatically reads in. Its operator service 'op' is capable of creating its configuration and modifying it while its running. System administrators can configure it using isdclient either manually (fun but tedious and error-prone) or as part of a script.

To configure the default echo service we need to first, create a service and second, create a worker that provides that service. This is simple to do using isdclient:

    zeus:/var/tmp isdclient -c 'config service echo'
    SERVICE 'echo' added.

On the console from where isectd was started, the following messages may appear:

    login client 1
    service->name=echo, service->serviceid=134566328
    client 1
                     login seconds : 0
                      transactions : 1
             average response time : 0.000 seconds
    isdStartListening() - Have room for 249 clients

At this point all we have is a service defined. It can't actually do anything because we haven't configured any workers. The next two commands will configure a worker for the 'echo' service then start it.

    zeus:/var/tmp isdclient -c 'config worker echo localhost /usr/local/bin/isdecho'
    WORKER 'localhost:/usr/local/bin/isdecho' added.
    zeus:/var/tmp isdclient -c 'start echo'
    Ok.

On the console isectd may have displayed:

    login client 2
    worker->id=134566472, worker->serviceid=134566328
    client 2
                     login seconds : 0
                      transactions : 1
             average response time : 0.000 seconds
    isdStartListening() - Have room for 248 clients
    worker->id=134566472, worker->hostpid = 13926

What's happend so far is:

1. We've configured a service called 'echo'
2. We've configured a worker (the program isdecho) for the 'echo' service
3. We've requested it be started
4. isectd requested isdexecd to start the worker
5. the worker has started (notice the worker->hostpid= message above)

Now we can test-out our new server (thought it's admittedly not a very big test:)

    zeus:/var/tmp isdclient echo
    Now is the time
    for all good men
    to come to the aid of the country.
    go
    Now is the time
    for all good men
    to come to the aid of the country.

In the example above, instead of giving the command to isdclient to execute immediately (-c) we went into interactive mode. When isdclient is invoked this way it logs on to isectd's 'echo' service and waits for input from the user (stdin). It buffers everything up until the user types a 'go' on a line by itself. Everything preceding the go is sent to isectd and isdclient waits for a response. In the example above the input message was echoed back without modification.

Go to the first, previous, next, last section, table of contents.